본문 바로가기
DevOps/Git

Git - 로컬 브랜치와 리모트 브랜치 커밋 상태 비교( 브랜치 추적, 그래프 확인 )

by 맑은안개 2022. 1. 12.

로컬 브랜치와 리모트 브랜치 상태 비교

Github에 신규저장소를 만들고 로컬PC에서 클론하여 처음부터 브랜치간 차이가 어떻게 발생하는지 확인해본다. 그 과정에서 유용하게 사용되는 CLI 명령을 확인해보자.

개발환경

  • Windows 10
  • Git for windows
  • Cmder ( Terminal program )
  • SourceTree ( Git managing tool )

1. 브랜치 확인

신규생성한 github 저장소를 clone한 후 로컬과 리모트의 상태를 git branch -av명령으로 확인한다.

D:\git_test\advanced_javascript (master -> origin)
λ git branch -av
* master                f386d80 Initial commit
  remotes/origin/HEAD   -> origin/master
  remotes/origin/master f386d80 Initial commit
  • -a 로컬, 리모트 브랜치 모두 출력
  • -v 커밋의 hash값과 subject값을 출력
    지금 로컬, 리모트 브랜치는 동일한 커밋 f386d80을 보고있으므로 모든 소스가 일치한다.

2. 로컬 브랜치 추적

git branch -vv를 사용하여 로컬브랜치가 추적하고 있는 리모트브랜치(origin/master)를 확인할 수 있다. 이 명령은 매우 유용한데, 브랜치간 commit이 몇단계 앞서(ahead)있는지 혹은 뒤에(before)있는지 알 수 있다. 기준은 로컬브랜치이다.

D:\git_test\advanced_javascript (master -> origin)
λ git branch -vv
* master f386d80 [origin/master] Initial commit

현재는 로컬, 리모트가 동일하므로 차이가 없다. 차이를 발생시키기 위해 README.md 파일을 변경하여 브랜치간 차이를 확인해본다.

3. README.md 수정

D:\git_test\advanced_javascript (master -> origin)
λ ll
total 5
drwxr-xr-x 1 KUH 197121  0  1월 12 08:59 .
drwxr-xr-x 1 KUH 197121  0  1월 12 08:59 ..
drwxr-xr-x 1 KUH 197121  0  1월 12 09:25 .git
-rw-r--r-- 1 KUH 197121 21  1월 12 08:59 README.md

D:\git_test\advanced_javascript (master -> origin)
λ vi README.md
# advanced_javascript
1. Add comment
    1. Add comment 라인을 추가하였다.

상태 확인 후 commit, push까지 진행한다.

상태 확인

git status를 사용하여 상태 확인

D:\git_test\advanced_javascript (master -> origin)
λ git status
On branch master
 Your branch is up to date with 'origin/master'.
...생략...
D:\git_test\advanced_javascript (master -> origin) 
λ git branch -vv

-   master f386d80 [origin/master] Initial commit  
  • git branch -vv 명령으로 리모트브랜치와의 변경점 확인, 아직까진 차이가 없다.커밋 후 재확인
D:\git_test\advanced_javascript (master -> origin) 
λ git add .

D:\git_test\advanced_javascript (master -> origin) 
λ git commit -m "Add comment"  
[master 6d7dbe5] Add comment  
1 file changed, 2 insertions(+), 1 deletion(-)

D:\git_test\advanced_javascript (master -> origin)  
λ git branch -vv

-   master 6d7dbe5 [origin/master: ahead 1] Add comment

commit후 로컬브랜치가 ahead 1로 1커밋 앞 서있는것을 확인할 수 있다.
다음과 같이 한줄을 더 추가 하고 커밋한 뒤 다시 확인해보자.

D:\git_test\advanced_javascript (master -> origin)
λ cat README.md
# advanced_javascript
1. Add comment
2. Add bla bla bla
D:\git_test\advanced_javascript (master -> origin)
λ git branch -vv
* master a59b9cd [origin/master: ahead 2] Add bla message

D:\git_test\advanced_javascript (master -> origin)
λ git log --oneline
a59b9cd (HEAD -> master) Add bla message
6d7dbe5 Add comment
f386d80 (origin/master, origin/HEAD) Initial commit

로컬 마스터 브랜치가 리모트 마스터 브랜치에 비해 2단계 앞서 있다.
git log --oneline명령으로도 확인가능하다.

반응형