달나라 노트

14. Branch 정보 확인 본문

Github

14. Branch 정보 확인

CosmosProject 2021. 1. 15. 22:55
728x90
반응형

 

 

 

Branch 정보 확인

이번 챕터에선 Branch를 만들고 나서 현재 상황을 파악할 수 있는 방법을 살펴봅시다.

1. git branch

 

* exp
branch

git branch 명령어를 입력하면 위처럼 출력됩니다.

* 표시가 있는 것이 현재 있는 branch입니다.

따라서 현재는 exp branch를 향하고 있다고 볼 수 있습니다.


2. git log --branches 또는 git log --branches --decorate
--branches 옵션은 우리 저장소에 있는 모든 Branch들을 다룬다는 의미입니다.
위 내용을 입력하면 아래와 같은 이미지 내용이 나옵니다.



(master) 표시는 master branch의 가장 최신 commit이 뭔지를 나타냅니다.
(exp) 표시는 exp branch의 가장 최신 commit이 뭔지를 나타냅니다.
그리고 (HEAD -> exp)처럼 써져있는데 HEAD가 붙여있는 Branch는 현재 내가 위치해있는 Branch라는 뜻입니다.

위 이미지를 보면 master는 가장 최근 commit이 2이고, exp는 가장 최근 commit이 4라는 것을 알 수 있습니다.

 


3. git log --branches --decorate --graph
위처럼 입력하면 log 왼쪽에 어떤 줄이 생깁니다.
이것은 branch들이 어떤 흐름으로 흘렀는지를 그래프의 형식으로 나타내줍니다.
지금은 아래 이미지처럼 별 차이가 없는데 두 브랜치가 전혀 다른 commit의 길을 걸어갈 때 --graph 옵션의 효용성이 드러납니다.



4. git checkout master
master branch로 이동

 


5. vim f3.txt
git add f3.txt
git commit -m 5
git log
f3.txt 파일을 생성 후 로그를 보면 master에 대해 1, 2, 5 commit이 생긴 것을 볼 수 있습니다.



1. git log --branches
모든 Branch의 로그를 보여줌. 단 무슨 Branch로부터 왔는지 구분 불가.

2. git log --branches --decorate
모든 Branch의 로그를 보여주며 각 커밋이 무슨 브랜치에서 이뤄졌는지 보여줌

3. git log --branches --decorate --graph
2번과 동일한 기능이나 branch flow를 그래프로 나타내줌


위 이미지에 나오는 그림을 한번 해석해봅시다.
2번 commit에 별표가 있고 그 다음은 3번 commit에 별표, 5번 commit에 별표가 되어있습니다.
이 말은 2번 commit까지는 exp branch가 없었다가 2번 commit이 마쳐진 후 exp branch가 생기며 exp branch에서 3, 4번 commit이 일어났다는 뜻입니다.

master, exp 두 branch의 부모 branch는 2번 commit입니다.

 


4. git log --branches --decorate --graph --oneline
위처럼 oneline 옵션을 추가하여 아래 이미지처럼 branch flow를 간단하게 볼 수 있습니다.


Branch 간의 차이 파악

1. git log master..exp
master에는 없고, exp에는 있는 commit을 보여줍니다.
이 예시에선 exp branch에 있는 3, 4번 commit이 뜨겠네요.

2. git log exp..master
exp에는 없고 master에는 있는 commit을 보여줍니다.

3. git log -p exp..master
위 명령어는 2번과 동일하나 -p옵션을 붙임으로서 아래 내용처럼 두 branch간에 있고 없는 파일 그리고 그 파일의 내용 차이를 출력해줍니다.

diff --git a/bran/f3.txt b/bran/f3.txt
new file mode 100644
index 0000000..7898192
--- /dev/null
+++ b/bran/f3.txt
@@ -0,0 +1 @@

4. git diff master..exp
master branch에 f3.txt파일을 생성한 후에 위 내용을 실행해봅시다.
그러면 아래와 같은 내용이 나타날 수 있는데 아래 내용을 읽어봅시다.

일단 명령어에서 master를 왼쪽에 exp를 오른쪽에 적었으니 master가 -이며 exp가 +입니다.
따라서 -로 표시된 내용은 master에는 있으나 exp에는 없는 내용을 가리키며 +로 표시된 내용은 master에는 없으나 exp에는 있는 내용을 가르킵니다.

--- a/f1.txt
+++ b/f1.txt
a
b
+c 
master branch에는 f1.txt파일이 있습니다.
exp branch에는 f1.txt파일이 있습니다.
a, b는 master, exp branch의 f1.txt 파일 모두에 존재합니다.
c는 exp branch의 f1.txt 파일에만 존재합니다.


--- /dev/null
+++b/f2.txt
+a
master branch에는 f2.txt 파일이 없습니다.
exp branch에는 f2.txt 파일이 있습니다.
exp branch의 f2.txt 파일에는 a라는 내용이 있습니다.


--- a/f3.txt
+++ /dev/null
-a
master branch에는 f3.txt 파일이 존재합니다.
exp branch에는 f3.txt 파일이 존재하지 않습니다.
master branch의 f3.txt 파일에는 a라는 내용이 있습니다.

 

 

 

 

728x90
반응형

'Github' 카테고리의 다른 글

16. gitignore (특정 파일만 git add에서 제외하기)  (0) 2021.01.15
15. Branch merge  (0) 2021.01.15
13. Branch 생성  (0) 2021.01.15
12. Branch  (0) 2021.01.15
11. SSH key (github, git clone, git ssh key, ssh key gen)  (0) 2021.01.15
Comments