[GITn] Git4 Collaboration

Sireal·2022년 6월 10일
0

Git

목록 보기
5/5

드디어..드디어!! 대망의 협업

branch와 conflict 를 알고 있어야 볼 수 있음..!


git으로 혼자 작업하기

ssh 를 활용해서 GitHub와 연동할 것임.
첫 연동이니까 여기를 참고해서 ssh를 연동해보자.


  • ssh public 키가 생성됐다.
  • 자 여기서 id_rsa 는 비공개키, id_rsa.pub은 공개키이다.
  • id_rsa.pub 키를 깃헙에 추가한다.

  • SSH 키가 만들어졌다!!!!

자 이제 강의를 따라해보자.

  • Git에 public 레포지토리를 만들어서
    우리가 만든 개발환경과 연동해보자.
  • 버전 만들구

  • github에 public repository만들구
  • 아래의 QuickSetup 복사해서 cmd에 넣고 돌리면됨.

  • GitHub 생에 첫 연동 성공 😍
  • 지금까지 로컬저장소에 있던 것을 origin 이라는 원격 저장소올리고 연동됨
  • git push -u origin main
    • 현재 master branch와 원격저장소인 origin의 master branch와 연동하는 것임.
    • 이때 사용하는 것이 옵션이 -u 이고, push를 하면 연동됨.
      (이 설정은 최초 연동시 사용됨)

git으로 같이 작업하기

이렇게 Github에 올라온 내 원격저장소가 public이던 private이던
누군가와 함께 협업이 가능함.

내가 초대를 하면서 협업승인하고, 그사람도 승인해야
그 때 협업이 가능함.

원격저장소의 Settings 로 들어간 후
Collaborators 클릭

그리고 add people을 해서
그사람의 github 이멜을 입력하고 초대를 함.

초대장을 받은사람이 승인을 하면, 그때부터 협력관계가됨

  • 권한
    • admin : 어드민 ㅇㅇ
    • write : 개발자
    • read : 읽기만 가능

협업자의 상황에서 상황을 진행해보자.

  • SSH주소 Copy
  • 협업자의 폴더에서 git clone SSH주소 하면 그 폴더에 원격저장소가 연동됨...!!

  • 짜잔~

CLI 협업

push, pull 에 대해 알아보쟝

시나리오

  • 내가 work 2a 버전을 먼저 업함(push)

  • 협업자는 work 2b 버전을 업하려고 함(push)

  • 이러면 rejected 와 함께 git 에서 거절함.

    • 같은 파일을 pull도 없이 동시에 작업했기 때문에, git은 거절할 수 밖에 ㅇㅇ.
    • git pull 하고, 오류 잡고, push를 다시하세용.
    • pull 하고 한번 봐보자
    • 둘이 merge 되구 Conflict 나버린 친구가 pull 됨.
    • 충돌현상을 어케 고칠까
      • git mergetool : 병합 도구를사용
      • 아니면 손수 직접 고쳐도 됨.
    • 충돌난걸 고치고 add 하자(충돌 고쳤다고 말해주는거임)
    • commit 하면 됨. 끝
    • 아주 깔끔하구욤 ㅎㅎ
    • 이걸 push해주면 됨.
    • 꼭 원격저장소로 작업할땐 git pull 을 하고 사용해야함.
      • 어우 깔끔행 ㅎㅎ
  • 교훈

    • git pull 로 다른사람의 업데이트를 빠르게 확인한다.
    • 최대한 작업을 빠르게 하려면 작업을 빠르게 끝마치고
      push를 자주 해야함.
    • 이렇게 서로 commit을 자주하고, push를 자주하고, pull을 자주하게 되는 습관을 가지게 되고, 서로 커뮤니케이션을 촉진하게 만드는 것이 git이다.

원격 Branch와 FETCH

git pull = git + fetch + git merge FETCH_HEAD

  • 줄친곳 왼쪽은 현재 로컬저장소의 브랜치를 뜻하고
  • 오른쪽은 원격저장소의 브랜치를 뜻함.

로컬에서 버전업을 했을때 보자

  • 로컬브랜치가 원격브랜치보다 앞에 있기 때문에, push를 해줘야함.
  • 그러면 이렇게 브랜치가 맞춰진다.

그렇다면 협력자는 pull을하고 코드수정을 해야하는데
pull 이 아니라 fetch 로 해보자.

  • 어? 왜 코드 수정이 안일어낫지?
  • fetch 는 원격 브랜치만 가져와서 그냥 그대로 나두는거고, git merge FETCH_HEAD 를 해야 pull효과를 볼 수 있음.

fetch는 원격 브랜치만 가져오는 거임.
신중하게 원격 저장소랑 로컬 저장소와 병합을 할때 쓰이는 방법이 fetch임.

Git을 소개하며 사용할때..

Demo를 해서 보여주자

  • 버전업 할 때 좋은 점을 보여주자.
  • 소소하게 사용해보고, 여럿사람들이 사용하게끔 하자.
  • 익숙하게 알려주자.
  • 물건 팔듯이 쉽게 설명하자.
  • 간단하게 저장소를 알려주고,
    pull commit push 기능을 알려주자.
  • 간단하게 알려주자. 간단하게!!!!!!
  • 협업을 하는 이유는 협업이 쉽기 때문이 아님.
    가치가 있기 때문이다.

아 피곤해..

profile
달리다 넘어져도 아픔마저 즐기려하는 사람

0개의 댓글