일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- django
- 18233 java
- django httpd error
- The requested operation has failed!
- 18233 비트마스킹
- 원격 연결 포트 포워딩
- 2643 java
- 2643 색종이 올려 놓기
- 18233 러버덕
- apache pythonpath
- windows 원격 연결 설정
- 14711 java
- Problems occurred while performing provisioning operation
- django 웹 페이지
- 14711 타일 뒤집기
- django apache deploy error
- django windows 배포 에러
- windows apache wsgi 에러
- django 프로젝트 시작
- java di
- APPEND_SLASH = FALSE
- 2661 좋은 수열
- 2661 java
- 공유기 원격 설정
- django settings.py
- 2961 도영이가 만든 맛있는 음식
- 1188 음식 평론가
- 1188 java
- django The requested operation has failed!
- 2961 java
라이브러리는 도서관 아닌가요
git - forked repository에서 original repository로 변경사항 적용 본문
실행 흐름 (주의: 상당히 주관적이고 개인적인 언어로 작성되어 있습니다.)
1. fork한 user가 자신의 로컬 repository에서 변경사항을 만든다.
2. 이후 자신의 forked remote rerpository에 push한다.
3. fork user가 이 내용을 original project에 반영하고 싶다.
4. original repository에 'pull request'를 발생시킨다.
5. 권한을 가진 original repository의 contributor가 승인한다.
6. 반영된다. 끝.
0. 상황 가정
0-1. origianl project를 fork하여 내 remote repository에 생성한다.
0-2. 그 다음 git bash에서 아래의 명령어로 내 로컬에 프로젝트 생성한다.
git init
git remote add origin [forked repository]
git remote add upstream [original repository] // original을 upstream에 등록한다.
or
git clone [forked repository 주소]
git remote add upstream [original repository] // original을 upstream에 등록한다.
0-3. 위 작업 무사히 잘 되었다면, 아래의 명령어들로 확인
git branch // 내 로컬에서 생성된 브랜치 리스트 확인
git branch -r // remote의 브랜치 리스트 확인
git branch -a // 모든 브랜치 리스트 확인
(clone하면 친절하게 내가 준비한 폴더를 즈려밟고 안에 새 폴더를 생성해준다. git bash 계속 쓰려면 경로 이동 필요)
0-4. forked를 받아온 내 로컬 repository에 변경사항을 추가한다.
1. 로컬에 수정한 내용을 remote forked repository에 push한다.
1-1. push 실행
git add *
git commit -m 'some comment'
git push origin main[혹은 master]
1-2. 수정된 내용이 정상적으로 반영되었는지 확인한다.
(야수의 심장을 가지고 있다면 생략해도 된다.)
2. Git Homepage의 pull request 기능을 이용해서 반영 요청
(로컬에서 받을 때도 pull인데, 왜 병합 요청에도 pull request일까? 진행하면서 좀 더 알아보자.)
2-1. git의 homepage로 가면 저런 메세지가 있는데, 버튼을 클릭하면 된다.
오래 돼서 안 보이면, 아래의 버튼을 클릭해도 된다.
2-2. Git에서 병합이 가능한지 자동으로 코드 검사를 해준다. 아래의 Able to merge라는 메세지가 뜨면 O.K.
2-3. comment 남기고 Create pull request 클릭
성공적으로 진행되었다면 아래와 같은 화면을 볼 수 있다.
3. Pull request 요청을 받은 Original Repository에서 병합 진행
( 아래에서부터는 pull request 요청을 받은, 권한을 가진 contributor만 진행이 가능하다. 결국 forked에서 요청을 받은 후 original에서 pull을 하고 병합하기 때문에 pull request라는 이름이...)
3-1. 권한을 가진 contributor가 아래의 Pull requests를 누르면 방금전에 forked에서 보낸 요청 리스트를 확인
3-2. 아래의 Merge pull request를누르면 병합이 진행된다. (comment도 남길 수 있다.)
3-3. 그러면 완료됐다는 화면으로 전환된다.
original contributor는 자신의 로컬 repository에 pull을 실행해서 반영한다.
권한이 없는 forked user라면 유용하지만 original에서 권한을 가지고 있는 contributor라면 굳이?
+0. 반대로 진행해보자.
+0-1. upstream에서 변경을 하고 original remote repository에 push를 끝냈다.
+1. 우선 fetch 과정을 통해서 변경 사항을 '가져온다.'
1-1. 아래의 명령어를 입력한다.
git fetch upstream
이때, 로컬 저장소나 원격 저장소(remote repository)에 아무런 일도 일어나지 않으나 당황하지 말 것.
가져오긴 했지만 저장소에 반영하지 않았다.
1-2. 먼저 나의 로컬에 저장하도록 하자.
git merge upstream/[브랜치명]
1-3. 로컬에 저장이 되었는지 확인한다.
(내 손 끝을 믿는다면 안 해도 된다.)
+2. 포크된 원격 저장소(forked remote repository)에 반영한다.
2-1. 아래의 명령어 입력
git push origin [브랜치명]
2-2. 원격 저장소를 확인한다.