카테고리 없음
Git 협업
내이름효주
2024. 4. 8. 23:00
- git branch: 복사본을 만들어 사용
git branch 브랜치명
- git switch: 사본 파일로 이동
git switch 브랜치명
// 다시 main branch로 이동!
git switch main
- git log --online --all --graph: log를 그래프 형식으로 보여줌
- git merge: 각각의 커밋 내용을 합침
// 기준이 되는 branch로 이동
git switch main
// 변경한 branch를 merge -> 각각 다른 파일을 커밋한 경우 가능!
git merge 브랜치명
// 같은 파일을 커밋한 경우 충돌 발생
// 방법: 원하는 코드만 남기고
git add .
git commit -m ""
- pull request: 자신의 수정내용을 다른 멤버에게 말해주는 것, 수정사항이 확인되면 main/master 브랜치에 merge
- pull request시 충돌나면 로컬에 pull하고 conflict 해결 > 다시 push 후에 pull request
- 위에 방법들이 잘안돼서 새로운 방법으로 해봤다
- git fork를 이용한 방식
- fork - 다른 사람의 Github repository에서 내가 어떤 부분을 수정하거나 추가 기능을 넣고 싶을 때 해당 respository를 내 Github repository로 그대로 복제하는 기능
- fork한 저장소는 원본(다른 사람의 github repository)와 연결되어 있다. 여기서 연결 되어 있다는 의미는 original repository에 어떤 변화가 생기면(새로운 commit) 이는 그대로 forked된 repository로 반영할 수 있다.
- 원본 RP에서 fork하여 나의 RP에 복제 (github에서)
- 복제한 RP를 로컬PC에 Clone # 기본 세팅
- (작업 전) sync fork -> commit 을 하여 fork한 나의 RP를 최신상태로 만들어줌 (github에서)
- (작업 전) 최신상태의 나의 RP에서 pull하여 수정사항을 업데이트 시킴
git pull origin main
5. (작업 후) 로컬에서 작업한 내용을 저장하고 fork한 나의 RP에 push
git add .
git commit -m "~~"
git push origin main
6. fork한 나의 RP에 commit 된 내용을 원본 RP에 pull (github에서)
7. 그 후 권한자가 merge 승인해주면 완료!
------------------------------------------------------------fork한 후 업데이트 하는 방법------------------------------------------------------------
git remote add upstream [원본 주소]
이후 업데이트된 내용 불러오기
git pull upstream master/main
// 원본의 최신 버전 로컬에 동기화
git push origin master/main
// 동기화된 내용 내 레포지터리에 동기화
🚨로컬에서 git pull origin main 했는데 conflict 난 경우( pull 하기 전에 로컬에서 파일을 수정했기 때문에 발생 ) 🚨
- git stash // 수정사항 임시 저장
- git pull origin main
- git stash pop // 수정사항 덮기 (git stash clear // 수정사항 삭제)
--------------------------------------------------------------------clone 후 사용 방법--------------------------------------------------------------------
git clone "원본주소"
git remote add upstream "원본주소"
git remote rm origin // origin 주소 삭제
git remote add origin "저장하려는 주소"
이후 업데이트된 내용 불러오기
git pull upstream master/main
// 원본의 최신 버전 로컬에 동기화
git push origin master/main
// 동기화된 내용 내 레포지터리에 동기화