Git - 원격 저장소 사용하기

Chooooo·2023년 1월 22일
0

Git

목록 보기
9/15
post-thumbnail

인프런 - 제대로 파는 Git & Github - by 얄코


지난 시간까지는 설정 및 Repository(저장소)를 만들어 놓았다. 아직은 프로젝트를 연동하지 않았기에 화면이 아래와 같이 나온다.

프로젝트 연동하기

로컬에 원격 저장소 추가 후 push

⭐️ 이번 연동에서는 HTTPS 프로토콜 사용

위에 사진을 보면 두 가지 옵션이 있다.
지금의 경우는 로컬에 이미 깃으로 관리되고 있는 프로젝트를 연동할 것이기에 두 번째 옵션을 선택해야 한다. (복사) 아니면 그냥 CLI에 직접 작성해주어도 된다.

해당 내용 복사해줘도 됨.

명령어 확인

🎈 git remote add origin (원격 저장소 주소)

  • 로컬의 Git 저장소에 원격 저장소로의 연결 추가 (origin은 원격 저장소의 이름 !)
    • 원격 저장소 이름에 흔히 origin 사용. 다른 것으로 수정 가능

🎈 git branch -M main

  • GitHub 권장 - 기본 브랜치명을 main으로 지정하는 명령어

🎈 git push -u origin main (원격 저장소에 main 브랜치로 커밋 내역 업로드)
- 로컬 저장소의 커밋 내역들을 원격으로 push(업로드)

  • 깃에서 push내 컴퓨터에 있는 커밋 내역들 중에 아직 원격 저장소에 없는 것들(최신 것들)을 원격 저장소에 업로드 해주는 명렁어
  • -u 또는 --set-upstream : 현재 브랜치와 명시된 원격 브랜치 기본 연결

🧶 즉! 이번에 git push -u origin main 명령어를 썼다면 디폴트로 원격 저장소가 main(브랜치)로 연결을 시키는 것임. 때문에 이후에 git push만 입력하면 무조건 main에서의 push는 origin의 main브랜치로 가게 된다 !


🎈 git remote

  • 원격 목록을 볼 수 있다.

🎈 git remote -v

  • 자세히 보여줌. 즉 원격 저장소 주소를 보여준다.

🧨 git remote remove 원격 저장소 이름

  • 원격 지우기 (로컬 프로젝트와의 연결만 없애는 것. GitHub의 레포지토리는 지워지지 않음)

프로젝트 다운 받아서 내 로컬로 가져오기

🎈 먼저 해당 프로젝트를 다운 받기를 원하는 폴더로 이동해서 해당 주소에서 Git Bash로 들어가. 그 후에 HTTPS 주소를 복사해서

🎈 git clone (해당 원격 저장소 주소) 명령어 입력 !

이런 식으로 cloning을 하게 되면 리포지토리의 모든 것, 즉 파일들 뿐만 아니라 깃의 관리 내역들까지 내 컴퓨터(로컬)로 복사를 해준다. → git log로 확인해보면 전부 확인 가능해짐 !!

push

이제 직접 해보자.

로컬에서 변경사항을 저장 후 커밋을 하면

소스트리에서는 해당 사진과 같이 나온다. 즉 원격 저장소의 main 브랜치는 한단계 전에 뒤쳐져있다. 이제 로컬의 변화를 원격으로 보내서 업데이트를 해주자. 이걸 push 한다고 한다 !

🎈 git push

  • 이미 git push -u origin main으로 대상 원격 브랜치가 지정되었기 때문에 git push만 써도 가능하다 !!

🎃 이제 원격저장소에서 새로고침을 통해 확인을 해보면 로컬에서 실행했던 변경사항이 원격에도 적용된 것을 확인할 수 있다.


pull

이제 원격 저장소의 커밋, 즉 GitHub에는 있고 로컬에는 없는 변경사항을 당겨와보자.
(내 협업 동료가 push해서 올린 커밋 사항을 GitHub로부터 내 로컬로 다운받는다는 얘기)

🎈 git pull 해당 명령어를 통해 간단하게 최신 커밋 사항을 로컬로 받아올 수 있다.

pull 할 것이 있을 때 push를 한다면?

(협업자가 먼저 push를 해둔 상태. 즉 내 로컬은 최신 상태가 아닌데 push를 하려고 한다면)
→ 오류가 떠! 이럴 경우에는 2가지 방식으로 해결이 가능.
(기본적으로는 pull 해서 로컬을 최신 상태로 만들어 주고 그 다음 push를 통해 해결하자)

🎈 push할 것이 있을 시 pull하는 두 가지 방법
1. git pull --no-rebase : merge 방식
2. git pull --rebase : rebase 방식

  • pull 상의 rebase는 다르다. 협업시 사용 가능
    • 로컬에 있는 커밋을 띄어서 원격 저장소의 가지에 최신 커밋으로 붙여줌 !

이후에 git push를 통해 원격 저장소 역시 최신 상태로 업로드 해주면 된다 !

협업상 충돌 발생 해결하기

똑같이 git pull --no-rebasegit pull --rebase 둘 중 하나로 해결하면 됨.

🎈 merge의 방식을 쓰는 git pull --no-rebase를 통해서 충돌을 해결하는게 나아 보인다.

로컬의 내역을 강제 푸시하기

아까 얘기했듯이 로컬의 내역들이 원격보다 뒤쳐져 있다면 push를 할 수가 없어 그런데 원격에 올라간 내용들이 뭔가 잘못되어 로컬에 있는 것들로 강제로 맞춰 주어야 할 때가 있다.

  • 이렇게 하면 원격의 로컬과 다른 커밋들은 사라지게 된다. (그래서 이 방식은 협업 때 미리 합의하지 않았다면 쓰면 안돼 !)

🎈 git push --force를 통해 로컬의 내역 강제 push 하자.

원격의 브랜치 다루기

로컬에서 브랜치 만들어 원격에 push해보기

  1. from-local 브랜치 만들기 : git branch from-local

  2. git push를 통해 원격에 push

  • 이렇게 명령어를 치면 대상을 명시하라는 메세지가 나타날 것이다.

🎈 git push -u origin from-local 명령어를 통해 처음으로 원격에 push하는 브랜치는 대상 원격 브랜치를 기본설정 해줘야해 ! (로컬에서 새로 만든 브랜치이기에 아직 원격에 등록하지 않아서 -u를 통해 등록해줘)

원격에서 새로고침 해보면 원격 저장소에 새로운 브랜치가 생성된 것을 확인할 수 있게 된다 !!!

🎈 git branch --all : 로컬과 원격의 브랜치들을 모두 확인 가능

  • git branch -a 명령어를 사용해도 동일.

원격의 브랜치 로컬에 받아오기

협업자가 만든 브랜치를 받아오기 전에 내 로컬에서 git branch -a를 통해 확인하면 없는 것을 확인할 수 있다. (아직 원격저장소의 정보 업데이트 안됨.)

🎈 git fetch : 원격의 변경 사항 업데이트.

  • 이제 원격의 브랜치를 로컬로 가져와보자 → 로컬에 같은 이름의 브랜치를 생성하고 연결하면 돼!

🎈 git switch -t origin/from-remote : switch를 통해 브랜치 변경, -t를 통해 원격의 from-remote를 현재 로컬의 브랜치로 복사하고 그리고 계속 로컬의 from-remote는 원격 from-remote 브랜치와 연결하겠다는 뜻이다.

원격의 브랜치 삭제

🎈 git push 원격 저장소 이름 --delete 원격의 브랜치명

  • 굳이 안쓸듯.

소스트리로 할 때는 변경사항 커밋할 때 하단에 체크표시로 커밋과 동시에 푸시 진행
또한 pull 역시 소스트리로 페치 및 pull 진행

profile
back-end, 지속 성장 가능한 개발자를 향하여

0개의 댓글