TIL 49 | Github team project

dabin *.◟(ˊᗨˋ)◞.*·2021년 10월 5일
2

etc

목록 보기
6/14
post-thumbnail
post-custom-banner

혼자 프로젝트를 진행할 때는 git clone, npm install, git add, git commit, git push로 모든 것이 해결 가능했다!(오류만 나지 않는다면,,ㅎ) 프로젝트를 진행하면 팀원이 만든 컴포넌트나 다른 파일들을 불러와야 하는데, 이 과정을 기록해보자. 오늘 git push를 다른 브랜치에 해서 멘탈이 와르르 흘러내렸다. 앞으로는 당황하지 않고 git 명령어로 해결할 수 있도록 추가적인 명령어를 조금 더 찾아봤다.

  1. 작업중인 브랜치에서 git add, git commit, git push로 PR을 날린다. git status로 잘 하고 있나 확인하는걸 습관적으로 하자!
  2. 팀원 리뷰를 받고 approve를 받는다. (설정에 따라 merge를 할 수 있는 조건을 변경할 수 있다.)
  3. 팀원들에게 merge할거라는 소식을 전한다!(우리 팀은 conflict를 방지하기 위해 merge 요청이 있을 때 다같이 디스코드에 모여 진행하기로 했다. 최신 업데이트를 바로바로 하기 위함이다.)
  4. merge하고자 하는 해당 PR에서 merge를 한다.
  5. 각자 main branch로 이동한다. 각자 작업하던 것은 add & commit 하고 진행하자!
  6. pull을 한다. pull을 하면 merge한 파일이 들어와있는 것을 볼 수 있다!
  7. 다시 작업하던 branch로 이동한다.(branch가 여러개면 바로바로 업데이트 할 수 있도록 모두 merge해주는게 편할 것 같다!)
  8. merge하면 main branch에 있던대로 업데이트가 된다.
  9. 나의 branch에서 계속 작업한다.
//5
git checkout main
//6
git pull origin main
//7 
git checkout branchname
//8
git merge main

add, commit, push 취소하기

add

//파일 전체 삭제
git reset HEAD
//특정 파일 삭제
git reset HEAD readme.md

commit

//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

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전이기 때문에 하지 않음
profile
모르는것투성이
post-custom-banner

0개의 댓글