./categories/dev-ops
Git CLI 명령어 #2
stash
git stash # 임시 저장 (working tree clean으로 보임)
git stash list # stash@{0}, stash@{1}...
git stash pop # 최근 것 적용+제거
git stash apply <n> # 특정 번호 적용
git stash drop # 삭제
merge
git merge <브랜치명>
git merge <원격저장소>/<브랜치명>
현재 브랜치에 대상 변경사항을 합침.
rebase
git rebase <브랜치명> # merge와 결과는 비슷, 로그가 선형
git rebase -i @~3 # 최근 3개 대화형
- 옵션:
pick /reword /edit /squash /fixup /xexec - push되어 공유 중인 커밋은 rebase 금지 (미merge feature만)
- 충돌:
--abort/--continue/--skip
git add <충돌파일>
git rebase --continue
pull request (GitHub)
브랜치 push → Compare & pull request → Create → 리뷰 후 Merge.
충돌은 GitHub Resolve보다 로컬 merge/rebase 후 재push 권장.
show
git show HEAD # = git show @
git show HEAD~ # = HEAD^ / @~ / @^ (1커밋 이전)
git show @~3 # 3커밋 이전
reset
git reset --soft @^ # 1커밋 되돌림, staged 유지
git reset @~3 # --mixed(기본), modified 유지
git reset @ <파일명> # unstage
--hard— commit/add/워킹트리까지 되돌림, 복구 어려움 → 혼자 쓰는 브랜치만
cherry-pick
git cherry-pick <커밋해시>
다른 브랜치의 특정 커밋만 가져옴 (원본 커밋은 유지).
./comments