Created
June 4, 2023 13:29
-
-
Save JinsupJung/7ff9df146cc0875d8017b1fab624eede to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
commit | |
branch : 하나의 커밋과 그 부모 커밋들을 포함하는 작업 내역 | |
checkout | |
cherry-pick <commit> <commit2> <...> | |
reset HEAD~1 | |
revert HEAD | |
rebase | |
merge | |
< Git 리베이스(Rebase) > | |
브랜치끼리의 작업을 접목하는 두번째 방법은 *리베이스(rebase)*입니다. 리베이스는 기본적으로 커밋들을 모아서 복사한 뒤, 다른 곳에 떨궈 놓는 것입니다. | |
조금 어렵게 느껴질 수 있지만, 리베이스를 하면 커밋들의 흐름을 보기 좋게 한 줄로 만들 수 있다는 장점이 있습니다. 리베이스를 쓰면 저장소의 커밋 로그와 이력이 한결 깨끗해집니다. | |
git branch bugFix; git checkout bugFix | |
git commit | |
git checkout main; git commit | |
git checkout bugFix; git rebase main | |
(연습문제) | |
git rebase main bugFix | |
git rebase bugFix side | |
git rebase side ahother | |
git rebase another main | |
< git HEAD 분리하기 > | |
HEAD는 현재 체크아웃된 커밋을 가리킵니다. -- 다시 말하자면 현재 작업중인 커밋입니다. | |
HEAD는 항상 작업트리의 가장 최근 커밋을 가리킵니다. 작업트리에 변화를 주는 git 명령어들은 대부분 HEAD를 변경하는것으로 시작합니다. | |
일반적으로 HEAD는 브랜치의 이름을 가리키고있습니다(bugFix와 같이). 커밋을 하게 되면, bugFix의 상태가 바뀌고 이 변경은 HEAD를 통해서 확인이 가능합니다. | |
< commit 이동 > | |
한번에 한 커밋 위로 ^ git checkout main^ main^^ | |
한번에 여러 커밋 위로 ~<num> | |
git branch -f main HEAD~3 (-f=force) | |
=> main 브랜치를 HEAD에서 3번 뒤로 | |
(연습문제) | |
git branch bugWork main^^2^ | |
< 작업 되돌리기 > | |
git reset 애초에 커밋하지 않은 것처럼 예전 커밋으로 브랜치를 옮기는 것 | |
git reset HEAD~1 | |
git revert 각자의 컴퓨터에서 작업하는 로컬 브랜치의 경우 리셋(reset)을 잘 쓸 수 있습니다만, "히스토리를 고쳐쓴다"는 점 때문에 다른 사람이 작업하는 리모트 브랜치에는 쓸 수 없습니다. 현재 커밋과 반대되는 커밋이 생긴다. 변경 내역을 push한다. | |
git revert HEAD | |
변경분을 되돌리고, 이 되돌린 내용을 다른 사람들과 공유하기 위해서는, git revert를 써야합니다. | |
< git cherry-pick c2 c4 => 현재 커밋 밑에 c2 c4를 붙여준다 | |
< Git Rebase --Interactive 옵션 > | |
vim editor 뜨면 명령어 입력 후 :wq로 종료 | |
< git tag v1 c1 > | |
영구 milestone으로 지정 | |
< git describe <ref> > | |
git을 찾을때 유용 | |
< 초기화 > | |
rm -rf ./.git | |
git init => 새로운 .git이라는 저장소가 생긴다 | |
git add . => working에서 stage 상태로 (index) | |
git commit -m 'Commit Message' => 로컬 최종본 head 상태 | |
git status => 현재 상태 | |
git rm --cached 파일명 => staging에서 working으로 | |
git log | |
git log --oneline => 한줄로 | |
< 로컬 되돌리기 > | |
git checkout -- 파일명 => 로컬의 변경내용을 변경 전 head로 돌려준다 | |
< 로컬 모든 내용 포기 > | |
git fetch origin | |
git reset --hard origin/master | |
git branch => 현재 로컬 브랜치 확인 | |
git checkout -b 브랜치명 => 새로운 branch 생성 | |
git checkout 브랜치명 => 현재 선택된 브랜치로 변경 | |
git checkout -d 브랜치명 => 브랜치 삭제 | |
git merge 브랜치명 => main으로와서 실행하면 가지쳤던 브랜치 병합-> 합쳐진 브랜치는 삭제 git branch -d 브랜치명 | |
< 충돌 > | |
git merge --abort merge 이전으로 되돌리기 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment