[Git]VSC로 Git 협업하기

Dmori_2562·2022년 10월 11일
0

Git

목록 보기
2/2

본 포스트는
이고잉님의 생활코딩(https://opentutorials.org/)의
Visual Studio Code에서 git으로 협업하기 (https://opentutorials.org/course/4987) 수업을 바탕으로 공부한 내용의 정리입니다.


1. github.com

백업의 필요성

지금까지 자신의 컴퓨터에서 작업을 수행하고 파일을 저장해왔다.
그런데, 이 파일들이 유실될 수 있으므로 네트워크 상의 다른 공간에 저장할 필요가 있다.

  • Local Repository: 자신의 컴퓨터
  • Remote Repository: 원격 저장소

  • push: Local --> Remote
  • pull: Remote --> Local

협업

하나의 원격 저장소를 두고, 여러 개의 컴퓨터가 같이 작업한다면 이는 협업과 같다.

백업을 하기위해 알아야 할 개념


일반인들의 백업 관리 시스템은 다음과 같다.

하지만 개발자들은 위의 시스템과는 조금 다르다!

  • git client: 작업을 하는 사람

    Ex) git cli, source tree, vscode git

  • git server: 작업을 받는 서버

    Ex) github.com, gitlab.com, bitbucket.com

본 포스트에서는 git server로 github.com을 이용한다!

실전 따라하기

1. 원격 저장소 만들기


github.com에 들어가 계정을 만든 뒤, 위의 사진에서 Repository name을 적고 Public or Private를 선택한 후 create repository를 누른다!

이를 통해 우리는 Remote Repository, 즉 원격 저장소를 만든 것이다!


2. 지역 저장소와 원격 저장소 연결하기

지역 저장소와 원격 저장소를 연결하기 위해서는 원격 저장소의 주소를 알아야한다!

1) 화면에서 HTTPS를 누르면 나오는 링크를 복사한다.

2) 소스제어 > 설정 > 원격 > 원격추가를 누른다.

3) 원격 저장소의 주소를 입력하고, 원격 저장소의 별명을 기입한다.

이렇게 우리는 지역 저장소와 원격 저장소를 연결했다!

3. 지역 저장소의 자료를 push하기

work1.txt의 내용을 1로 수정한 뒤, v1이라는 commit message와 함께 commit한다.
그 후, commit한 내용을 push한다.

결과


위의 그림처럼 원격 저장소에 파일이 업로드 되는 걸 확인할 수 있다!


이 때, HEAD -> master는 우리 저장소의 master이고
origin/master는 원격 저장소의 master이다.
master는 버전 중 최신 버전을 가리킨다.

work1.txt의 내용을 2로 수정한 뒤, v2이라는 commit message와 함께 commit한다.

결과

아직 push하지 않았기에 master와 origin/master가 다른 버전을 가리킨다!


2. 복제(clone)


원격 저장소의 파일들을 clone을 통해 로컬 저장소로 복사해올 수 있다.

누군가가 push하여 원격 저장소의 내용이 수정될 경우,

소스 제어의 pull을 통해 내려받을 수 있다.


3. 협업하기

동료를 원격저장소에 추가하기

협업을 시작하기 위해서는 동료를 원격저장소에 추가해주어야 한다.

위의 그림과 같이 원격 저장소의 settings > collaborators > Add people 을 통해 추가해줄 수 있다.

pull, push

협업 시, 누군가가 먼저 push했을경우, pull을 한 뒤에 push해야 한다.

pull = fetch + merge

  • fetch: 가지 치기
  • merge: 가지들을 합치기

누군가의 버전을 L1, 나의 버전을 R1이라고 하자.
fetch를 할 경우, 각각의 버전들이 가지가 된다.
merge를 할 경우, merge commit을 통해 두 버전을 모두 통합한 새로운 버전이 생긴다.
이 경우 L1과 R1 모두를 부모 버전으로 가진다.


4. 충돌(conflict)

충돌: 같은 파일을 수정할 경우 생기는 일

  • 같은 위치에서 같은 내용으로 수정할 경우: pull하고 push할 경우 merge commit이 일어난다.
  • 다른 위치에서 수정할 경우: pull할 시 내용이 병합된다 --> auto merging
  • 같은 위치에서 다른 내용으로 수정할 경우: 충돌(conflict)이 발생한다.

충돌은 Git에서 auto merging이 일어나서는 안되는 내용을 우리에게 알려주는 것이다!
알면 기술, 모르면 사고다

profile
어제보다 더 나은 오늘의 나를 위해 달려나가는 중입니다!

0개의 댓글