git reset —hard [가장 최신 커밋아이디]or[HEAD@??] 하면 다시 돌아옴
git 리셋을 하면 사라지는게 아니라 헤드가 가리키는 브랜치가 달라지는 거임
git reflog : 헤드가 가르키던 커밋들의 id확인
git log —pretty=oneline (하나의 브랜치)
git log —pretty=oneline —all(여러 브랜치) - 이렇게 하면 가독성이 않좋다.
git log —pretty=oneline —all —graph : 그래프를 통해 흐름을 잘 보여줌 (*는 커밋 1개 나타냄)
기능들 추가하고 합쳐서 merge쓸 수도 있지만 깔끔한 커밋 히스토리를 원한다면
git rebase [브랜치] : 커밋을 재배치
(merge 할 때랑 비슷함)
git add . 해주고 git rebase —continue 함
즉 merge는 두브랜치를 합쳤다는 정보가 커밋히스토리에 남아야하는 경우 사용,
rebase는 커밋 히스토리를 깔끔하게 유지하는게 더 중요한 경우 사용
git stash : working directroy에서 작업하던 내용을 깃(자료형 stack)이 따로 보관
(최근 커밋 이후 내용 스택에 저장하고, 가장 최신 커밋의 내용으로 돌아감)
git stash list: 스택에 저장 확인
git stash apply ([아이디: stash@?]): 스택에 저장된 내용이 나옴 ,apply 까지만 써도 됨
git stash drop ([아이디: stash@?]): 스택에 저장된 내용 삭제
git stash pop [작업 내용의 아이디]: 작업 내용을 적용하면서 동시에 스택에서 제거
git cherry-pick [커밋아이디]: 자신이 원하는 작업이 들어있는 커밋들만 가져와서 현재 브랜치에 추가
git reset —soft or mixed : 워킹디렉토리 안건들고 돌아가서 커밋하기
(git commit—amend는 마지막 커밋수정하기엔 좋음)
gitignore 을 통해 원하지 않는 파일무시하기