설명글 아니고 경험글
자꾸 글을 완성 시키려하는 것이 블로그 패작의 길이라 생각해서 그냥 쪼가리들만 써놓는 것부터 시작하려함
Github Branch
문득 branch 명령어의 옵션들이 궁금해졌다. 특히 아무 것도 없는 빈 레포를 github 홈페이지에서 먼저 따고 로컬에서 리모트로 보낼 때 일이다. 이슈 터진 건 아니고 그냥 갑자기 저 `git branch -M main`이 궁금했달까?

https://git-scm.com/docs/git-branch#Documentation/git-branch.txt--M
Git - git-branch Documentation
If --list is given, or if there are no non-option arguments, existing branches are listed; the current branch will be highlighted in green and marked with an asterisk. Any branches checked out in linked worktrees will be highlighted in cyan and marked with
git-scm.com
알고봤더니
- -m, --move 는 브랜치 이름을 변경한다
- -M 은 --move와 --force 옵션을 합친 것으로 강제로 이름을 변경한다. 일단 github을 만들면 main으로 나오지 않나? 라고 생각할 수 있는데 예전 기본 브랜치 이름은 master였다. 예전 git-scm을 사용하는 사람들은 아직도 master로 만들어지고 (나 포함) 리모트는 main으로 만들어져서 저 작업을 수행하지 않으면 push가 되지 않는다. 그래서 branch의 이름을 바꿔주는 것부터 시작하는 것이다!
진짜 별거없음 ㅎ;
몇 가지 궁금증
이름을 변경한다는 뜻은 A에서 B로 바꾼다는 건데 현재 인자로 넣어주는 값은 main 하나다. 그러니까 변경 후의 값만 있다는건데 기본적으로 현재 머물러있는 브랜치의 이름을 바꾼다는 뜻이다. 그러면 내가 현재 머무르지 않는 브랜치의 이름 같은 경우는 git branch -M before after 를 통해 before 라는 브랜치의 이름을 after로 변경할 수 있다.
--force 옵션은 뭐길레

이름이 존재하더라도 강행한다. 지금 같이 허허벌판인 레포에 작업하면 문제 없겠지만 브랜치가 많을 때는 조심해서 다뤄야겠구나!
몇 가지 branch 기본 사용법
branch는 협업에서 필수적인 기능이다. 서로 다른 사람들의 작업물을 안전하게 합치는 데 중요한 역할이다.
브랜치 생성
1pha라는 브랜치를 생성하고 싶으면 아래 같이 작성
git branch 1pha
+ 여기에 추가로 만든 브랜치로 이동하고 싶으면
git checkout 1pha
를 진행한다. 그러니까 1pha라는 브랜치를 만들고 + 이동 하려면 두 줄을 쳐야하는데 이마저도 귀찮으면 -
git branch -b 1pha
1pha라는 브랜치를 만들고 이동을 동시에 수행한다.
어떤 브랜치가 있는지 확인
여기에는 여러가지 방법이 있는데
git branch
git branch -l
git branch -v
git branch -a
네 가지 모두 어떤 브랜치가 있는지 확인할 수 있다.
- 첫 번째와 두 번째는 동일한 기능이다. 어떤 브랜치가 있는지 보여준다.
- 두 번째의 경우는 정규표현식 패턴을 추가해서 특정 패턴의 브랜치만 보여줄 수 있다.
- 세 번째의 경우는 모든 브랜치를 보여주면서 동시에 각 브랜치의 마지막 commit 메시지와 sha1 값 7자를 보여준다. sha-1 해시는 16진수의 40자 커밋의 식별자이다. 16진수+40자이다보니 모든 값이 거의 유일하다. 유일할 뿐 아니라 보통 앞의 몇 자리만 가지고도 커밋을 구분할 수 있다.
- 네 번째의 경우는 로컬과 리모트에 있는 모든 브랜치를 보여준다
각 옵션들은 같이 사용해서 풍부하게 쓸 수 있다. (git branch -av 같이)
오늘도 먼지 같은 글 끝.
더 구체적이고 고급진 사용은 나도 잘하면 올려야지
근데 커밋 잘못해서 터뜨린 경우 아니면 위 기능말고 쓸일이 많이 없다.
'_ISSUE' 카테고리의 다른 글
macOS에 SPM 설치하기 (1) | 2022.01.18 |
---|---|
Github Personal Access Token 사용하기: 아 비밀번호 안 틀렸다고 (0) | 2022.01.11 |
VSCode에서 Jupyter Shortcuts 안 먹힐 때 (0) | 2022.01.09 |