일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Excel
- matplotlib
- Mac
- Google Excel
- Tkinter
- array
- GIT
- SQL
- Kotlin
- dataframe
- c#
- hive
- string
- gas
- Redshift
- numpy
- 파이썬
- django
- Github
- PostgreSQL
- Apache
- math
- Google Spreadsheet
- google apps script
- list
- PANDAS
- Python
- PySpark
- Java
- Today
- Total
달나라 노트
14. Branch 정보 확인 본문
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라는 내용이 있습니다.
'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 |