일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 2022년 6월 일상
- 막내의막무가내 목표 및 회고
- 막내의막무가내 코틀린 안드로이드
- 주택가 잠실새내
- 막내의막무가내 안드로이드 에러 해결
- 안드로이드 sunflower
- 막내의막무가내
- 막내의막무가내 일상
- 막내의막무가내 안드로이드
- 안드로이드 Sunflower 스터디
- 막무가내
- 막내의막무가내 알고리즘
- 막내의 막무가내
- 막내의막무가내 SQL
- 프래그먼트
- 막내의막무가내 플러터
- 부스트코스
- 주엽역 생활맥주
- 막내의막무가내 코틀린
- 프로그래머스 알고리즘
- 막내의 막무가내 알고리즘
- flutter network call
- 부스트코스에이스
- 막내의막무가내 안드로이드 코틀린
- 막내의막무가내 rxjava
- 안드로이드
- Fragment
- 막내의막무가내 플러터 flutter
- 막내의막무가내 프로그래밍
- 막내의막무가내 코볼 COBOL
- Today
- Total
막내의 막무가내 프로그래밍 & 일상
[Git] 중앙 원격저장소 사용할 때 정리 (ex 협업, 오픈소스 기여 등) 본문
최근 프로젝트를 fork 후 내 원격 저장소와 로컬에서 작업 후 중앙 원격저장소로 pull request를 하는 작업을 하고 있는데 관련된 것들을 정리해볼려한다..(협업의 기초!!)
제 개인 정리라 생략된게 많을 수도 있습니다... 허허..
해당 사이트는 정리가 잘 되있으므로 참고하면 좋다.
https://andamiro25.tistory.com/193
들어가기 앞서 저장소에 대한 개념을 살펴본다.
1. 중앙 원격 저장소: 여러 명이 같은 프로젝트를 관리하는데 사용되는 그룹 계정의 중립된 원격 저장소이다. ( 내 레포지토리가 아닌 타인의 레포지토리라고 봐도 될 것 같다. )
2. 자신의 원격 저장소(remote repository): 내 깃허브 레포지토리이다.
3. 로컬 저장소(local repository): 내 PC에 저장되는 개인 전용 저장소라 보면 된다. (예를들어 내 pc에 clone하는 행위, 내 pc저장공간)
git remote -v => remote 조회, 처음 clone하면 해당 레포만 결과창에 뜰 것이고 origin으로 되있다.
$ git remote -v
origin https://github.com/깃헙아이디/레포이름.git (fetch)
origin https://github.com/깃헙아이디/레포이름.git (push)
git remote add upstream 레포url => 중앙 원격 저장소의 url을 매번 치기는 힘들다. 그러므로 upstream에 등록해주면 origin이 내가 클론한 깃헙레포를 나타내는 것처럼 등록한 레포를 upstream으로 간편하게 사용할 수 있다. ( 중앙원격 저장소의 이름은 보통 upstream이라 짓는다.)
git remote add upstream https://github.com/깃헙아이디/중앙원격저장소레포이름.git
그 후 다시 git remote -v 를 하면 upstream이 추가 된 것을 확인 할 수 있다.
$ git remote -v
origin https://github.com/깃헙아이디/레포이름.git (fetch)
origin https://github.com/깃헙아이디/레포이름.git (push)
upstream git remote add upstream https://github.com/깃헙아이디/중앙원격저장소레포이름.git (fetch)
upstream git remote add upstream https://github.com/깃헙아이디/중앙원격저장소레포이름.git (push)
git fetch remote명 branch명 => remote의 수정 내용을 로컬로 가져오되 로컬의 원래내용과 병합하지 않는다. 수정 내용을 로컬에도 반영하고 싶다면 git merge를 사용하면 된다.
git pull remote명 branch명 => 위의 fetch와 똑같으나 fetch와 merge의 통합형이라고 볼 수 있다. 즉 fetch와 다르게 소스가 병합된다.
fetch와 pull의 차이점은 https://backlog.com/git-tutorial/kr/stepup/stepup3_1.html 에서 참고하도록 하자.
[예시]
중앙원격 저장소를 fork 후 내 원격저장소로 가져와서 clone후 내 로컬 저장소에서 ex-branch라는 이름의 브랜치에서 작업한 마쳤다고하자. (브랜치 생성 또는 checkout 생략, upstream 설정까지 완료한 상태)
충돌을 피하기위해
git pull upstream 중앙원격저장소의branch명
을 먼저 해준다.
그 후 차례대로 다음 3개를 실행함으로써 로컬 저장소에서 작업했던 것들을 내 원격 저장소에 push 한다.
1. git add 파일/디렉토리명
2. git commit -m "커밋메세지"
3. git push origin ex-branch => 생성된 브랜치에서 작업안하고 master에서 작업중이라면 git push origin master
그 후 내 원격 저장소로(나의 레포) 가서 내가 작업한 branch를 선택해주고 new pull request를 누른다. (개인 보안을 위해 부분캡처했습니다.)
그럼 예시로 다음과 같이 뜰 것이고 메시지와함께 pull request를 날려주면 된다.
내 pull request가 Merging is blocked되거나 close가 안되있는 경우는 내 로컬에서 작업 후 원격저장소에 push하고 다시 pull request를 날렸을 때 이미 올라가 있는 pull request에 내용이 추가되어 pull request가 되었다. ( 즉 pull request가 2개가 생긴게 아니라 기존의 pull request 밑에 새로 바뀐 내역들이 추가된다.)
추후 내용이 추가될 수도 있습니다. (현재 브랜치 생성, checkout하는 방법은 생략한 상태)
댓글과 공감은 큰 힘이됩니다. 감사합니다!!
'Git' 카테고리의 다른 글
[Git] Reset, Revert 차이 간략정리 (2) | 2020.03.20 |
---|---|
[Git] .gitignore 파일 설정 (불필요한 파일이 저장소에 병합되는 것을 막자) (3) | 2020.02.23 |
[Git] Git WorkFlow 정리 잘 해놓은 글 (0) | 2019.11.08 |
[Git] 깃 이슈 생성 및 닫기 (0) | 2019.05.12 |
[Git] git 잘못 푸쉬(올린) 특정 폴더 삭제하는 방법 (5) | 2019.03.28 |