Git Commit 및 branch 관리 - Advanced Git
Git Commit과 branch 관리 관련 명령어에 대해 살펴보는 포스팅입니다.
새로운 branch 만들기
git branch upstream main
브랜치를 생성하는 git 명령어는 git branch
이며, upstream
은 새로 만들 브랜치, main
은 분기해나올 브랜치이다.
생성한 branch로 넘어가기
git checkout upstream
force push
git push --force origin upstream
--force
or -f
맨 상위 commit 지우기
git reset HEAD^
staged된 파일 unstaged 시키기
git reset
GitHub 저장소 미러링 하기
용도: 기존 저장소의 commit 내역까지 모두 다른 저장소(혹은 새로운 저장소)로 옮기고 싶은 경우.
git clone --bare [기존 저장소]
cd [기존 저장소]
git push --mirror [새로운 저장소]
두 개 이상의 repostiory에 같은 내용 push
origin 주소와 origin2 주소가 있다고 하자(git remote -v
통해 확인)
만약 origin에 이미 add-commit-push 과정을 거쳤다면,
git status
를 확인해도 목록이 뜨지 않는다.
origin2에도 동일하게 push하고 싶으면, 단순히
git push origin2 main
를 진행하면 된다.
status에 뜨지 않아도 add-commit을 거칠필요 없이 git push
만 추가로 진행해주면 된다.
Git stash 와 stash pop
로컬(PC)과 원격(GitHub)에서 동일한 파일에 대해 로컬과 원격에서 둘 다 수정사항이 있다면, 어떻게 해결해야할까?
이때 commit-push 나 pull을 시도하면 merge를 하라거나 오류가 발생하며 수행되지 않는다.
수정본과 내 코드 모두 필요한 경우 해결 방안 중 하나는 stash와 stash pop을 이용하는 것이다.
git stash
는 마지막 commit에 대해 수정본을 잠시 다른 곳에 저장하는 것이다.
예를 들어, 어제 진행한 commit에서 코드를 수정한 부분만 저장하고 마지막 commit의 코드 상태로 돌아간다.
git stash
사용 후 이제 마지막 commit과 상태가 동일하기에 pull
을 수행할 수 있다.
pull
수행 후,
git stash pop
을 한다.
VSCode 기준으로 git stash pop
을 수행하면 VSCode에서 stash pop
한 내용과 pull
한 내용에 대한 비교를 수행하고 어떤 코드를 merge하고 버릴지 고를 수 있게 된다.
(VSCode 기준임)
📣
본 포스팅의 언어 및 개발 환경 : Windows10
, git
포스팅에 대한 오류나 궁금한 점은 Comments를 작성해주시면, 많은 도움이 됩니다.💡
Leave a comment