1. Remote Repository (원격 저장소)

  • Remote 저장소는 Local 저장소와 연결되어 있어서 Local 저장소의 변경 사항을 공유 Push하고 동기화 Pull (또는 Fetch)하는 데 사용된다.

  • 내가 Local 저장소에서 작업한 내용을 공유하는거를 Push

  • 다른 사용자들이 공유한 내용을 내가 작업하는 Local 저장소로 가져와 업데이트하는거를 Pull

1.1 Remote 저장소 추가

git remote add <remote_repo_name> <remote_repo_url>
git remote add origin <remote_repo_url>

로컬 저장소와 동기화할 Remote 저장소를 등록하려면 git remote add 명령어를 사용하여 추가하면 된다. 이를 통해 로컬 저장소는 원격 저장소와 연결되어 변경 사항을 주고받을 수 있다.

로컬 저장소에 등록된 Remote 저장소는 다른 저장소와의 연결을 관리할 때 사용된다. 일반적으로 하나의 원격 저장소를 사용하지만, 필요에 따라 여러 개의 원격 저장소를 등록할 수도 있다. 이를 위해 원격 저장소에 고유한 이름을 지정하여 관리할 수 있다. 그러나 일반적으로 가장 중요한 원격 저장소에는 origin이라는 이름을 사용하는 것이 일반적이다.

참고로 git clone 명령을 사용하여 저장소를 복제할 때는 자동으로 원격 저장소를 등록하며, 이 때 원격 저장소는 기본적으로 origin이라는 이름으로 등록된다.

1.2 Remote 저장소 주소 수정

등록된 원격 저장소의 주소가 잘못되었거나, 인증 정보 (token)을 포함하지 않아서 인증 문제가 발생하는 경우 원격 저장소의 주소를 수정할 수 있다. git remote set-url 명령어를 사용하여 이를 수행할 수 있다. 이 명령어는 원격 저장소의 이름과 새로운 URL을 지정한다.

git remote set-url <remote_repo_name> <remote_repo_new_url>
git remote set_url origin <remote_repo_new_url>

1.3 Remote 저장소 이름 수정

등록된 원격 저장소의 이름을 수정하려면 git remote rename 명령어를 사용하여 원격 저장소의 이전 이름을 새로운 이름으로 수정할 수 있다.

git remote rename <old_name> <new_name>

1.4 Remote 저장소 삭제

git remote remove <remote_repo_name>
git remote remove origin

1.5 Remote 저장소 정보 확인

원격 저장소에 등록된 이름과 URL 정보를 확인하려면 git remote -v 명령어를 사용한다. 이 명령어는 현재 설정된 원격 저장소의 이름과 URL을 보여준다.

git remote -v

주의해야 할 점은 원격 저장소에 인증 정보를 포함한 token을 등록하면 해당 정보가 노출될 수 있어 누구나 열람이 가능하다. 따라서 보안에 주의하여야 한다. 특히 개인 컴퓨터가 아닌 곳에서 작업할 때에는 토큰을 사용하는 것이 적절하지 않을 수 있다.

1.6 Remote 저장소 상세보기

원격 저장소에 대한 자세한 정보를 확인하려면 git remote show 명령어를 사용한다. 이 명령어를 사용하여 특정 원격 저장소에 대한 자세한 정보를 확인할 수 있다.

git remote show <remote_repo_name>
git remote show origin

이 정보에는 해당 원격 저장소의 URL, 추적되는 branch, 로컬에서 이 원격 저장소로 push와 pull할 때 기본 설정되는 branch 등이 포함된다.

이를 통해 현재 프로젝트에서 사용 중인 원격 저장소의 설정과 속성을 확인할 수 있다.

1.7 Pull

원격 저장소의 변경 사항을 로컬 저장소로 가져오는 작업을 Pull이라고 한다. 이는 사실상 원격 저장소의 변경 내용을 로컬로 가져오는 과정인데, 이는 실제로 FetchMerge 과정을 수행한다.

git pull <remote_repo_name> <branch_name>
git pull origin main

만약 현재 작업 중인 local branch가 main이라면, git pull 명령만으로도 기본적으로 origin/main branch와 local main branch를 동기화한다. 여기서 origin/main은 원격 저장소의 main branch를 의미한다. origin main이 생략이 되었지만 git pull origin main과 같은 동작을 하게 된다.

만약 로컬에서 다른 branch (dev)에서 작업 중이라면, 해당 branch의 변경 사항을 가져오기 위해서는 해당 branch를 명시적으로 지정해주어야 한다. 예를 들어, 현재 작업 중인 branch가 dev이고 이 branch를 원격 저장소의 dev branch와 동기화하려면 다음과 같이 명령한다.

git pull origin dev

이렇게 하면 원격 저장소에서 변경된 스냅샷을 로컬로 가져와서 해당 branch로 병합(Merge)한다. 이렇게 병합된 코드가 새로운 버전이 되는 것이다. 따라서 Pull은 실제로는 Fetch와 Merge 과정을 합친 것으로 볼 수 있다.

  • git fetch를 실행하여 원격 저장소에서 변경된 스냅샷을 로컬로 가져온다. 이 과정에서 변경 사항을 다운로드만 받고, local branch에는 아무런 변경이 없다. 이 단계에서는 local branch에 변경 사항을 병합하지 않는다. 다만 원격 저장소의 최신 내용을 로컬에 업데이트한다.

  • git merge를 사용하여 local branch와 remote branch를 병합한다. 이렇게 함으로써 원격 저장소의 변경 사항이 local branch에 반영된다.

위와 같은 과정을 거쳐서 원격 저장소의 변경 사항을 로컬로 통합하면, 로컬 저장소의 코드가 최신 상태가 된다.

1.8 Push

git push 명령어는 반대로 로컬 저장소에서 작업한 내용을 원격 저장소로 업로드하여 다른 개발자들과 공유하는 작업이다.

git push <remote_repo_name> <branch_name>
git push origin_main
  • 로컬 저장소에서 새로운 코드를 추가하거나 수정한 후 이를 다른 개발자나 팀원들과 공유하고자 할 때 git push 명령어를 사용한다.

2. Local 저장소 생성

2.1 Local 저장소 생성

1) Terminal 실행
2) Query 입력

local_project % cd ..
git_ws % mkdir local_project
git_ws % cd local_project
local_project % git init

local_project % git status


2.2 비어있는 Remote 저장소 생성

로컬 저장소를 미리 만들어놓고 나중에 원격 저장소와 연동할 때, 원격 저장소는 비어있는 상태여야 한다.

1) GitHub 로그인
2) Repository name 입력
3) Private 선택
4) Create a new Repository 버튼 클릭

5) Add a README file미선택
6) Add .gitignore 미선택

README file.gitignore을 미선택하면 위의 이미지와 같이 비어있는 remote repository 페이지가 생성된다.

2.3 Remote 저장소 주소 및 Token 복사

1) 새로 생성한 Remote 저장소의 HTTPS 복사

https://github.com/yeji4175/local_project.git

2) 복사해둔 Token 준비

만약 token을 분실했을 시 새로 발급하면된다.

2.4 Local 저장소에 Remote 저장소 추가

local_project % git remote add yeji4175 <URL>
local_project % git remote -v

git remove -v 명령을 통해 원격 저장소 정보를 확인해보면 기본값으로 fetchpush할 때의 주소가 자동으로 등록되며 함께 표시된다.

또한, 원격 저장소 이름은 username 보다는 origin을 사용하는 것이 일반적이다. 이는 주로 사용하는 원격 저장소를 지정할 때 일관성을 유지하고 관리하기 쉽도록 하는데 도움이 된다. 만약 사용자가 여러 개의 원격 저장소를 다루는 경우에도 특정 작업에 origin이라는 이름을 사용하면 혼란을 줄일 수 있다.

2.5 저장소 이름 origin으로 변경

local_project % git remote rename yeji4175 origin
local_project % git remote -v

2.6 빠진 Token 추가

원격 저장소에 대한 URL이나 인증 정보(token)를 수정해야 할 때는 git remote set-url 명령어를 사용해야 한다.

git remote add는 원격 저장소를 새로 추가할 때 사용되며, 이미 등록된 원격 저장소에 대해 다시 추가할 수 없다. 따라서 URL 수정이 필요한 경우에는 git remote set-url을 사용하여 원격 저장소의 URL을 변경해야 한다.

local_project % git remote set-url origin <token@https://github.com/yeji4175/local_project.git>
local_project % git remove -v

2.7 Local 저장소 작업 내용을 Remote 저장소에 Push

로컬 저장소와 원격 저장소가 비어있는 경우에는 push 또는 pull할 변경 사항이 없으므로 먼저 로컬 저장소에 push할 변경 사항을 생성해야 한다.

local_project % touch readme.md
local_project % git add readme.md
local_proejct % git commit -m "add readme file"

local_project % git status

local_project % git push origin main

git push origin main을 입력 후 GitHub를 새로고침하면 read.me가 업데이트가 되어있는걸 확인할 수 있다.

2.8 Remote 저장소에서 확인

GitHub에서 Remote Repository에 push된 변경사항을 확인할 수 있다. 이를 통해 local에 작업한 commit이 원격 저장소에도 올바르게 적용되었는지 확인하는 작업을 해본다.

로컬에서 변경 사항을 commit하고 이를 원격 저장소로 push하면 main branch가 생성되고 readme.md 파일이 생성된걸 확인할 수 있다. 그리고 새로운 commit이 원격 저장소의 히스토리에 1개 기록된걸 확인할 수 있다.

1) 1 Commits 클릭

2) add readme file 클릭
해당 버튼을 클릭하면 더 상세한 정보를 볼수 있다.

3. Remote 저장소 생성

3.1 Remote 저장소 생성

1) GitHub 로그인
2) New 버튼 클릭
3) Repository name 입력
4) Private 선택
5) Add a README file 선택
6) Add .gitignore 미선택
7) Create repository 버튼 클릭
8) Remote repository 주소 및 token 준비

https://github.com/yeji4175/remote_project.git

3.2 Local 저장소에 Clone

1) Terminal 실행
2) Query 입력

local_project % cd ..
git_ws % git clone https://github.com/yeji4175/remote_project.git

git clone을 수행할 때 주소만 넣으면 알아서 복제해주는 줄 알았는데 username과 password를 물어봐서 GitHub의 username과 password인 줄 알았는데 password는 GitHub의 token을 얘기하는거였다.

이러한 상황이 나타날 때 username은 GitHub의 username을 작성하고 password는 token을 작성하면 잘 복제가 된다.

git_ws % cd remote_project
remote_project % git status

3.3 Remote 저장소 정보 확인

remote_project % git remote show origin

3.4 GitHub에서 README.md 수정

1) README.md 파일 옆 연필 버튼 클릭
2) Edit의 하단에 query 입력

remote 정보 확인

# remote_project
git remote show origin

3) Preview 버튼 누르면 미리보기

4) Commit changes.. 버튼 클릭

README.md 파일을 수정해서 commit을 해서 버전 올려줬다는 의미이다.

3.5 GitHub에서 수정 내용 Commit

1) Commit changes 팝업창에서 Commit message 입력
2) Commit changes 버튼 클릭하여 commit 완료

3.6 GitHub에서 변경이력 확인

< > Code 클릭 시 Commit history를 볼 수 있는 페이지에서 해당 저장소의 버전이 하나 증가된 것을 확인할 수 있다.

3.7 Local 저장소에서 Pull

Local과 remote 저장소의 버전 상태가 달라졌다. Local 저장소를 remote 저장소의 최신 버전으로 업데이트할거다.

remote_project % git pull origin main

README.md 변경 사항을 반영해준걸 확인할 수 있다.

3.8 GitHub의 수정 이력 반영 확인

remote_project % git log --oneline

git log를 통해 Update README.md가 추가 되어있는걸 확인할 수 있다.
local 레파지토리에서 readme를 확인해보면 아까 수정한 내용이 반영이 되어있는 걸 확인할 수 있다.

1) + 버튼 클릭하여 Create new file 클릭
2) remote_project의 파일 이름을 test.txt로 입력
3) 파일 내용을 This is pull test. 입력
4) Commit changes.. 버튼 클릭

5) Commit message 입력
6) Commit changes 버튼 클릭

7) GitHub 페이지 새로고침

8) History 버튼 클릭

Local과 remote의 버전이 달라진걸 확인할 수 있다.

이 상태에서 remote꺼를 local에 반영해보겠다.

remote_project % git pull origin main

remote_project % git log --oneline

Pull을 하여 Create test.txt가 추가된걸 확인할 수 있다.

profile
거북선통통통통

0개의 댓글