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입니다.

반응형

'Utils > Git' 카테고리의 다른 글

git fetch 이후 merge 하기  (1) 2023.12.15
Gitignore에서 파일 제거하기  (0) 2021.03.15
Git Diff 활용하기  (0) 2021.01.26
Git의 기본적인 명령어들 (기초사용법)  (0) 2021.01.25
Git이란? (ft. version control, SVN, github)  (0) 2021.01.24