Git

Git 특강 - 3. Github 원격저장소

차돌박이츄베릅 2023. 6. 8. 13:02

깃 연동하기. 안전한 사용!

  • Github 회원가입,
    Windows에서 Github 연동하기: https://youtu.be/P9gMl4O4kVg (7분 25초까지)
  • SSH 통신. 두 개의 키(암호)(공개키public - 식별, 개인키 - 암호화)가 필요


github 는 버전(커밋)을 업로드함
클라우드저장소는 완성본(파일 자체)를 업로드함

 

 

 


원격 저장소와의 네가지 상호작용

클론, 푸시, 패치, 풀


클론(clone)

원격 저장소를 복제하기. .git숨김폴더까지 같이 clone이 됨.

clone을 할 저장소에서 git init을 할 필요가 없다.

 

clone을 하면 모든 버전 + .git 숨김폴더까지 복제됩니다
git clone <복사한 SSH 경로>

 

  • main 브랜치 : master 브랜치4
  • origin : 원격 저장소에 붙은 일종의 별명
  • HEAD : 로컬저장소
  • main : 로컬저장소
  • origin/HEAD : 원격 저장소 origin의 HEAD
  • origin/main : 원격 저장소 origin의 main


푸시(push)

로컬 저장소의 변경사항을 원격 저장소에 밀어넣기

git remote add origin        이전에 커밋내역이 있어야함  git@github.com:lizzieFEstudy/test-repo.git
git branch -M main   현재 브랜치의 이름을 메인으로 바꿔
git push -u origin main     푸쉬하는 명령어. origin이라는 별명을 갖고있는 main 브랜치를 푸쉬할거야. -u를 입력하면 그 다음부터 그 뒤에있는 내용을 생략해도 됨. 반드시 커밋을 해야 push를 할 수 있는거

 

패치(fetch)

원격 저장소를 일단 가져만 오기.
변경사항을 가져오되 병합하진 않는 방식. 확인만 하고 싶을 때!
git checkout FETCH_HEAD는 패치한 헤드를 볼 수 있는 특별한 브랜치 
병합하고 싶으면 git merge FETCH_HEAD 로 머지할 수도 있음

 

풀(pull)

원격 저장소를 가져와서 로컬에 합치기.

fetch + merge 패치와 동시에 병합하는 방식


내가 소유하지 않은 원격 저장소에 푸시할 수 있을까? 

ㄴㄴ 불가능. collaborator 등록하거나 fork 하는 방식으로 해야 가능


깃허브 상에서 코드 논의를 하는지가 포트폴리오에서 중요함⭐❗❤️‼️👀


풀 리퀘스트(+포크)

깃허브를 통한 실무에서 협업 방식

  1. 기여하려는 저장소를 본인 계정으로 포크(fork=내 계정으로 복제)하기
  2. 포크한 저장소를 클론하기
    git clone ~
  3. 브랜치 생성 후 생성한 브랜치에서 작업하기
    git branch ~ / git checkout ~ /
  4. 작업한 브랜치 푸시하기
    git push origin foo
  5. 풀 리퀘스트 보내기 : 깃허브 돌아오면 버튼이 뿅 생김

 

fork, clone 차이점 

fork한 작업은 원본 작업의 변화를 알 수 있습니다. 또한 그 변화를 내 작업에 반영할 수 있습니다.

(fetch / rebase) clone한 작업은 원본 작업의 변화를 알 수 없습니다. 

 

만약 원본 작업의 변화를 알고 싶거나 원본 작업을 수정해서 반영하고 싶다면 fork를 사용하고, 

단순히 원본의 코드를 복사해서 작업하는 것이라면 clone을 사용

 

https://velog.io/@parkirae/git-fork-%ED%95%98%EA%B1%B0%EB%82%98-clone-%ED%95%98%EA%B1%B0%EB%82%98

 

[git] fork 하거나 clone 하거나

git fork, git clone, git fork하기, git clone하기, 깃허브 fork clone, 깃허브 fork, 깃허브 clone, Git fork clone 차이점

velog.io

 

'Git' 카테고리의 다른 글

Git 특강 - 2. 브랜치 관리하기  (0) 2023.06.08
Git 특강 - 1. Git 버전관리  (0) 2023.06.08
명령어 정리  (0) 2023.06.07
.gitignore  (0) 2023.05.18
[에러해결] unable to access The requested URL returned error: 403  (0) 2023.05.18