CLI : 명령어를 이용해 깃을 사용하기
hello-git-cli 디렉토리 만들기
git init . 명령어 : 현재 디렉토리를 깃에게 버전관리를 하도록 시키는 것
.git 이라는 것이 생성됨
그 안에는 여러 파일이 있는데, 이 안에 여러 버전들이 저장됨
따라서 .git은 절대 지우면 안되는 파일!
변경사항을 버전으로 만들어 관리하기
repository - 버전이 저장되는 곳 (.git 파일)
working tree - 버전이 되기 전 단계
staging area - 특정 파일만 버전으로 만들고 싶을 때 staging area에 해당 파일만 올려두면 될 수 있다. → 우리가 수정하려는 파일들
파일을 만들고 git status 명령어를 사용하여 상태를 확인 시
No commits yet 이라고 뜨면 아직 버전이 없는 것을 의미함
수정사항을 staging area에 올리는 명령 : git add
버전될 목록들이 나타남
버전을 만들라는 명령어 : git commit
해당 명령어를 사용하면 수정할 에디터가 나타남
에디터 사용 없이 명령어로 수정하는 단축어 : git commit -m “Message 1”
이제 staginf area에 있던 hello1.txt 파일이 repository로 이동하게 됨
다시 상태를 확인 시
명령어 : git status
처리할 파일이 없다고 뜸 (버전으로 만들 것이 없다)
버전이 잘 만들어졌는지 확인하는 명령어 : git log
4-9 반복
hello1.txt 수정 후
hello2.txt 파일을 새로 만든 상황
hello1 파일은 이전에 깃에 올려둔 기억(관리 중에)이 있음
hello2 파일은 기억에 없는 파일이므로 없는 파일로 생각하고 있는다. → 백업, 협업 불가
깃은 파일을 자동으로 관리하지 않는다.
hello1, 2 파일 모두를 staging area에 올리기 위해서는 무조건 git add 파일 명으로 두 개의 파일 모두 올리기.
각각의 커밋(버전) 마다 어떤 파일이 연관되어 있는지는 알 수 없다.
→ 명령어 git log —state 사용하여 알 수 있음 (이런 것은 구글 검색으로 알아내자)
명령어 git diff 를 통해 버전 간 차이를 알 수 있다.
명령어 : git log -p
log 에서 path를 더 자세히 알려줌
log에서 **(HEAD → master) 는 HEAD 가 가장 최근(master)을 가리키고 있다는 것이다.**
현재는 Message 3의 버전인데, Meaasge2의 버전으로 돌리고 싶으면
b1e~로 시작하는 로그에서 b455~로 시작하는 로그로 HEAD를 옮기면 된다.
git log로 들어가 돌아가고자 하는 버전의 로그를 복사하고
명령어 git checkout 해당로그주소 를 사용하면 돌아갈 수 있다.
Message 3 버전으로 업데이트하며 생성했던 hello2.txt 파일은 사라진 것을 볼 수 있다. (이전 버전으로 옮겨진 것임)
HEAD가 옮겨진 것을 볼 수 있다.
다시 가장 최근의 버전으로 돌아가고자 할 때
명령어 git checkout master 를 사용하면 된다.
git add 파일명
명령어를 통해 파일을 add 했었는데, 명령어 git add .
을 사용하면 현재 디렉토리 아래에 있는 모든 파일들을 한 번에 add 한다는 뜻이다.
디렉토리를 지정하고 해당 디렉토리 아래에 있는 모든 파일을 add 하고 싶을 때에는
명령어 git add 디렉토리명 을 사용한다.
여러 줄의 commit 메세지를 작성하고 싶다면
git commit -m “커밋메세지” 명령어를 사용하는 것이 아닌,
git commit 명령어를 통해 nano 파일로 들어가서 여러 줄의 커밋메세지를 쓰고 저장할 수 있다.
Message 3 을 삭제하고 Message 2 로 가고 싶으면
명령어를 사용한다.
Message 2 의 로그 로 리셋하겠다 라는 말
리셋의 종류
hard, soft, 등등이 있다. hard는 강력하게 모두 지운다는 것
다른 사람과 공유된 것은 지우면 안 됨 (협업관점)
revert는 삭제와 보존을 할 수 있음.
버전 R3 내용
버전 R4의 내용
버전 4인 R4에서 버전 3인 R3 로 가고 싶을 떄, Revert 를 사용
→ reset 명령어 사용 시에는 가고자하는 버전(R3)의 아이디를 사용했지만, Revert를 사용 시에는 R4의 커밋 아이디가 필요하다.
R4의 아이디를 복사해서 명령어 git revert 를 통해 R3 버전으로 돌아갔다.
revert 시 나노 에디터로 들어가고 나노 에디터에서 어떤 것이 revert 되었는지 자동으로 써줌
추가로 우리가 왜 해당 커밋을 revert 했는지 쓸 수 있다