learn-git-2(branch)

GI JUNG·2022년 11월 29일
3

git

목록 보기
2/3
post-thumbnail

learn-git-1에 병합을 하기 전에 branch들을 알아보고자 한다. 이 부분부터는 단지 원격 저장소에 내 코드를 보관할 수 있는 용도가 아닌 버전 별로 기록하기 좋은 내용으로 내가 꼭 배워야 했던 내용들이다.

먼저 배우기 전에 github에 새로운 learn-branch로 새로운 repo를 만들었다.

위와 같이 새로운 repo를 만들었으면 아래 명령어로 local에서 원격 저장소를 끌어온다.

$ git clone https://github.com/rlwjd31/learn-branch.git

🍀 branch 만들기

$ git branch [만들 브랜치명]: git branch feature와 같이 만들면 feature명을 가지는 branchlocal에 생성된다.

아래 command로 branch를 만들어보자!!

$ git branch feature

???🤔 그런데 `fatal: not a valid object name: 'master' Error가 발생한다. 이는 한 번도 commit을 한 적이 없으면 생성이 되지 않는다. 따라서 한 번이상의 commit을 해주면 해결할 수 있다.

text content내용으로 test.txt 파일을 생성하고 commit까지 해보자

$ echo 'text content' > test.txt
$ git add .
$ git commit -m 'first commit from master'

자 이제 한 번의 commit을 했으니 다시 feature branch를 만들어보자

$ git branch feature

위에 보이는 것처럼 feature 브랜치를 만들었다.

📚 다른 명령어들

$ git branch -m [바꿀 브랜치명]: 만약에 feature branch에서 version1이란 branch명으로 바꾸고 싶다면 git branch -m version1을 하면 된다.

$ git checkout [이동할 브랜치명]: 이동할 브랜치가 존재한다면 브랜치를 전환한다. 하지만, 이동할 브랜치가 존재하지 않는다면 branch를 찾을 수 없다는 에러가 발생한다.

$ git checkout -b [이동할 브랜치명]: -b 옵션은 branch가 존재하지 않는다면 branch를 만들어서 만든 branch로 전환한다.

$ git push origin [원격 브랜치명]: 그냥 git branch branchName은 local에서 branch를 생성하는 것이다. 하지만, 이 명령어는 원격(remote) branch를 생성한다.

🍀 branch명 확인하기

위에서 remote repository를 local과 연결하고 새로운 feature란 branch를 생성하였다. 이 파트에서는 branch들을 확인하기 위해서 여러 브랜치를 만들어 명령어를 익혀볼 생각이다.

난 아래와 같이 feature1, feature2의 브랜치도 추가로 만들었다.

$ git branch feature1
$ git branch feature2

branch를 만들고 위와 같이 어떻게 확인했을까?
-> git branch [option]을 이용하여 생성된 branch들을 확인할 수 있다.

$ git branch [-l]: local branch들을 보여주며 default option은 -l이다. -l옵션은 쓰지 않아도 되며 위의 그림처럼 나온게 된다.

📚 options

Ⅰ) -a

--all과 같으며 local과 remote에 관계없이 모든 branch들을 보여준다.

👇 option a를 썼을 때

💡 remote branch에 feature가 뜨는 이유는 git push origin feature로 remote branch를 만들어주었기 때문이다.

Ⅱ) -r

local branch를 제외한 remote branch들을 보여준다.

👇 option r을 썼을 때

따로 feature란 remote branch를 만들었기 때문에 masterfeature remote branch 총 2개의 remote branch가 뜨는 것을 볼 수 있다.

Ⅲ) -v

local, remote branch들을 commitIdcommit message를 같이 확인할 수 있다.

이는 위의 옵션들과 같이 쓰면 유용하게 쓸 수 있다.

$ git branch -va -> local, remote branch들을 commitId와 commit message와 함께 표시

👇 option va를 썼을 때

🍀 branch 이동하기

branch를 이동하는 명령어는 간단하다. checkout을 이용하면 된다.

$ git checkout [이동할 브랜치명]: 브랜치를 바꾼다.
$ git checkout -b [이동할 브랜치명]: 이는 위에서 미리 소개했던 것인데, 이동할 브랜치명이 존재하지 않는다면 브랜치를 만들고 이동까지 한번에 해주는 명령어이다.

🍀 branch 삭제하기

오류를 잡거나 새로운 기능을 추가하기 위해 branch를 만들고 작업이 끝났다면 branch를 삭제하는 것이 필요할 것이다(개인적인 생각..). branch가 너무 많으면 복잡할 듯 하다

$ git branch -d(--delete) [삭제할 브랜치명]: local branch를 삭제한다. 이 때 주의할 점은 현재 branch에서 현재 branch를 삭제할 수 없으며, 병합을 했다면 삭제가 가능하다 즉, 다른 branch로 옮긴 후 지우고자 하는 branch를 삭제해야 한다.

local branch 제거 예시

$ git branch -d feature2
$ git branch -D branchName: -D옵션은 병합을 하지 않았더라도 브랜치를 삭제한다.

위 명령을 치면 아래와 같이 브랜치가 성공적으로 제거됐다고 한다.

그리고 branch가 잘 삭제되었는지 확인해보기 위해 git branch -l을 이용하여 다시 한 번 확인할 수 있다.

$ git push origin -d [삭제할 원격 브랜치명]

remote branch 제거 예시

$ git push origin -d feature

위 명령어를 실행하면 아래와 같이 remote branch가 삭제되었다고 한다.

다시 확인해보고 싶으면 git branch -r을 이용하여 확인할 수 있다.

참고

git branch commands
remove remote branch
show branch list
fatal: not a valid object name: 'master' Error

profile
step by step

0개의 댓글