Draft
PR을 받을 단계는 아니고 작성중인 경우에 사용
아래와 같은 경우 사용
일단 깃허브에 올리지만 추가적으로 소스코드를 작성중일때
여러 PR들의 부모역할로 처리함 // 부모티켓(드래프트) <- 자식티켓1,2..
소스코드 수정요청을 받았을때 일단 draft처리를 해두고 수정한뒤 다시 PR상태로한다
Fork
포크의 경우 간단하게 설명하자면 깃허브에서 원본 레포지토리(*1) -> 내 원격레포지토리(*2)에 Fork해서 레포지토리를 추가하는것이다
그리고 그 추가한 원격 레포지토리(*2)를 내 로컬 레포지토리(*3)로 추가한다.
로컬 레포지토리(*3)에서 수정한 내용은 Fork레포지토리(*2)에 추가/수정도 할수있고 원본 레포지토리(*1)의 수정내용도 원격레포지토리(*2)로 받아올수있다
만약 원본 레포지토리(*1)에 수정을 원하면 Fork한 레포지토리(*2)를 수정한후 원본레포지토리(*1)에 PR을 하면 된다
Clone
클론의 경우 원본 레포지토리(*1)혹은 내원격레포지토리(*2)를 내 로컬의 레포지토리(*3)와 1:1 맵핑하는것이다
그러므로 수정이 제한적이다
위의 이미지에서의 A,B,C는 아래와 같다
A: *1 , B: *2 , C: *3
Fetch
원격 레포지토리의 브랜치들의 메타데이터를 가져온다 (원격 브랜치를 로컬에 가져오는게 아니라 원격 브랜치들의 최신 상태를 받아옴)
git fetch --all // 모든 원격 브랜치들의 최신 메타정보를 받아옴
git fetch origin 원격브랜치명 // 특정 원격 브랜치의 최신 메타정보를 받아옴
git checkout FETCH_HEAD // 「 git fetch origin 원격브랜치명 」 으로 가져온 경우, FETCH_HEAD에는 받아온 원격 브랜치 정보가 있다.
그러므로 원격 브랜치의 최신 메타 정보를 git checkout FETCH_HEAD를 통하여 확인가능하다.
( = 「git checkout origin 정보를_받아온_원격브랜치명」 과 동일하다)
아래와 같은 사용이 가능하다 (git pull과 동일)
$ git fetch // 로컬 master 브렌치에 위치한 상태에서 최신 원격 master 브렌치의 메타 정보를 받아온다
$ git checkout FETCH_HEAD // 받아온 원격 master 브렌치에 체크아웃한다
$ git log
$ git checkout master // 다시 로컬 master로 돌아온다
$ git merge FETCH_HEAD // fetch_head에 있는 최신 master정보를 로컬 master로 merge한다
원격 레포지토리의 정보를 로컬의 레포지토리에 강제로 덮어쓰기
git reset --hard <원격레포지토리명>/<원격브랜치명>
// 예를 들면 아래와 같다
git reset --hard origin/master
이미지참조
https://qiita.com/matsubox/items/09904e4c51e6bc267990