github에 westagram이라는 repository 만든다.
1. 한개의 컴퓨터에서 CRA settings를 한다
node.moudules는 너무 무겁기 대문에 .gitignore에 올려서 깃헙에 안올린다.
package.json을 git push origin master를 통해 올리게됨.
다른 팀원들의 컴터에서 git clone
각각의 컴퓨터에서 npm install명령어를 이용해 package.json안의 dependcies를 읽어서 node_modules를 다운받음
나는 로그인 맡았으니까 git branch feature/login
나는 메인 맡았으니까 git branch feature/main
중간 질문)
다른 팀원이 feature/list라는 파일을 만들어서 push하고 merge요청한거고
나는 feature/main라는 파일을 만들어서 push 후 merge요청한건데
만약 같은 파일이 같은 라인을 둘다 각각의 아이디어로 수정한 상황에 conflict발생
리모트 입장에선 어떤 변경사항을 받아들여야 하는지 모름.
이 상황을 해결하기 위해선 최신화된 remote의 master을 가져와야함
5. git pull origin master -> 나의 로컬 마스터도 최신화 됨
6. git checkout feature/main
( 병합이 이뤄지려고 할 때 충돌이 일어남)
7. git merge master <- 이때 충돌이 나냐/ 안나냐 파악됨
경고 문구!!💢💢 "This branch has conflicted that must be resolved"
Conflict files
name.md
googoo와 zoozoo가 같은 파일의 같은 라인을 건드렸기 때문에 발생한 상황!!
문제생겼으니까 해결해야지!!
merge가 된 것을 로컬의 마스터로 일단 가져온다.
그냥 feature/zoozoo로 바로 git pull origin master하면 안되는건가?
그렇게 해서 conflict해결하면 되자나?
당장은 해결 될것이다.
하지만!
나중에 로컬의 master에서
git branch 뭐시기,
git branch 저시기 같이 계속 만들때마다 '최신화'가 안된것으로 작업을 하게 되는것이기 때문에 local의 master에서 pull origin master을 해줘야한다.
1) git checkout master
2) git pull origin master
*문제가 생긴 부분을 해결 하기 위해선 병합을 해야 확인할 수 있다.
3) 내 브랜치(feature/zoozoo)로 마스터의 변경된 이력을 나한테 병합해줘야한다.
4) git checkout feature/zoozoo
5) git merge master -> 마스터에 있는걸 나한테 병합시킨다
->>> 이때!! 문제가 되는 부분이 나온다.
6) 손수 문제가 되는 부분을 일단 해결해주고 나중에 익숙해지면 단축탭을 이용한다.
7) 문제가 되는 부분을 수정해준뒤,
8) git add .
9) git commit -m "Fix : conflict resolved"
10) git push origin feature/zoozoo
commit간의 이동
git log로 commit 번호 확인 후,
git checkout history의 7자리
입력하면 그때 시점으로 넘어감
git checkout 1b75dac
commit 1b75dac597ff0a22d084996a6f3000ddf34cb9cf
Author: ksung91889 <ksung91889@chosunbiz.com>
Date:Mon Apr 25 14:20:13 2022 +0900
github에 push하기전에
파일은 유지하되 커밋내용 삭제하고싶으면
git reset 해당해시숫자(6개이상이면 상관없음)
-> 입력한 해시 커밋이후로 한것들 다 제거됨.(최신 파일은 유지상태) 다시 커밋해주셈 예쁜이름으로.ㅇㅇ
git commit -am "입력하세요 커밋하고싶으면"
: add와 commit을 동시에 할 수 있음.