원하는 디렉토리를 git으로 관리하고 싶다면 init
명령을 사용한다.
git init
: 현재 위치한 디렉토리를 git으로 관리한다.
git init <dirname>
: dir에 해당하는 디렉토리를 관리한다.
이제 해당 디렉토리에 .git
파일이 생성되고, 디렉토리 안의 모든 파일을 git이 관리하게 된다.
이제 파일 하나를 생성한다.
f1.txt
파일에 'a' 라고 입력하고 저장하자.
이 파일은 아직 git이 추적하지 않는 상태이다.
현재 상태를 확인하기 위해 git status
명령을 사용해 보자.
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
f1.txt
nothing added to commit but untracked files present (use "git add" to track)
위 메세지를 보면 f1.txt
가 Untracked files상태인 것을 볼 수 있다.
커밋 전에 add
명령을 사용하면 staging area에 올라갈 것이다.
git add <file>
: 추가된 파일이나 수정된 파일을 staging area에 올려놓는다.
git add .
: 변경된 모든 파일을 추가한다.
다시 git status
를 사용하면 아래 메시지가 나온다.
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: f1.txt
커밋할 준비가 되었다고 알려준다.
git rm --cached <file>
는 파일을 staging area에서 제거하는 명령이다.
커밋을 해서 새 버전을 만들어 보자.
git commit
: 현재 staging area에 올라온 파일들의 상태를 기억하는 새 버전을 만든다.
git commit -m "<message>"
: 커밋 메시지를 짧게 작성
커밋을 실행하면 커밋 메시지를 작성하게 된다. '1'로 쓰고 저장한다.
다시 status
명령을 사용하자.
On branch main
nothing to commit, working tree clean
커밋할 것이 없고, working tree가 깨끗하다.
즉 최신 버전이고, 변경한 것이 없다는 의미이다.
f1.txt 파일의 내용을 'ab'로 변경하고 status
명령을 실행하면 아까와는 다른 메시지를 출력한다.
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: f1.txt
no changes added to commit (use "git add" and/or "git commit -a")
f1.txt 파일의 변경사항을 git이 감지한 것을 확인할 수 있다.
한번 더 커밋을 진행하여 '2'로 메시지를 주고 2번째 버전을 만들자.
이제 지금까지 만들어본 버전의 역사를 확인해볼 시간이다.
git log -p
명령어를 사용한다.
자주 사용하게 될 -p
옵션은 버전별로 파일의 수정된 부분을 비교해 준다.
commit 94c8b69d3f9a20292a042e9898c97dbbbf6f8475 (HEAD -> main)
Author: sudog <sjin0704@gmail.com>
Date: Wed Aug 16 20:59:54 2023 +0900
2
diff --git a/f1.txt b/f1.txt
index 7898192..81bf396 100644
--- a/f1.txt
+++ b/f1.txt
@@ -1 +1 @@
-a
+ab
commit a6d29938ec13f58c51f2240241e13c15731035d1
Author: sudog <sjin0704@gmail.com>
Date: Wed Aug 16 20:43:49 2023 +0900
1
여기서 -
는 이전, +
는 이후 버전의 파일내용을 의미한다.