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
2026.01.14 - [utils/git and github] - PAT를 통한 authentication for GitHub
PAT를 통한 authentication for GitHub
PAT란Personal Access Token의 약어로,기존의 GitHub 계정 password 대신에 사용되는 긴 문자열 Token임.HTTPS 프로토콜로 git push / pull 할 때,password 자리에 PAT를 넣으면 인증이 됨.현재 보안 문제로 password 를 통
ds31x.tistory.com
2023.12.27 - [utils/git and github] - [github] ssh 키 등록하기.
[github] ssh 키 등록하기.
Github 계정에 사용할 ssh 키 만들기2023.12.27 - [utils/git and github] - [ssh-keygen] ssh 관련 private key와 public key 생성하기. [ssh-keygen] ssh 관련 private key와 public key 생성하기.ssh (secure shell)ssh는 secure shell의 약자
ds31x.tistory.com
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):
- 원격 저장소를 로컬 저장소에 추가(add)함.
- 원격저장소 주소(https://github.com/dsaint31x/intro_remote_git.git)는 각 경우에 맞게 수정할 것.
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 명령을 사용하여 fetch와 merge를 한 번에 수행 처리함.
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://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가 가능함. 다음을 참고
2.remote repository에 변경 사항 만들기: README.md추가
다음 동영상은 원격 저장소에서 직접 파일을 하나 만들어서 가져올 변경 사항을 생성하고 있음(github.com에서 직접 처리함)
3.변경 사항 가져오기: pull
git pull origin main
# # 다음과 같음
# git fetch origin
# git merge origin/main
- pull 은 fetch와 mergh가 결합된 것임.
다음은 vscode에서 pull로 변경사항을 가져오는 과정을 보여줌.
- 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에서 프로필을 반드시 로그아웃처리하는 등의 주의가 필요함)
협업 시나리오
1.동료가 원격 저장소에 변경 사항을 푸시:
- 동료가 코드를 수정하고 원격 저장소에 푸시함.
- 원격저장소와 연결될 다른 장비의 저장소 또는 같은 장비의 다른 저장소에서 특정 변경 수행 후 다음을 수행.
- git hub에서 직접 수정해도 된다.
git push origin main
2.변경 사항 가져와서 로컬에서 병합:
- 1번이 수행된 저장소와 다른 곳에서 다음을 수행.
git pull origin main
이 명령어는 git fetch와 git 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
'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 |
