[GIT] GIT을 사용하다. - 1편 BRANCH관련 명령어

2021. 1. 11. 11:25 형상관리/Git

브랜치 목록 조회

  • 전달인자 -r을 사용하여 원격브랜치 조회 합니다.
git branch
    *master

브랜치명 변경

  • 전달인자 m은 이동을 의미 합니다.
git branch -m master mymaster
git branch
*mybranch

브랜치명 강제 변경

  • 브랜치명을 변경할때 이미 이름이 존재한다면 진행되지 않는데 -M의 명령어를 사용하면 덮어쓰기로 강제 진행됩니다.
git branch -M master mymaster

새로운 브랜치 생성

git branch new
git branch
*master
new

브랜치 체크아웃

git checkout new
Switched to branch 'new'
git branch
master
*new

새로운 브랜치 생성하고 체크아웃

  • git checkout -b 새로운브랜치 기준브랜치
git checkout -b new2 master
Switched to a new branch 'new2'

원격 저장소에 푸쉬

  • git push 원격저장소명 로컬브랜치명
  • git push 원격저장소명 로컬브랜치명:원격브랜치명
git push origin subs
git push -u origin master

브랜치 merge - straight

1. 현재 브랜치 확인 합니다.

git branch
*master
new
new2

2. 브랜치 포인트를 이동 시킵니다.

vim about.html
vim contact.html
git add about.html
git add contact.html
git commit -m "add the about"
git commit -m "add the contact"

3. 테스트 파일 생성 및 커밋을 진행 합니다.

vim about.html
vim contact.html
git add about.html
git add contact.html
git commit -m "add the about"
git commit -m "add the contact"

4. 브랜치 포인트를 이동 시킵니다.

git checkout new

5. 병합을 진행 합니다.

git merge new2

6. 커밋이력을 확인합니다.

    • history를 확인하여 전체 이력과 함께 합쳐졌는지 확인합니다.

브랜치 merge - squashed

1. 현재 브랜치 확인 합니다.

git branch
*master
new
new2

2. 브랜치 포인트 이동 시킵니다.

git checkout new2
Switched to branch 'new2'
git branch
master
new
*new2

3. 테스트 파일 생성 및 커밋 합니다.

vim about.html
vim contact.html
git add about.html
git add contact.html
git commit -m "add the about"
git commit -m "add the contact"

4. 브랜치 포인트 이동 시킵니다.

git checkout master
Switched to branch 'master'

5. 머지를 실행 합니다.

git merge --squash new2

6. new2브랜치에 있는 커밋이 작업트리에 적용되어 스테이징됐지만 커밋까지 되지 않았습니다. 따라서 새로운 커밋을 함으로써 커밋이력을 1개로 통합 머지가 되는 원리 입니다.

git commit -m "add new2 page" \
-m "has primary"

브랜치 merge - cherry-picking

1. 현재 브랜치 확인 합니다.

git branch
*master
new
new2

2. 브랜치 포인트 이동 시킵니다.

git checkout new2
Switched to branch 'new2'
git branch
master
new
*new2

3. 테스트 파일 생성 및 커밋 합니다.

vim about.html
git add about.html
git commit -m "add the about" -a
[new 6e9580d] add link to
0 files changed
create mode 100644 about.html
  • 위의 new 6e9580d에서 6e9580d를 눈여겨 봐두어야 합니다. 이것은 고유커밋명으로써 이 고유커밋명을 활용하여 어느 브랜치에서든 해당 커밋을 합치는 것이 가능 합니다.

4. 브랜치 포인트 이동 시킵니다.

git checkout master
Switched to branch 'master'

5. 머지를 실행합니다.

git cherry-pick 6e9580d
[master a03644d] add link to
0 files changed
create mode 100644 about.html

6. 다수의 이력을 지정하여 cherry를 하고 싶다면 -n의 전달인자를 활용하면 됩니다.

브랜치 충돌시 merge

git mergetool

브랜치 삭제

1. 안전하게 삭제하기

git branch -d other_branch

2. 강제로 상제하기

git branch -D other_branch


출처: https://redgolems.tistory.com/10?category=481635 [레드골렘즈 콤비의 개발이야기]