혼자 프로젝트를 진행할 때는 git clone, npm install, git add, git commit, git push로 모든 것이 해결 가능했다!(오류만 나지 않는다면,,ㅎ) 프로젝트를 진행하면 팀원이 만든 컴포넌트나 다른 파일들을 불러와야 하는데, 이 과정을 기록해보자. 오늘 git push를 다른 브랜치에 해서 멘탈이 와르르 흘러내렸다. 앞으로는 당황하지 않고 git 명령어로 해결할 수 있도록 추가적인 명령어를 조금 더 찾아봤다.
//5
git checkout main
//6
git pull origin main
//7
git checkout branchname
//8
git merge main
//파일 전체 삭제
git reset HEAD
//특정 파일 삭제
git reset HEAD readme.md
//commit 목록 확인
git log
//commit을 취소 후 해당 파일 staged 상태로 워킹 디렉터리에 보존
git reset --soft HEAD^//모두 보존
//commit을 취소 후 해당 파일 unstaged 상태로 워킹 디렉터리에 보존
git reset --mixed HEAD^//기본 옵션
git reset HEAD^
git reset HEAD~2 // 마지막 2개의 commit 취소
//commit을 취소 후 해당 파일 unstaged 상태로 워킹 디렉터리에서 삭제
git reset --hard HEAD^//모두 취소
무서운 리셋은.. 조심해서 사용하자. soft 안했으면 울뻔했다.. hard하면 되돌린 commit 이후 작성한 파일이 모두 사라진다. 조심 또 조심 오케이? 옼케이!
출처
https://gmlwjd9405.github.io/2018/05/25/git-add-cancle.html
push를 취소하면 되돌아간 commit 이후 모든 정보가 사라지기 때문에 주의해야 한다. 내가 딱 이 상황에 놓여있었다. 눙물,, 협업 프로젝트에서는 더 주의해야 하는게 자신의 local 내용을 remote에 강제로 덮어쓰기 하는 것이기 때문이다! merge를 팀원끼리 모여 처음 해봤기 때문에 별다른 conflict 없이 넘어갈 수 있었다!
1. commit 취소
git reset HEAD^
2. 커밋 목록 확인
git reflog
3. 원하는 시점으로 되돌리기
git reset [COMMIT ID] //reflog에 나와있음
4. 원하는 시점으로 되돌아감
5. 다시 commit을 한다.
git commit -m "휴 살았다!"
6. 원격 저장소에 강제로 push
git push origin +main //오늘은 merge전이기 때문에 하지 않음