Today Task
•
작업하며 Git branch -D를 사용해 2개의 브랜치를 강제 삭제
Trouble Shooting
1. 커밋 수정하다가 Git branch -D
•
when
◦
커밋을 한 이후, 자잘한 수정 사항을 커밋에 합치고 싶어, git commit --amend 명령어 사용
▪
푸시까지 한 상황이라면 git push -f origin feature/뫄뫄 명령어를 사용해 원격 저장소에 푸시
•
error
◦
git —amend로 이전 커밋에 합쳤으나, 이전 커밋이 pull 이었음
→ merge한 내역에 내 작업을 합친 상황 발생 (OMG…)
→ 침착하게 구글링 
◦
git reset —soft HEAD@{1} 명령어를 사용해 git reflog 상의 HEAD@{1} 으로 돌아감(undo)
→ amend commit은 취소된 것 같으나, merge 파일이 staged 에 올라옴 
→ 원격의 상태는 그대로인 걸 보니, merge만 취소가 된 것 같음
→ staged를 취소하고, 다시 git pull origin develop
⇒ 지금 생각해보니 여기서 문제가 완료된 것 같음…. 그러나 지금은 알고 그때는 몰랐다.
◦
git reset HEAD^ 명령어도 사용해봄
→ 결과는 위와 같음
◦
결국 로컬 develop에서 pull을 받고, 작업하던 깃 브랜치를 강제 삭제 git branch -D feature/뫄뫄
→ 브랜치 강제 삭제시, 해당 브랜치의 history도 모두 삭제됨
→ 다행히 작업했던 파일이 열려있는 편집기에 있어서 복사붙이기 (VS CODE 좋다….?)
⇒ 해결!
•
learn
◦
git commit —amend 를 사용시, git log로 꼭 확인하기
◦
git reset 명령어는 다신 보지 말자
2. 브랜치 2개 이상 만들어 작업하다 Git branch -D
•
when
◦
머지까지 완료 후, 새 브랜치(feature/addProductUI)에서 작업하고 있는데, 이전 브랜치에서 필요한 디자인/기능이 구현되지 않은 걸 발견
•
how
◦
develop 브랜치로 가서 새 브랜치(feature/imageButtonUI)를 생성
◦
새 브랜치에서 작업 후 머지
◦
기존 작업 브랜치로 돌아가 git pull origin develop 후 작업 이어서 진행
•
error
◦
새 브랜치에서 작업 후, 커밋&푸시했는데, 이전 작업 브랜치의 커밋이 함께 발견
→ 새 브랜치를 이전 브랜치에서 생성했다는 걸 발견…..
→ 즉, 이전 브랜치의 작업 내역 위에 새 브랜치 작업 내역이 있는 상태
◦
내가 선택한 방법은 develop에서 새 브랜치를 만들어 (feature/imageButtonUI) 붙이기
▪
잘못 생성한 새 브랜치는 강제 삭제로 로그까지 삭제
⇒ 해결!
•
learn
◦
브랜치를 생성하면 git branch 명령어로 브랜치 확인 후 작업하기
◦
동일한 파일을 작업하는 게 아니라면 2개 이상 브랜치 작업 가능,
그러나 export 파일과 같은 작업 파일이 겹칠 가능성이 크기 때문에 지양할 것!