일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- math
- c#
- PostgreSQL
- Python
- Google Excel
- array
- dataframe
- string
- Java
- google apps script
- Kotlin
- Redshift
- SQL
- Excel
- hive
- matplotlib
- Github
- numpy
- Mac
- Google Spreadsheet
- list
- PANDAS
- Apache
- django
- Tkinter
- GIT
- 파이썬
- PySpark
- gas
- Today
- Total
달나라 노트
15. Branch merge 본문
Branch merge
이번 장에서는 Branch를 만들고 나서 Branch들을 병합(Merge)하는 방법을 보겠습니다.
1. git log --branches --graph --decorate --oneline
위 명령어로 현재 어떤 상태인지 확인합니다.
1, 2 commit은 exp branch가 없는 상태에서 master branch에서 이뤄짐
2 commit 후에 exp branch 생성
exp branch에선 3, 4 commit 진행
master branch에선 5 commit 진행
이라는 내용을 확인할 수 있습니다.
자 이제 exp에서 작업했던 내용을 master로 옮겨 병합하는 과정을 진행해봅시다.
exp를 가져와 master에 병합시킬 것이므로 일단 master branch로 이동합니다.
2. git merge exp
그리고 위 명령어를 실행하면 master branch에다가 exp branch를 가져와서 merge한다는 뜻입니다.
그러면 위와 같은 창이 뜨는데 merge를 위한 commit이 되었고 commit message는 맨 위에 Merge branch 'exp'라는 내용을 가지고 있습니다.
이것은 exp를 master로 merge했다는 commit이 만들어졌다는 뜻입니다.
:wq로 빠져나옵니다.
3. git log --branches --graph --decorate --oneline
그리고 위 명령어를 입력하면 아래처럼 merge 그래프가 변경된 것을 볼 수 있습니다.
Merge branch 'exp'라는 commit message를 가진 commit이 가장 상단에 표시되며 이는 merge에 의해 자동으로 생성된 commit message입니다.
그리고 이 commit은 원래 master branch에 있던 5번 commit과 exp에서 작업했던 3, 4번 commit을 부모로 가지는 commit이 되었습니다.
이제 master branch는 master branch에서 작업한 5번 commit과 exp에서 작업했던 3, 4번 commit을 모두 가진 상태가 됩니다.
4. ls -al
위 명령어를 치면 master branch에서 f1.txt, f2.txt, f3.txt를 모두 확인할 수 있습니다.
1. git log --branches --graph --decorate --oneline
위 코드의 결과로 보면 master branch는 1~5번 commit을 모두 가지고있지만 exp는 5번 commit을 가지고 있지 못합니다.
exp branch가 5번 commit도 가지게 하여 master branch와 exp branch가 완전히 동일한 상태가 되도록 해볼 것이다.
2. git checkout exp
exp branch로 체크인합니다.
3. git merge master
현재 branch인 exp branch에 master branch를 merge합니다.
4. git log --branches --graph --decorate --oneline
위 명령어를 입력하면 다음과 같은 결과가 나옵니다.
(HEAD -> exp, master) Merge branch 'exp'
위 부분을 보면 exp가 master와 동일한 commit상태를 가졌다는 뜻이고 이것은 exp와 master는 완전히 동일한 상태라는 의미입니다.
5. git checkout master
이제 exp branch는 필요없으니 없애보겠습니다.
6. git branch -d exp
위 명령어를 입력하여 exp branch를 삭제합니다.
* 이 경우 exp 브랜치가 master와 완전히 머지되지 않으면 exp브랜치를 지우지 않고 경고메세지를 띄운다 이럴땐 아래처럼 입력해서 브랜치를 강제로 지울 수 있습니다.
git branch -D exp
7. git log --branches --graph --decorate --oneline
위 명령어를 입력하면 아래와 같이 exp라는 branch 이름이 사라지고 master branch만 남은 것을 확인할 수 있습니다.
(HEAD -> master) Merge branch 'exp'
'Github' 카테고리의 다른 글
17. git rm --cached -r file_name (github에 올린 파일 제거하기) (0) | 2021.01.15 |
---|---|
16. gitignore (특정 파일만 git add에서 제외하기) (0) | 2021.01.15 |
14. Branch 정보 확인 (0) | 2021.01.15 |
13. Branch 생성 (0) | 2021.01.15 |
12. Branch (0) | 2021.01.15 |