본문 바로가기
Everyday Study

2024.07.25 (목) { 원격저장소 연결, 트래킹브랜치, git push, git pull }

by xogns93 2024. 7. 25.

로컬 저장소에 원격 저장소 추가:

cd path/to/your/local/repo
git remote add origin https://github.com/your_username/your_repository.git

 

원격 저장소 확인:

git remote -v

 

로컬 브랜치를 원격 저장소에 푸시:

git push -u origin main

 

원격 저장소에서 변경 사항 가져오기:

git pull origin main

 


트래킹 브랜치(tracking branch) == upstream 브랜치

 

트래킹 브랜치(tracking branch)는 로컬 브랜치가 원격 브랜치를 추적하도록 설정된 브랜치를 의미합니다. 이를 통해 로컬 브랜치와 원격 브랜치 간의 동기화 작업이 더 간편해집니다. 트래킹 브랜치를 설정하면 git pull  git push 명령어를 사용할 때 브랜치를 명시할 필요가 없어집니다.

 

왜 트래킹 브랜치를 사용하는가?

  1. 간편한 동기화: 트래킹 브랜치를 사용하면 git pull과 git push 명령어를 사용할 때 브랜치를 명시할 필요 없이 간편하게 동기화할 수 있습니다.
  2. 작업 흐름 단순화: 트래킹 브랜치를 설정해두면, 협업 시에 작업 흐름이 단순화됩니다. 각 로컬 브랜치가 어느 원격 브랜치를 추적하고 있는지 명확해지므로 혼란을 줄일 수 있습니다.
  3. 자동 병합: git pull 명령어를 사용하여 원격 브랜치의 변경 사항을 로컬 브랜치에 자동으로 병합할 수 있습니다.

 

트래킹 브랜치가 설정되지 않은 경우의 git push

트래킹 브랜치가 설정되어 있지 않다면, git push 명령어를 사용할 때 원격 저장소와 브랜치를 명시적으로 지정해야 합니다.

git push origin 로컬브랜치명:원격브랜치명

예를 들어, 로컬 브랜치 feature-branch를 원격 저장소 origin feature-branch에 푸시하려면 다음과 같이 입력합니다:

git push origin feature-branch:feature-branch

 

 

트래킹 브랜치가 설정되지 않은 경우의 git pull

트래킹 브랜치가 설정되어 있지 않다면, git pull 명령어를 사용할 때 원격 저장소와 브랜치를 명시적으로 지정해야 합니다.

git pull origin 원격브랜치명

예를 들어, 원격 저장소 origin feature-branch에서 변경 사항을 가져와 로컬 브랜치 feature-branch에 병합하려면 다음과 같이 입력합니다:

git pull origin feature-branch

트래킹 브랜치로 설정하는 방법

 

Git에서 로컬 브랜치를 원격 브랜치와 연결하여 추적 브랜치(tracking branch)로 설정하는 방법은 여러 가지가 있습니다.

 

1. git push --set-upstream 사용

새로운 로컬 브랜치를 원격 브랜치에 처음 푸시하면서 추적 브랜치로 설정하는 방법입니다.

# 새로운 브랜치 생성 및 체크아웃
git checkout -b feature-branch

# 원격 브랜치에 푸시하고 추적 브랜치로 설정
git push --set-upstream origin feature-branch

 

2. git branch --set-upstream-to 사용

이미 존재하는 로컬 브랜치와 원격 브랜치 간의 추적 관계를 설정하는 방법입니다.

# 로컬 브랜치 체크아웃
git checkout feature-branch

# 추적 브랜치 설정
git branch --set-upstream-to=origin/feature-branch

또는 간단히:

git branch --set-upstream-to origin/feature-branch

 

3. git checkout -b [branch] --track [remote/branch] 사용

새로운 브랜치를 생성하면서 추적 브랜치를 설정하는 방법입니다.

git checkout -b feature-branch --track origin/feature-branch

 

4. git clone 시점에서 설정

리포지토리를 처음 클론할 때 기본 브랜치를 추적 브랜치로 설정할 수 있습니다. 기본적으로 git clone을 사용하면, main 브랜치가 추적 브랜치로 설정됩니다.

git clone https://github.com/username/repository.git
cd repository

이 방법으로 클론된 저장소의 기본 브랜치는 자동으로 추적 브랜치로 설정됩니다.

 

 

 

하나의 로컬 브랜치는 하나의 원격 브랜치를 추적(tracking)할 수 있습니다. 이는 로컬 브랜치가 여러 원격 브랜치를 추적할 수 없음을 의미합니다. 각 로컬 브랜치는 단일 원격 브랜치와의 연결만 설정할 수 있습니다.


git pull 은 2개의 연속된 작업임(pull로만 떙길때 안될떄가잇는데 그럼 fetch)

git pull == git pull origin main

git fetch origin main

git merge origin main 

git push는 아님

 

 

git fetch origin (패치 == 정보만 가져오는거)

git log origin/main (위에서 가져온 정보 확인)

 

정보확인해서 갖고올게 있으면 git pull