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


  • 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를 해보면 아무것도 안 뜬다.



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



Git은 왜 add를 시켜야 하는걸까?
commit 하기 전에 add를 시켜주는 이유에 대해서 알아보자.

이 때 선택적으로 파일을 


$ git add f1.txt


$ git status

On branch master

Changes to be committed:

  (use "git reset HEAD <file>..." to unstage)


        modified:   f1.txt    //쉽게 말하면 commit 대기 상태


Changes not staged for commit:

  (use "git add <file>..." to update what will be committed)

  (use "git checkout -- <file>..." to discard changes in working directory)


        modified:   f2.txt


$ git commit    //commit 대기 상태에 있는 파일들만을 버전에 포함시킨다.

[master f6626ce] 4

 1 file changed, 1 insertion(+), 1 deletion(-)    //add 시킨 f1.txt만 선택적으로 commit이 된다.


  • 프로젝트시 여러 소스 코드를 수정하게 됨
  • commit 하나는 하나의 작업을 담고 있는 것이 이상적이지만, 많은 소스 코드를 수정하다 보면 commit을 놓치게 되는 상황이 생길 수 있다.
  • 그렇게 많은 작업들을 담은 거대한 버전 하나를 만들어야 할 때는 commit의 시기를 놓쳤을 때.
  • 이 때 git은 add라는 과정을 통해 commit을 할 수 있는 상태로 만들어준다.
  • commit 대기상태(stage area)에 있는 파일은 commit시 repository에 저장된다.


  • 저장소 만들기
    • Git 저장소로 사용할 디렉토리를 생성
    • git init : 현재 디렉토리를 버전관리 한다고 말해주는 명령어
    • git init 후 해당 디렉토리에 [.git]이란 디렉토리가 있는지 확인
    • [.git] --> 버전 관리시 생성된 정보들이 저장되는 디렉토리므로 삭제 되지 않게 주의.

  • git이 관리할 대상으로 파일 등록 
    • (git은 새로운 파일을 관리하지 않는다. 파일 관리를 하려면 등록을 시켜야 함.)
    • vim file.txt : vim이라는 프로그램을 이용해 file.txt라는 파일을 생성하는 명령어
      • i -> 입력모드, esc -> 입력모드시 해제, wq -> 저장과 동시에 종료
    • cat file.txt : file.txt 라는 파일 안에 있는 내용을 확인할 수 있는 명령어
    • git add file.txt : git이 add를 통해 파일을 tracking하도록 하는 명령어
      • git add 를 하는 이유: 임시적인 파일은 버전관리가 필요 없다. 그런 파일을 배제하기 위해서 관리해야 되는 파일이 무엇인지 명확하게 git에게 알려주기 위함이다.
    • git status : 프로젝트 폴더의 상태를 확인하는 명령어

  • 버전 만들기(commit)
    • 버전? 의미있는 변화, 완결된 작업상태를 뜻한다.
    • git config --global user.name "사용할 이름"
    • git config --global user.email "사용할 이메일"
    • user 이름을 준 뒤 git status 입력하면 vim이 실행이 된다.
      • 버전의 메세지(commit message) : 파일이 어떤 변화가 있는지 왜 변경되었는지 작성
    • git log : 현재 버전 확인
    • 수정된(modified) 파일도 git add 명령어로 버전관리 시스템에 다시 add를 시켜 주어야 함.


+ Recent posts