1 minute read

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