[강의] 빠르게 git #2

jyleever·2025년 9월 21일

git

목록 보기
5/6
  1. 로컬과 원격의 상호작용
  2. 로컬과 원격의 상호작용 실습 (+충돌이 난 경우)
  3. 협업의 시나리오
  4. 협업하기(1) - 로컬은 변함없는데 원격이 변한 경우
  5. 협업하기(2) - 로컬도 변했는데 원격도 변한 경우

repository끼리의 상호작용 종류

  • 원격 저장소 조회(추가)하기 (git remote)
  • 원격 저장소에 밀어넣기 (git push)
  • 원격 저장소에 갖고 와서 합치기 (git pull)
  • 원격 저장소 일단 갖고만 오기 (git fetch)
  • 원격 저장소 복사하기 (git clone)

원격 저장소 조회(추가)하기

  • git remote (-v)
    내 로컬 리포지토리와 상호작용하고 있는/상호작용 할 수 있는 원격 저장소들의 목록 조회
    -v 옵션 : 단축 이름과 URL 같이 보기

  • git remote add <단축 이름> <url>
    <url> 에 있는 원격 저장소를 <단축이름> 이라는 이름으로 추가하기
    즉 현재 로컬 저장소, 기존 워킹 디렉토리에 새 원격 저장소를 추가하는 명령어

    원격 저장소 삭제하기

  • git remote rm <단축어이름>
    원격 저장소 삭제

  • git commit -a
    git이 추적 중인 파일 중 add 되어야 하는 파일이 있거나 delete된 파일이 있는 상태에서 알아서 add 된 후 commit

원격 저장소에 밀어넣기

  • git push -u origin main
    내 리포지토리의 main 브랜치를 origin의 main 브랜치로 push
    -u 옵션 : 디폴트 설정, 앞으로 추가적인 인자를 사용하지 않고 git push 라고만 해도 내가 상호작용하고 있는 원격 저장소에 자동으로 설정

원격 저장소 갖고 와서 합치기

  • git pull (origin main)
    origin을 내 리포지토리의 main 브랜치로 갖고 와라 (merge)

원격 저장소 일단 갖고만 오기

  • git fetch (origin main)
    동기화 시키지는 말고 (merge하지는 말고) origin을 내 리포지토리의 main 브랜치로 일단 갖고 옴. fetch 한다고 해서 로컬 브랜치의 내용도 변경되는 것이 아님.
  • git checkout <원격 저장소/브랜치> 또는 git checkout FETCH_HEAD
    git fetch 한 내용 확인할 수 있음. 머지는 안 해줌
    다시 로컬 리포지토리 브랜치로 checkout 하면 내용 돌아옴

원격 저장소 복사하기

  • git clone <url>
    <url>에 있는 원격 저장소 내용을 현재 디렉토리에 복사해오기
    굳이 remote add 할 필요 없음. 자동으로 origin 자동 생성함.
    즉 원격 저장소를 로컬로 복사하고, 기본 원격 연결을 자동으로 설정

협업 시나리오

  1. 내 로컬 저장소는 변했는데 원격 저장소는 변함 없는 경우
  2. 내 로컬 저장소는 변함 없는데 원격 저장소는 변한 경우
  • git pull로 동기화 후 변경사항 작성하여 git push
  1. 내 로컬 저장소도 변했는데 원격 저장소도 변한 경우
  • git rebase
  • pull request 보내기 -> 승인 후 merge
    내 로컬 저장소의 코드를 원격 저장소에 pull 해줘

충돌 시나리오

  • 동일한 파일에 대해 로컬의 변경 사항과 원격의 변경 사항이 충돌될 떄
    git push 하면 reject 가 뜨는데, git도 어떤 파일을 푸시해야 하는지 모름
    이런 상태를 conflict
    이때 파일 열어서 충돌 해결하고 push

로컬도 변했는데 원격도 변한 경우

pull request

  1. fork 하고자 하는 레포지토리 fork (다른 계정의 저장소)
  2. fork 해온 곳에서 clone 하기 (내 저장소)
  3. 코드 작성 후 commit
  4. git push origin <새로운 브랜치 이름> 으로 원격 저장소에 푸시
  5. 새로운 브랜치가 생김과 동시에 compare & pull request 버튼이 뜸
  6. compare & pull request 버튼을 누르면 내가 fork 한 리포지토리가 뜸
  7. (내가 주인인 레포라면) review changes -> merge pull request -> confirm merge
  8. branch는 삭제해주는 것이 좋음

branch 관련

로컬 브랜치 생성

git checkout -b [브랜치 이름]
  • git branch <브랜치 이름> -> git checkout <브랜치 이름> 과 동일함

로컬 브랜치 삭제

git branch -d 또는 -D [브랜치 이름]

원격 브랜치 확인

git branch -r

원격 브랜치 삭제

git push origin --delete [브랜치 이름]

0개의 댓글