인프런 - 제대로 파는 Git & Github - by 얄코
지난 시간까지는 설정 및 Repository(저장소)를 만들어 놓았다. 아직은 프로젝트를 연동하지 않았기에 화면이 아래와 같이 나온다.
⭐️ 이번 연동에서는 HTTPS 프로토콜
사용
위에 사진을 보면 두 가지 옵션이 있다.
지금의 경우는 로컬에 이미 깃으로 관리되고 있는 프로젝트를 연동할 것이기에 두 번째 옵션을 선택해야 한다. (복사) 아니면 그냥 CLI에 직접 작성해주어도 된다.
해당 내용 복사해줘도 됨.
🎈 git remote add origin (원격 저장소 주소)
origin
사용. 다른 것으로 수정 가능🎈 git branch -M main
🎈 git push -u origin main
(원격 저장소에 main 브랜치로 커밋 내역 업로드)
- 로컬 저장소의 커밋 내역들을 원격으로 push(업로드)
-u
또는 --set-upstream
: 현재 브랜치와 명시된 원격 브랜치 기본 연결🧶 즉! 이번에
git push -u origin main
명령어를 썼다면 디폴트로 원격 저장소가 main(브랜치)로 연결을 시키는 것임. 때문에 이후에git push
만 입력하면 무조건 main에서의 push는 origin의 main브랜치로 가게 된다 !
🎈 git remote
🎈 git remote -v
🧨 git remote remove 원격 저장소 이름
🎈 먼저 해당 프로젝트를 다운 받기를 원하는 폴더로 이동해서 해당 주소에서 Git Bash로 들어가. 그 후에 HTTPS 주소를 복사해서
🎈 git clone (해당 원격 저장소 주소)
명령어 입력 !
이런 식으로 cloning을 하게 되면 리포지토리의 모든 것, 즉 파일들 뿐만 아니라 깃의 관리 내역들까지 내 컴퓨터(로컬)로 복사를 해준다. → git log
로 확인해보면 전부 확인 가능해짐 !!
이제 직접 해보자.
로컬에서 변경사항을 저장 후 커밋을 하면
소스트리에서는 해당 사진과 같이 나온다. 즉 원격 저장소의 main 브랜치는 한단계 전에 뒤쳐져있다. 이제 로컬의 변화를 원격으로 보내서 업데이트를 해주자. 이걸 push 한다고 한다 !
🎈 git push
git push -u origin main
으로 대상 원격 브랜치가 지정되었기 때문에 git push
만 써도 가능하다 !!🎃 이제 원격저장소에서 새로고침을 통해 확인을 해보면 로컬에서 실행했던 변경사항이 원격에도 적용된 것을 확인할 수 있다.
이제 원격 저장소의 커밋, 즉 GitHub에는 있고 로컬에는 없는 변경사항을 당겨와보자.
(내 협업 동료가 push해서 올린 커밋 사항을 GitHub로부터 내 로컬로 다운받는다는 얘기)
🎈 git pull
해당 명령어를 통해 간단하게 최신 커밋 사항을 로컬로 받아올 수 있다.
(협업자가 먼저 push를 해둔 상태. 즉 내 로컬은 최신 상태가 아닌데 push를 하려고 한다면)
→ 오류가 떠! 이럴 경우에는 2가지 방식으로 해결이 가능.
(기본적으로는 pull 해서 로컬을 최신 상태로 만들어 주고 그 다음 push를 통해 해결하자)
🎈 push할 것이 있을 시 pull하는 두 가지 방법
1. git pull --no-rebase
: merge 방식
2. git pull --rebase
: rebase 방식
이후에 git push
를 통해 원격 저장소 역시 최신 상태로 업로드 해주면 된다 !
똑같이 git pull --no-rebase
나 git pull --rebase
둘 중 하나로 해결하면 됨.
🎈 merge의 방식을 쓰는 git pull --no-rebase
를 통해서 충돌을 해결하는게 나아 보인다.
아까 얘기했듯이 로컬의 내역들이 원격보다 뒤쳐져 있다면 push를 할 수가 없어 그런데 원격에 올라간 내용들이 뭔가 잘못되어 로컬에 있는 것들로 강제로 맞춰 주어야 할 때가 있다.
🎈 git push --force
를 통해 로컬의 내역 강제 push 하자.
from-local
브랜치 만들기 : git branch from-local
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 진행