git 명령 빈도


commandgoogle results%
commit528,0007.981980075
push523,0007.906393143
pull506,0007.649397572
clone489,0007.392402002
checkout470,0007.105171658
add446,0006.742354382
branch439,0006.636532676
log388,0005.865545964
diff369,0005.578315621
fetch355,0005.36667221
merge354,0005.351554823
init343,0005.185263572
status286,0004.323572541
reset267,0004.036342197
tag246,0003.718877081
rebase203,0003.068829461
rm142,0002.146668884
show104,0001.572208197
bisect62,8000.9493718726
grep49,4000.7467988934
mv44,7000.6757471768



git 명령어 매뉴얼 보는 방법


  • git (command) --help : 명령어에 관한 도움말 매뉴얼을 볼 수 있는 명령
git commit --help
commit의 도움말에 나와있는 옵션을 예로 들어보겠다.

-a
--all

Tell the command to automatically stage files that have been modified and deleted, but new files you have not told Git about are not affected.

수정이나 삭제한 파일을 자동으로 스테이지에 올려준다.

git commit -a 

    -a 옵션을 주면 자동으로 git add (파일명) +git commit 의 결과가 나온다.

-m <msg>
--message=<msg>

Use the given <msg> as the commit message. If multiple -m options are given, their values are concatenated as separate paragraphs.

The -m option is mutually exclusive with -c, -C, and -F.

지정된 <msg>를 커밋 메세지로 사용한다. 다중 -m 옵셩을 지정하면 별도로 단락으로 연결된다.

git commit -am(-a and -m)

    -에디터를 띄우지 않고 수정, 삭제한 commit 메세지를 인라인에서 바로 작성할 수 있다.





과거의 버전으로 돌아가기, COMMIT 취소하기


  • git reset "버전id" --hard : 버전id의 commit으로 돌아가는 명령
  • git revert "버전id" : 버전id의 commit을 취소하면서 새로운 버전을 생성하는 명령


과거 버전으로 돌아가는 일은 항상 신중하고 잘 점검해서 사용해야 한다.

reset은 공유나 협업을 할 때에는 절대 사용하지 않는다.

reset을 하는 commit은 나의 컴퓨터에만 있는 버전에 대해서만 작업한다.



파일의 변경 사항 확인하는 법


  • git log -p : 
    • 로그에서 출력되는 버전 간의 차이점을 출력하고 싶을 때 사용
    • commit과 commit 사이에 소스상의 차이점을 알 수 있다.
  • git diff (버전 id1)..(버전 id2) :
    • 두 버전간 소스 코드상의 차이점을 비교할 때 사용
    • 각각의 commit은 고유 번호를 가지고 있다.
  • git diff :
    • add되는 파일, 즉 commit하기 전에 이전 버전과의 차이점을 비교할 때 사용

  • git log, git diff 종료 방벙 : q + Enter
  • git bash에서 복사, 붙여넣기
    • 복사 : Ctrl + Insert
    • 붙여넣기 : Shift + Insert

jungd@DESKTOP-KCGRLA3 MINGW64 ~/git_project/gitfth (master)
$ git log -p

commit f6626ce8b1c5df971684a817cdf44c4c225ccba3
Author: username<email>
Date:   Tue Mar 19 23:14:45 2019 +0900

    4

diff --git a/f1.txt b/f1.txt
index e77ea5a..bf2a181 100644
--- a/f1.txt     //버전3에서의 f1.txt파일 내용
+++ b/f1.txt //버전4에서의 f1.txt파일 내용
@@ -1 +1 @@
-souce : 2     //버전3에서는 내용
+f1.txt :44     //버전4에서의 내용

commit af291caa485e5defcb6eff80423a8ce7e4085b51
Author: username<email>
Date:   Tue Mar 19 23:07:59 2019 +0900

    3

diff --git a/f3.txt b/f3.txt
new file mode 100644
index 0000000..e77ea5a
--- /dev/null //버전2의 내용, 파일이 없음.
+++ b/f3.txt //버전3의 내용, f3.txt 파일이 있음
  //버전3에서 f3.txt 파일이 추가 됐다. 라는 내용
@@ -0,0 +1 @@
+souce : 2     //버전3에서의 f3.txt의 초기 내용
  //버전3이 만들어지면서 f3.txt 파일이 생성되었고, 그 내용은 source : 2 였다는 것임




jungd@DESKTOP-KCGRLA3 MINGW64 ~/git_project/gitfth (master)
$ git diff
diff --git a/f1.txt b/f1.txt
index bf2a181..579b555 100644
--- a/f1.txt
+++ b/f1.txt
@@ -1 +1 @@
-f1.txt :44 //그 이전
+f1.txt :5 //현재
=> 작업을 할 때 커밋하기전에 자기가 작업한 내용이 문제가 있는지 없는지를 마지막으로 리뷰할 수 있는 기회를 제공.
 코드들의 차이점을 통해서 실수한게 없는지 확인할 수 있는 마지막 기회를 버전관리 시스템이 제공한다.

jungd@DESKTOP-KCGRLA3 MINGW64 ~/git_project/gitfth (master)
$ git add f1.txt

jungd@DESKTOP-KCGRLA3 MINGW64 ~/git_project/gitfth (master)
$ git diff

jungd@DESKTOP-KCGRLA3 MINGW64 ~/git_project/gitfth (master)
$ //commit 후 git diff를 해보면 아무것도 안 뜬다.



버전의 효용은 버전 간의 차이점을 알 수 있고, 과거 특정한 시점의 내용을 알 수 있으며 과거로 돌아갈 수 있다.


+ Recent posts