리셋 되지 말자

git branch 본문

Git

git branch

kyeongjun-dev 2020. 8. 29. 16:40

git branch develope

develope라는 branch가 생성됨

git checkout develop

나는 이제부터 develop이라는 branch에 commit을 할거다

브랜치 구분

release 전용 브랜치, develope 브랜치를 따로 두어 프로젝트를 관리한다.
(개발할때는 develope, 기능 개발 할때는 develope에서 또 branch를 만들어서 작업하는 등 사용)

git checkout -b 브랜치 이름

git branch 브랜치 이름 으로 생성을 한 뒤,
해당 브랜치로 이동하려면 git checkout을 하는데,
이 작업을 줄이기 위해 -b 옵션을 준다.
(브랜치를 만들자 마자 checkout 한다.)

HEAD

현재 작업중인 브렌치의 최신 커밋을 가리키는 포인터

branch 사용법

branch에서 개발이 끝나면 해당 브랜치를 checkout 하고, 'git merge 브랜치이름'을 입력해서 브랜치를 merge 하도록 한다.

master에 병함

git checkout master로 이동하고, git merge '브랜치 이름'으로 master에 병합한다.

git flow

master

develop

feature-1, 2, 3

이렇게 브랜치를 두고, 개발해 보기(회사에서 자주 사용하는 방법)

git fetch origin master

origin 저장소의 master 브랜치의 내용을 가져온다.(git 저장소이름 브랜치이름)

git merge origin/master

git 브랜치이름

origin에 master 브랜치가 있고, local에도 master 브랜치가 있어서
이 둘을 구분하기 위해 설정해 놓은 이름이다.

rudwn@LAPTOP-MKV7A847 MINGW64 ~/cb-opensource-program/confict-practice (master) (master)
$ git add README.md 

rudwn@LAPTOP-MKV7A847 MINGW64 ~/cb-opensource-program/confict-practice (master)
$ git status
On branch master
Your branch is up to date with 'origin/master'.    

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   README.md


rudwn@LAPTOP-MKV7A847 MINGW64 ~/cb-opensource-program/confict-practice (master)
$ git commit -m "Line update"
[master e6e6ad0] Line update
 1 file changed, 2 insertions(+), 1 deletion(-)

rudwn@LAPTOP-MKV7A847 MINGW64 ~/cb-opensource-program/confict-practice (master)
$ git remote -v
origin  https://github.com/Penguin135/confict-practice.git (fetch)
origin  https://github.com/Penguin135/confict-practice.git (push) 

rudwn@LAPTOP-MKV7A847 MINGW64 ~/cb-opensource-program/confict-practice (master)
$ git fetch origin master
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (1/1), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 643 bytes | 37.00 KiB/s, done.
From https://github.com/Penguin135/confict-practice
 * branch            master     -> FETCH_HEAD
   59c95e2..d1e6de6  master     -> origin/master

git merge origin/master

충돌된 모습

뭘 선택할지 지우는 방법뿐이없다.

git rebase

git merge는 merge commit이 생긴다.

ex)
git checkout develop
git rebase master
로 병합하면
develop 브랜치에서 작업한 commit들이
master 브랜치로 병합된다.

git branch 학습하는 법

https://learngitbranching.js.org/?locale=ko

'Git' 카테고리의 다른 글

push 후 .gitignore 적용  (0) 2021.03.04
github 화살표 디렉토리  (2) 2020.10.05
git reset  (0) 2020.08.29
pull request  (0) 2020.08.29
fork, clone  (0) 2020.08.29
Comments