Utils/Git

git pull, branch 개념 (ft. gitflow, pull, clone)

jinmc 2021. 1. 25. 22:43
반응형

지난 번 포스팅에서는 git push까지 알아봤습니다.

git push를 해서 remote repository에 올린 이후에, 다운받으려면 어떻게 할까요?

가장 쉬운 방법은 git clone 이 있습니다.

$ git clone <url>

git clone의 경우 새로운 디렉토리가 생기게 되고, authorization 문제가 없는 한 

아주 쉽게 받아올 수 있습니다.

 

하지만 만약 git local repository에서 새로운 기록들을 다운받고자 하면 어떻게 하면 좋을까요?

그럴 때 사용하는 게 git pull 입니다.

$ git pull

사실, git pull 은 git fetch와 git merge 두 개의 커맨드로 이루어져 있는데,

git pull을 할 때 가끔 에러가 나는데, 이는 git merge 에서 생기는 merge conflict입니다.

merge conflict를 해결하는 방법에는 여러가지 방법이 있는데,

그 중 가장 쉽고 간편한 방법은 stash를 사용하는 방법입니다.

stash는 휴지통처럼 commit되지 않은 change들을 보관처리 해두었다가 나중에 사용할 수 있도록 하는 걸 의미합니다.

$ git stash

stash들은 git stash list로 볼 수 있고, git stash show로 구체적인 내용을 볼 수 있습니다.

다시 적용하기 위해서는, git stash apply 커맨드를 적용하면 됩니다.

 

git이 svn에 비해 장점이라고 할 수 있는 부분은 바로 branch 개념에 있습니다.

svn은 커밋을 할 때마다 전체 소스가 업데이트되는 데 비해, 

git은 새로운 실험적인 커밋을 할 때, 새로 branch를 만들어서 commit을 하면 되니,

비교적 덜 위험하게 commit을 할 수 있다는 장점이 있습니다.

현재 github에서 디폴트 브랜치는 main입니다. 2020년 이전에는 master였는데,

아무래도 간소화를 위해서 main으로 바꾼 듯 합니다.

보통 테스트 서버를 develop으로 하고, feature마다 브랜치를 만들어서 (티켓 아이디 등) 

branching을 하는 것이 일반적입니다.

새로운 branch를 만들 때의 커맨드는 간단합니다.

$ git branch newBranch # newbranch라는 새로운 브랜치 생성

모든 branch들을 보려면, 다음과 같은 커맨드를 입력하면 됩니다.

$ git branch # --all 을 넣으면 remote의 브랜치들도 표시!

그리고 branch를 옮겨가려면 checkout 을 사용합니다.

$ git checkout newBranch

위의 새로 만들고 checkout하는 것을 한번에 하는 커맨드는 git checkout -b newBranch 입니다.

 

branch를 옮겨다닐 때 주의할 점은, 커밋되지 않은 수정되어있는 사항들이 있으면 git에서 불평을 합니다.

이럴 때 사용할 수 있는게 stash입니다.

반응형