day_by_day

git branch 생성 / branch push / git commit 취소 reset HEAD^ 본문

QA Automation/그냥하는거지무슨주제가있어

git branch 생성 / branch push / git commit 취소 reset HEAD^

kokorii_ 2023. 8. 7. 00:34

기본중에 기본이고 가장 많이쓰고 자주쓰는건데 왜 매번 잊어버리고 매번 찾아봐야 하는걸까 

괜찮아 이렇게 기록해두면서 다시 또 꺼내보면 되지 언젠가는 내 뇌가 외우겠지 .. 들어가는거 귀찮아서라도 외우겠지 그치? 

git branch 생성

//저장소 복사
git clone [url]

//브랜치 생성 
git branch [new_branch_name]

// 요렇게 하면 브랜치 생성 후 바로 새로 생성된 브랜치로 헤드가 옮겨짐
// git checkout -b [new_branch_name]

// 새로 생성한 브랜치로 이동
git checkout [new_branch_name]

// HEAD branch 어딘지 확인(잘 옮겨졌나 확인)
git branch 

//add, commit
git add .
git commit -m "mesg"

//branch push 왜 이걸 자꾸 까먹 는 거니!! 
git push origin [new_branch_name]

git commit 취소는 Reset 으로

어쩐일로(풉) fetch pull 안하고 저장소 땡겨서 오늘 push가 안들어갔다 

순~간~너무 당황했지만 자연스럽게 commit 취소해버리기

reset 명령어 옵션 

  • --soft : 커밋만 취소. add/staged 상태 유지. 워킹디렉토리 파일 보존됨
  • --mixed : reset 기본값. add 전 상태로 돌아감. (unstaged 상태). 
  • --hard : 원격 저장소의 마지막 commit 상태로 돌아간다. 즉 내가 작업한 커밋이 날라갈 수 있으니 매우 유의해야함 

리셋명령어를 쓸 때 git log 로 index 값을 확인하고 사용할 수 있지만, 나는 아직 특정 커밋으로 돌아가기보다는 바로 직전 상태로 돌아가는 경우가 더 많아서 HEAD^를 자주쓴다

그래서 내가 자주쓰는 명령어는

당연히 기본 옵션 커밋에 HEAD 

//git index, history 확인
git log

//바로직전 커밋상태로 돌리기, Unstaged
git reset --mixed HEAD^

//마지막 두개 커밋 취소, unstaged
git reset --mixed HEAD~2

//commit mesg만 수정하기 
//git commit --amend "mesg"

잊지말자 브랜치 커밋, 다시보자 reset --mixed