본문 바로가기
DEV/Git

git :: git github (CLI)

by 올커 2022. 9. 29.

 

git github (CLI) - clone, push, fetch, pull, PR

1. 로컬/원격 저장소 관리

  1) 클론(Clone) : 원격 저장소를 로컬 저장소로 복제해온다.

  2) 푸시(Push) : 로컬 저장소를 원격 저장소에 밀어넣는다.

  3) 패치(Fetch) : 원격 저장소를 로컬 저장소에 병합하지 않고(별도의 브랜치에) 일단 받아온다.

  4) 풀(Pull) : 원격 저장소를 로컬 저장소에 가져와서 합친다.(fetch + merge)

 ※ 참고. 원격 저장소 브랜치 이름
       - main 브랜치   →   master 브랜치
       - origin               →   원격 저장소에 붙은 일종의 별명
       - origin/HEAD  →   원격 저장소 origin의 HEAD
       - origin/main   →   원격 저장소 origin의 main

2. github 원격 저장소 연결

  - 먼저 원격 저장소(github repository)를 생성한 후 https나 SSH 링크를 복사해와서 연결한다.

  - 로컬 저장소에서 연결하는 방법은 github 저장소를 만들 때 Add a README file를 체크하지 않는다면 아래 가이드가 저장소에 자동으로 저장된다.

  - 여기서 두번째 칸을 보면 잘 나와있다.

   1) git remote add origin git@github.com: /////.git

    git remote add는 원격저장소와 연결하는 명령어이고, origin은 원격저장소 이름(밑줄친 부분)을 origin이라는 이름으로 상호작용하겠다 라는 별칭으로 사용된다.

     2) git branch -M main : 메인브랜치 이름을 main으로 변경해주는 명령어이다. 이미 main일때는 변경하지 않아도된다.

     3) git push -u origin main : 변경사항들을 원격 저장소에 모두 밀어넣는 명령어이다.

     3) git fetch -u origin main : 원격 저장소의 커밋을 가져오되 병합하지 않고 origin/main이라는 브랜치로만 가져온다. (결론적으로 main 브랜치에는 병합되지 않은 상태다.)

     3) git checkout FETCH_HEAD : 변경사항을 가리키는 헤드로 이동. 변경사항을 볼 수 있다.

 

3. github 원격 저장소 PR

  - PR(Pull Request) : 내가 소유하고 있지 않은 다른 원격 저장소가 내 변경사항을 풀(Pull)하도록 요청(Request)을 보내는 것

  - PR이 이루어지는 순서

    1) 기여하려는 저장소를 본인 계정으로 포크하기

    2) 포크한 저장소를 클론하기

    3) 브랜치 생성 후 생성한 브랜치에서 작업하기

    4) 작업한 브랜치 푸시하기

    5) 풀 리퀘스트 보내기

 

  - 위의 PR이 완료되면 host에게 아래와 같은 메시지와 버튼이 뜬다. host는 검토 후 승인할지 결정하고, 승인하면 PR요청자는 contributor가 된다.

  - PR은 기능을 개선하는 것 외에도 오탈자 수정 등 간단한 것들도 있으니 많이 시도해보는 것이 좋다.

 

https://youtu.be/lxQ-9HQDmcE

※원격 저장소를 활용하기 위한 명령어

용도 명령어
원격 저장소 이름 조회 git remote
원격저장소 이름 + url 조회 git remote -v
원격 저장소 추가 git remote add <원격저장소명> <원격저장소경로>
원격 저장소의 내용을 로컬 저장소로 복사 git clone  <원격저장소경로>
로컬 저장소의 변경내용을 원격 저장소에 반영 git push  <원격저장소명> <로컬브랜치명>
* 참고) -u 옵션과 함께 push하면
이후로 <원격저장소명> <로컬브랜치명> 생략 가능
git push -u <원격저장소명> <로컬브랜치명>
원격 저장소의 변경내용을 로컬 저장소에 반영 git pull  <원격저장소명> <로컬브랜치명>
로컬 저장소와 원격 저장소의 차이를 비교 후 반영  git fetch  <원격저장소명> <로컬브랜치명>
 
 

 

 

 

  

반응형

'DEV > Git' 카테고리의 다른 글

git :: git merge, conflict(CLI)  (0) 2022.09.28
git :: git branch(CLI)  (0) 2022.09.27
git :: git stash(CLI)  (0) 2022.09.26
git :: git revert, reset(CLI)  (0) 2022.09.25
git :: git diff(CLI)  (0) 2022.09.24

댓글