본문 바로가기
DevOps/Git

[Git] 원격저장소

by sihyeong 2022. 10. 23.

기존의 로컬 작업 환경을 GitHub repo에 올리는 방법

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

  • 로컬의 Git 저장소에 원격 저장소로의 연결 추가

2. git branch -M main

  • GitHub 권장 - 기본 브랜치명을 main으로 변경

3. git push -u origin main

  • 로컬 저장소의 커밋 내역들 원격으로 push(업로드)
  • -u 또는 --set-upstream: 현재 브랜치와 명시된 원격 브랜치 기본 연결하는 설정
  • 위의 설정 후 git push만 수행해도 main의 push는 자동으로 origin으로 push된다.

기타

git remote : 연결된 원격 브랜치의 이름 확인 가능
git remote -v : 원격의 자세한 내용 확인 가능

 

 

GitHub repo 내용을 내려받는 경우

1. git clone (원격저장소 주소)

  • 현재 디렉토리로 원격저장소의 내용들 복사해서 가져온다.

 

 

git push

  • add, commit으로 끝나는게 아니라 원격 저장소에 까지 내용을 반영해야 하기 때문에
  • git push를 이용해 원격 저장소에 저장함

git pull

  • 원격 저장소의 내용을 내 pc 로컬로 가져온다.
  • 충돌되는 내용이 없다면 정상 작동할 것이다.

 

git push pull 숙지사항

  • 원격 저장소의 변경내역이 있어 pull 해야하는 상황 + 로컬작업으로 push 해야하는 상황일 때
  • pull로 원격 저장소의 내용을 먼저 적용하고 push를 해줘야 한다.

 

pull + push  방법

  • pull + push 방법에는 2가지 방법이 있다.
    1. merge를 이용한 방법
    2. rebase를 이용한 방법

 

merge를 이용한 방법

git pull
git pull --no-rebase
  • 위의 작업으로 merge 방식으로 pull 한 다음에 ((로컬 변경 내역) + (pull 내역)) merge를 push로 올리면 된다.
충돌나면 충돌부분 수정하고
add, commit 수행하면 된다.

rebase를 이용한 방법

git pull --rebase
  • 위의 작업으로 원격내용 뒤에 로컬내용을 rebase 해서 push하면 (pull 내역) - (로컬 내역) 으로 올라간다.
충돌나면 수정하고
add,
git rebase --continue 하면 된다.

 

git pull --rebasegit rebase xxx와는 다르게 협업 시 사용해도 혼동을 초래하지 않는다.

원격의 내용을 먼저 붙이고 그 다음 push할 나의 작업 내용이 붙기 때문에

원격의 내용이 HEAD가 된다.

 

강제 push

  • 원격 내용을 pull로 받고 push해야 정상 작동
  • 하지만, 원격 내용에 문제가 생겼을 경우, 로컬에서의 변경사항으로 강제로 맞춰줘야 할 때 사용
  • 강제 push하면 pull할 내용 삭제하고 로컬의 내용 push 해버림
git push --force
  • pull 할 내용을 삭제해 버리기 때문에 협의가 된 상황에서 해야한다.
  • 아니면 다른사람 작업물 날라가서 큰일난다.

'DevOps > Git' 카테고리의 다른 글

[Git] stash  (0) 2022.10.24
[Git] 원격저장소 브랜치  (0) 2022.10.24
[Git] merge /rebase 충돌(conflict)  (0) 2022.10.23
[Git] branch / merge / rebase  (0) 2022.10.23
[Git] revert / reset  (0) 2022.10.23