git pull, branch 개념 (ft. gitflow, pull, clone)
지난 번 포스팅에서는 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입니다.