git branch
git branch -r
git branch <branch-name>
git branch -d or --delete <branch-name>
삭제하고 싶은 브랜치 위에 있는 경우에 삭제가 되지 않는다. 다른 브랜치로 이동 후 삭제해야 한다.
또한 브랜치 삭제는 완전히 병합된 브랜치만 삭제가 가능하다.
git branch -d or --delete -f or --force <branch-name>
혹은
git branch -D <branch-name>
`-D` 는 `--delete --force` 의 shorthand임.
git push origin --delete or -d <remote-branch-name>
로컬 브랜치 삭제 후 원격 브랜치 삭제를 진행한다.
git branch -m or --move <new-branch-name>
브랜치 이름 변경은 이름을 바꾸고자 하는 브랜치 위에 있어야 변경이 가능하다.
git branch -m <old-branch-name> <new-branch-name>
그렇지 않은 경우 변경할 브랜치를 특정하고 바꿀 브랜치 이름을 명시하면 된다.
브랜치 병합하기
git merge <branch-name>
병합을 위해서는 기준 브랜치로 먼저 이동한 후 merge
명령을 실행해야 한다.
현재 브랜치라 master
라면 master
브랜치에 <branch-name>
을 병합한다.
병합할 때는 fast-forward-merge 혹은 병합 커밋 생성 하는 병합이 있다.
변경사항 확인
git diff
git diff --staged or --cached
git diff HEAD
git diff <filename> ...
추가로 파일을 입력해 두 개 혹은 세 개 등 여러 파일의 변경사항을 확인 가능
git diff <branch-name> <branch-name>
git diff <commit-hash> <commit-hash>
임시 저장하기
git stash (save)
git stash pop
git stash apply
git stash list
git stash drop stash@{<stash-number>}
git stash clear
특정 커밋으로 이동하기
git checkout <commit-hash>
git checkout HEAD~1
헤드 참조
변경사항 되돌리기
git restore <filename>
git restore --source HEAD~1 <filename>
or
git restore --source <commit-hash> <filename>
--source 의 기본값은 HEAD입니다.
git restore --staged <filename>
브랜치 이동하기
git switch <branch-name>
git switch -c <branch-name>
커밋 취소하기, 되돌리기
차이점은 git reset, revert 포스팅 참조하세요
https://velog.io/@alsry922/%EC%BB%A4%EB%B0%8B-%EC%B7%A8%EC%86%8C%ED%95%98%EA%B8%B0
git reset <commit-hash>
특정 커밋 해시를 가진 커밋 이후의 커밋들을 삭제 후 working tree에 커밋 내용 복구
git reset --hard <commit-hash>
특정 커밋 해시를 가진 커밋 이후의 커밋들을 삭제 후 폐기
git revert <commit-hash>
특정 커밋 해시를 가진 커밋까지의 내용물로 되돌아가고 되돌아갔다는 커밋을 추가로 남김
원격 저장소 clone
하기
git clone <remote-repo-url>
git remote
or
git remote -v
git remote add <remote-repo-name> <remote-repo-url>
git remote rename <old-name> <new-name>
git remote remove <remote-repo-name>
git push <remote-repo-name> <branch>
위 명령어는 원격 저장소에 브랜치를 생성하는 역할도 한다.
git push <remote-repo-name> <local-branch>:<remote-branch>
git pull <remote-repo-name> <branch>
pull은 fetch + merge 작업까지 같이 한다.
git fetch <remote-repo-name> <branch>
원격 저장소 commit을 로컬 저장소로 내려받기만 하고 working tree까지 통합시키지는 않는다.