본문 바로가기
목차
utils/git and github

[Git] Tutorial: remote repository

by ds31x 2024. 5. 26.
728x90
반응형

Remote Repository와 작업하기.

이 문서는 Remote Repository와 작업하기 위한 기본적인 내용을 다룬다.

Remote Repository는 github를 가정하며, 다음의 repository를 github에 처음 만들면 나오는 내용들을 살펴본다.

좀 더 자세한 것은 다음 URL들을 순서대로 읽어볼 것.

2024.05.26 - [utils/git and github] - [Git] Remote Repository

 

[Git] Remote Repository

Remote RepositoryRemote repository는 Git에서 원격 서버에 저장된 저장소를 의미함. 이는 Local repository(로컬 저장소)와 달리 네트워크를 통해 접근할 수 있으며, 협업할 수 있는 중앙 저장소 역할을 함.Remot

ds31x.tistory.com

Authentication

2024.05.26 - [utils/git and github] - [Git] remote, remote add, remote show: 원격저장소와 연결

 

[Git] remote, remote add, remote show: 원격저장소와 연결

git remote add origin : 원격저장소 연결Local repository와 remote repository를 연결.Remote repository의 단축이름(별칭)을 보통 origin으로 지정.이후, Remote repository url 대신 단축이름(별칭, alias) 으로 처리 가능함.

ds31x.tistory.com

2024.05.26 - [utils/git and github] - [Git] push

 

[Git] push

git pushLocal repository의 commit을 remote repository에 동기화.현재 상태에서 다른 사람이 push를 안 한 경우에만 가능.만일 다른 이가 push를 했다면, 해당 작업 내용을 local repository로 동기화(pull)하고, 현재

ds31x.tistory.com

2024.05.26 - [utils/git and github] - [Git] pull and fetch

 

[Git] pull and fetch

git pullRemote repository 의 최신 commit 을 가져와 Local repository의 해당 branch에 병합.최신 commits 을 받아와 임시 영역에 저장: (이 과정을 fetch라고 함).(remote resository 를 위한 임시 branch 에 저장하여 stage

ds31x.tistory.com


기본 명령어

 

1.원격 저장소 추가 (git remote add):

git remote add origin https://github.com/dsaint31x/intro_remote_git.git
  • public repository는 https 프로토콜이면 충분하나, private repository는 ssh를 사용하는 것이 나음.

2.원격 저장소의 정보 보기 (git remote -v):

  • 원격 저장소의 URL 정보를 확인함.
git remote -v

 

결과는 다음과 같은 형태로 나옴:

❯ git remote -v
origin  https://github.com/dsaint31x/intro_remote_git.git (fetch)
origin  https://github.com/dsaint31x/intro_remote_git.git (push)

 


3.원격 저장소에서 변경 사항 가져오기 (git fetch):

  • 원격 저장소의 변경 사항을 가져와 로컬 저장소를 업데이트함.
git fetch origin      # origin의 branch정보 및 commit 내역 가져옴(.git으로).
                      # working tree는 변경되지 않음.
git merge origin/main # fetch로 가져온 origin/main의 변경사항을 현 local branch에 통합.
                      # working tree등이 변경될 수 있음.

 

  • git fetch.git 디렉터리에 있는 로컬 저장소의 원격 브랜치 정보만 업데이트
  • 즉, 작업 디렉터리(working tree)에는 변경 사항을 반영하지 않음.
  • 원격 저장소의 변경 사항을 실제 작업 디렉터리에 반영하려면, 이후 merge를 통해 현재 로컬 브랜치에 fetch로 가져온 remote repository의 branch 를 local repository에 통합해야 함.

이 둘을 나누어쓰기보다는 일반적으로는 git pull 명령을 사용하여 fetchmerge를 한 번에 수행 처리함.


4.원격 저장소에서 변경 사항 가져와 병합하기 (git pull):

  • 원격 저장소의 변경 사항을 가져와 로컬 브랜치에 병합함.
git pull origin main

 


5.로컬 변경 사항을 원격 저장소에 푸시하기 (git push):

  • 로컬 저장소의 변경 사항을 원격 저장소에 푸시함.
git push origin main

6.원격 저장소의 브랜치 목록 보기 (git branch -r):

  • 원격 저장소에 있는 브랜치 목록을 확인함.
git branch -r

실습 예제

원격 저장소 추가 및 초기 설정

0. github에 원격저장소 만들기.

다음을 참고해서 계정을 만들 것:

https://docs.github.com/ko/get-started/start-your-journey/creating-an-account-on-github

 

GitHub에서 계정 생성하기 - GitHub Docs

개인 계정을 만들어 GitHub를 시작하세요.

docs.github.com

 

github.com에 계정으로 로그인하고 나서 다음의 동영상을 참고해서 remote repository를 만든다.

https://youtu.be/OCBhhZzgRzM

좀더 자세한 참고 자료:
https://docs.github.com/ko/repositories/creating-and-managing-repositories/creating-a-new-repository


1.원격 저장소 추가:

local repository에서 다음을 수행  (local repository는 있다고 가정).

git remote add origin https://github.com/user/repo.git

vscode에서도 쉽게 add가 가능함. 다음을 참고

https://youtu.be/kNozxbzHsKY

 


2.remote repository에 변경 사항 만들기: README.md추가

다음 동영상은 원격 저장소에서 직접 파일을 하나 만들어서 가져올 변경 사항을 생성하고 있음(github.com에서 직접 처리함)

https://youtu.be/q_aHNbJU368


 

3.변경 사항 가져오기: pull

git pull origin main
# # 다음과 같음
# git fetch origin
# git merge origin/main
  • pull 은 fetch와 mergh가 결합된 것임.

다음은 vscode에서 pull로 변경사항을 가져오는 과정을 보여줌.

https://youtu.be/mvsHpCuNv4w

  • vscode에서 pull을 수행하여 앞서 remote repository에서 만든 README.md가 local repository에 생성되는 것을 확인.

4.변경 사항 remote repository에 반영: push

git push -u origin main
  • -u 옵션은 main 브랜치를 추적하도록 설정함.
  • 해당 옵션은 최초로 한번만 해주면 됨. 이후로는 git push 만 써도 됨.

다음은 vscode에서 새로운 파일을 추가하고, 이를 local repository에 add, commit 한 이후, 해당 내용을 remote repository에 반영(push)시키는 과정을 보여줌.

  • 주의할 점은 remote repository에 변경을 하려면 해당 권한을 가진 github 계정인지를 인증해야함.
  • 개인적으로는 ssh를 선호하나, 아래 동영상에선 vscode의 https기반의 github 인증을 사용하고 있음 (공용 PC등에선 vscode에서 프로필을 반드시 로그아웃처리하는 등의 주의가 필요함)

https://youtu.be/2lG1glXC35Y

 

 


협업 시나리오

1.동료가 원격 저장소에 변경 사항을 푸시:

  • 동료가 코드를 수정하고 원격 저장소에 푸시함.
  • 원격저장소와 연결될 다른 장비의 저장소 또는 같은 장비의 다른 저장소에서 특정 변경 수행 후 다음을 수행.
  • git hub에서 직접 수정해도 된다.
git push origin main

2.변경 사항 가져와서 로컬에서 병합:

  • 1번이 수행된 저장소와 다른 곳에서 다음을 수행.
git pull origin main

이 명령어는 git fetchgit merge를 결합하여 원격 저장소의 변경 사항을 로컬 브랜치에 병합함.

 


같이 읽어보면 좋은 자료들

2024.05.20 - [utils/git and github] - [Git] Git Summary (작성중)

 

[Git] Git Summary (작성중)

git이란2024.05.20 - [utils/git and github] - Git : 소개 git 설치 후 해줘야 하는 작업들[Git] git 설치 후 우선 해줘야 하는 작업들 (tistory.com)local repository 초기화2024.05.20 - [utils/git and github] - [Git] init : local repo

ds31x.tistory.com

 


 

728x90

'utils > git and github' 카테고리의 다른 글

[Git] pager 옵션 조정-상세  (0) 2024.05.27
[Git] clone: 원격저장소 복제  (0) 2024.05.27
[Git] Remote Repository  (0) 2024.05.26
[Git] remote, remote add, remote show: 원격저장소와 연결  (0) 2024.05.26
[Git] pull and fetch  (0) 2024.05.26