[git/github] 협업

c_10.log·2023년 3월 4일
0

github

목록 보기
7/8
post-thumbnail

협업의 3가지 시나리오

  1. 내 로컬 저장소는 변화 O, 원격 저장소는 변화 X
    : 내가 변경했으므로 push하면 원격 저장소의 파일을 변경함.
  2. 내 로컬 저장소는 변화 X, 원격 저장소는 변화 O
    : 원격 저장소의 변화를 pull 해와서 내 로컬 저장소와 동기화 시킨 뒤 코드를 수정함.
  3. 내 로컬 저장소는 변화 O, 원격 저장소는 변화 O
    : 가장 까다로운 상황
    : pull request를 통해 원격저장소에게 "내 로컬의 파일 좀 pull 해줘~"라고 요청을 보냄

실습

기본적인 협업(push, pull)

  1. working directory, 업로드할 txt 파일, 원격저장소 repository 생성, git init → add → commit

  2. 내 로컬 저장소는 변화 O, 원격 저장소는 변화 X
    (1) origin이라는 이름으로 원격저장소 url 연결

     git remote add origin https://github.com/sungsiyul/collaboration.git


(2) 연결된 원격저장소에 push

git push -u origin master

  1. 내 로컬 저장소는 변화 X, 원격 저장소는 변화 O
    누군가 내 원격저장소에서 변화를 주었다고 할 때,

    이를 동기화 해줘야 함.
git pull
//위에서 -u origin master을 했기 때문에 뒤는 생략

github 사이트에서 collaborator 지정

github의 repository → Collaborators → User email나 User name을 입력하여 collaborator 추가 → git, commit, push를 할 수 있음
but, 충돌이 잦은 프로젝트에서는 권하지 않음.
서로 아는 사람들끼리 하거나, 충돌이 잦지 않은 프로젝트에서는 가능함.

*로컬과 원격저장소가 모두 변화하였을 때,
로컬에서 push를 하거나, 원격저장소의 파일을 pull해올 때,
github는 어떤 변화를 적용시킬지 "모르는 상황"
→ 충돌(CONFLICT)

pull request

(1) 협업 대상 repository로 가서 fork 하기(내 repository로 가져오는 방법)
(2) fork 해온 곳에서 clone 하기
(3) branch를 만들고, working directory에서 코드를 원하는대로 수정
(4) git add → commit
(5) git push origin new_branch
(6) github 홈페이지로 가면 newbranch가 생기고 Compare & pull request가 생겼을 것임
(7) 들어가면 어떤 부분이 수정되었는지, 어디로 어떻게 가는지가 나와있고, "Create pull request"를 클릭하면 됨
(8) 해당 원격저장소의 repository 주인은 pull request로 가면 요청을 보고 승인할지 말지를 정함
(9) 승인이 되면 branch는 정리해주는 것이 좋으므로 "git branch -d newbranch"로 삭제해줌

0개의 댓글