생활코딩 git 01 - add, commit, log, diff, reset, revert

|

생활코딩-git 수업을 듣고 중요 내용을 정리합니다.

버전 만들기 (config, add, commit)

  • 버전에 포함될 버전을 만든 사람에 대한 정보를 설정합니다. 이 설정은 ~/.gitconfig 파일에 저장되고 1번만 해주면 됩니다.
git config --global user.name "자신의 닉네임"
git config --global user.email "자신의 이메일"
git add f1.txt # 선택적으로 커밋하기 위해서 commit 전에 add를 꼭해야한다.
git commit # add한 파일을 stage에 올린다.
git commit -am "commit msg" #과거 add 한 적이 있는 자동으로 add, commit 메시지 작성 후 commit
git log # 버전에 대한 정보 확인

변경사항 확인하기 (log, diff)

버전관리를 하는 가장 중요한 효용은 수정된 내용을 추적해서 문제해결을 하는데 이용하기 위해서라고 할 수 있습니다. 이 수업에서는 버전간의 차이점을 확인하는 방법에 대해서 알아봅니다.

git log -p #로그에서 출력되는 버전 간의 차이점을 출력하고 싶을 때
git diff '버전 id'..'버전 id2' # 버전 간의 차이점을 비교할 때
git diff # git add하기 전과 add한 후의 파일 내용을 비교할 때 (마지막 확인!)


과거의 버전으로 돌아가기 (reset, revert)

버전관리의 중요한 효용은 과거의 상태로 돌아갈 수 있다는 점입니다. 여기서는 이 방법에 대해서 알아봅니다. 한가지 주의하실 점은 과거로 돌아가는 작업은 위험한 작업입니다. 여기서는 과거로 돌아가는 방법이 있다는 점만 우선 확인하시고, 실제로 사용할 때는 좀 더 깊게 공부하고 사용하시는 것이 좋습니다.

  • git add 를 취소하는 방법
$ gs
On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

	new file:   f1.txt
	new file:   f2.txt
	new file:   f3.txt
	new file:   test.txt

# test.txt 에 대한 add 명령을 취소한다.
$ git reset test.txt

$ gs
On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

	new file:   f1.txt
	new file:   f2.txt
	new file:   f3.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)

	test.txt
  • commit 을 취소하는 명령을 배운다.
  • 주의가 필요한 명령이기 때문에 git의 원리를 배운 후에 다시 공부하는게 좋다.
  • git에서는 웬만하면 어떠한 정보도 삭제하지 않는다. git reset 후에도 정보가 남아있다.
  • 원격저장소에 올린 버전은 절대로 리셋을 하면 안된다. reset은 로컬에 있는 버전에 대해서만 진핸행한다.
  • 개발바보들 Git “Back to the Future”
    git log # 버전 id 확인
    git reset --hard `버전id` # 버전 id로 돌아가는 명령
    git revert `버전id` # 버전 id의 커밋을 취소한 내용을 새로운 버전으로 만드는 명령
    

마지막 커밋 메시지를 수정하기

  • 자동으로 텍스트 편집기를 실행시켜서 마지막 커밋 메시지를 열어준다.
  • 여기에 메시지를 수정하고 편집기를 닫으면 편집기는 수정한 메시지로 마지막 커밋을 수정한다.
  • amend : 조금 수정하다.
$ git commit --amend

커밋에 파일 추가하기

  • 커밋하고 나서 새로 만들었거나 다시 수정한 파일을 마지막 커밋에 포함할 수 있다.
  • 파일을 수정하고 git add 명령으로 Staging Area에 넣거나 git rm 명령으로 파일 삭제한다.
  • 그리고 git commit –amend 명령으로 커밋하면 된다.
# edited file-that-i-remember.txt
git add file-that-i-remember.txt
git commit

# realize you forgot a file
git add file-that-i-forgot.txt
git commit --amend --no-edit

# Where --no-edit will keep the same commit message.