본문 바로가기
IT/컴퓨터

[Git] 생활코딩 Visual Studio Code에서 Git으로 협업하기 내용정리

by dwoi 2023. 3. 17.

목차

     


    Visual Studio Code에서 Git으로 협업하기

    Visual Studio Code에서 Git으로 협업하기 - 1. github.com - YouTube

     

    본 글은 유튜브 무료 강의 생활코딩의 키워드만 정리하는 글


    1. github.com

    git client(git cli, source tree, vscode git)

    ↓ (push) ↑ (pull)

    git server(github.com)

     

    branch : 여러 개발자들이 동시에 다양한 작업을 할 수 있게 만들어 주는 기능

    ex. master, origin, head

     

    2. clone

    복제 : 원격저장소의 주소 복사 →  clone repository

    git에서 push/pull을 통해 여러 장소에서 작업 가능. 

     

    3. 협업

     

    github.com

    settings - collaborators에서 다른 사람을 현재 저장소로 추가할 수 있음.


     

    두 명이 서로 다른 버전을 push할 때  한 명은 push가 안되고 거부될 수 있음.

    Why?

    먼저 push한 사람이 그 버전의 master가 된다.

     

    즉 뒷 사람이 push를 하게 되서 master가 되면

    먼저 한 사람의 버전이 날라갈 수 있기 때문에 거부된거라 이 경우 pull하고 올리는 방법도 있다.

    ※ 단 pull = fetch + merge (땡겨와서 병합한다.)

     

    fetch : 원격 저장소에서 읽어와서 다른 가지를 만들 수 있음.

    이후 merge를 통해 다시 같은 가지로 합칠 수 있고 서로 다른 가지로 작업하다가 합칠 수 있고

    다양한 방식으로 협업 가능.

    이런식으로 부모가 둘인 버전이 나타남.

    이렇게 해야 push가 정상적으로 잘 작동함.

    이제 다른 사람이 pull해서 작업하고 push하고 fatch하고 merge하는 방식.


     

    4. 충돌

    다른 사람들이 서로 같은 파일을 수정했을 때 나타나는 과정을 살펴보자.

    1. 서로 같은 걸 수정했을 때 비슷하게 pull하고 push하는 방식으로 하면 정상 작동됨.

     

    2. 같은 파일을 수정하는데 서로 다른 줄을 수정하고 pull을 하면 자동으로 내 파일도 수정이 되는 것을 확인할 수 있음.

    auto-merging

    3. 서로 다른 사람이 같은 파일은 수정하는데 서로 다르게 수정했을 때 어떻게 충돌할까? (conflict)

    자동으로 병합하면 안되는 걸 병합을 안시켜주는 기능.

     


    마무리

    git이 정말 유용한 프로그램인 걸 인지를 했고

    지난편 git 버전 관리에서 보았던

    git의 원리인 아래 표를 계속 보면서 익히면 수월하게 적응할수 있을 것이라고 생각됨.

    working directory Stage Area   Repository (.git)       Pointer   .gitconfig
    name content   name content   message files(tree) parent commit id   HEAD
    current version
       
        name content      
    work1.txt 1   work1.txt 1   work 1 work1.txt 1   fe0dee8   master   [user]
    work2.txt 2   work2.txt 2   work 2 work1.txt 1 fe0dee8 0f4ba54       email = name@example.com
    work3.txt 2   work3.txt 2   work2.txt 2   master
    last commit
    name = name
                work3.txt 2   0f4ba54    

    댓글