로컬 브랜치와 리모트 브랜치 상태 비교
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
- 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
명령으로도 확인가능하다.
반응형
'DevOps > Git' 카테고리의 다른 글
Git - 자주 사용하는 커맨드 등록(alias), 추천 커맨드 예제 (0) | 2022.01.19 |
---|---|
Git -로그 모든 브랜치 출력하기( 그래프, 정렬 옵션 ) (0) | 2022.01.13 |
Git - Remote 브랜치 안보일 때 해결방법 (0) | 2021.09.27 |
Git - Log 유용한 명령어 모음 ( 그래프, 변경 된 내용 검색, 특정 날짜 이후 검색 등 ) (0) | 2021.09.24 |
Git - 상태별 되돌리는 방법 예제로 알아보기 ( reset options ) (0) | 2021.09.17 |