Git

Git & GitHub 심화

UserDonghu 2023. 12. 6. 19:00

Branch 

git의 기본 브랜치 : master

GitHub에서의 기본 브랜치 : main

 

브랜치 생성

git branch mybranch

 

메인에서 파생되는 브랜치 생성

git branch mybranch main

 

브랜치 이동/변경

git checkout mybranch

 

코드 이후로 원격 저장소에 mybranch라는 브랜치를 만들어 push

git push --set-upstream origin mybranch

 

브랜치 변경

git switch mybranch

 

브랜치 새로 만들어서 변경

git switch -c mybranch

 

파일을 최근 커밋으로 되돌리기

git restore README.md

 

최근 커밋 전으로 되돌리기

git checkout -- README.m

 

스테이지에 올린 파일 빼기

git restore --staged README.md

or

git reset HEAD README.md

 

브랜치 삭제

git branch -D <브랜치명>

 

삭제된 브랜치 복구

git reflog로 커밋 해시값 가져오고

git checkout -b <브랜치명> <커밋 해시값>

 

merge(합병)하기

git checkout main

git merge mybranch

git push origin main

 

Fork

Github 레파지토리에 들어가서 Fork를 클릭후 내 레파지토리 생성

clone -> commit -> push 후 pull request 보내기


그 외 명령어

amend

하나의 기능을 만들고 커밋을 할 때 누락한 파일을 추가하고 싶을 때 사용

 

최신 커밋에 스테이징한 내용 추가

git commit --amend

 

stash

현재 브랜치에서 아직 커밋 하지 못한 파일들이 있는데, 다른 브랜치로 넘어가야 하는 경우 현재 브랜치의 변경사항을 잠시 보관할 때 사용

 

Tracked : git 저장소에서 관리하는 파일

UnTracked : git 저장소에서 관리하지 않는 파일

 

수행중인 README.md 파일 작업을 임시 저장

git add README.md

git stash

 

다른 브랜치에서 작업하고 돌아온 후, 가장 최근에 임시 저장한 내용 가져오기

git stash pop

 

UnTracked 파일을 stash하려면 --all 붙여줘야함

git stash --all

 

reset

이전 커밋으로 브랜치를 되돌릴 때 사용

 

git reset --[mode] <커밋 id>

hard : 지정한 커밋 이력 이후 변경사항을 다 버리고 지정한 커밋으로 리셋

mixed : 지정한 커밋 이력 이후 변경 사항은 로컬에 unstaged 상태로 유지하고 커밋은 리셋

soft : 지정한 커밋 이력 이후 변경 사항은 로컬에 stage 상태로 유지하고 커밋은 리셋

 

revert

지정한 커밋의 내용으로 새로운 커밋 생성(히스토리 보존)

 

git revert <커밋 id>

 

cherry-pick

여러가지 커밋 중에 내가 원하는 커밋만 가져와서 현재 브랜치에 붙이기

 

git cherry-pick <commit-id>

'Git' 카테고리의 다른 글

Git & GitHub 기본  (0) 2023.10.06