Coding Planet

[ Git ] 깃허브, git bash 기초 - 처음부터 따라하기5 (로컬과 원격의 상호작용) 본문

etc

[ Git ] 깃허브, git bash 기초 - 처음부터 따라하기5 (로컬과 원격의 상호작용)

jhj.sharon 2023. 5. 22. 00:51
반응형

 

원격저장소는 말그대로 멀리 있는 그저 또 다른  repository이다.
협업은  repository끼리의 상호작용일 뿐이다!

 

👩‍💻Repository 간 상호작용의 종류

조회(추가) 하기 $ git remote(-v)
 밀어넣기 $ git push
가지고 와서 합치기 $ git pull
일단 갖고만 오기  $ git fetch
복사하기 $ git clone

 

 

 

1. 원격저장소 조회(추가)하기 : $ git remote(-v)

  • $ git remore add origin <url> :  <url>에 있는 원격저장소를  origin이라는 이름으로 추가하기
  • 나의 로컬 저장소와 연결할 원격저장소의 이름은  origin, 그 주소는  url
  • 즉, origin은 <단축이름>이다.

 

 

 

2. 원격저장소에 밀어넣기 : $ git push -u origin master

  • 내 repository의 master 브랜치를 origin의 master 브랜치로  push해라
  • -u : 디폴트 설정. 즉 앞으로 $ git push만 써도 $ git push -u origin master가 실행됨

 

 

3. 원격저장소 갖고와서 합치기 : $ git pull(origin master)

  • origin을 내 repository의 master 브랜치로 갖고와라(merge)
  • 덮어쓰기이기 때문에 현재 내 작업내용과 원격저장소 간의 충돌이 발생하면 원격저장소가 남고 내 작업 내용은 사라진다.

 

 

4. 원격저장소 일단 갖고만 오기: $ git fech(origin master)

  • 동기화시키지는 말고 (merge 하지 말고) origin을 내  repository의 master 브랜치로 일단 갖고와라

 

 

5. 원격저장소 복사하기: $ git clone <url>

  • <url>에 있는 원격 저장소 내용을 현재 디렉토리에 복사해오기
  • clone의 경우 원격저장소를 현재 디렉토리에 복사해올 경우 remote add가 필요 없다.  clone이 이루어질 경우 자동적으로 원격저장소의 origin이 저장된다.

 


🥰[실습하기]

 

** 세팅하기 : 원격저장소 2개, 로컬저장소 2개

 

remote2도 동일하게 만든다.

 

변경사항 만들고 로컬저장소에 커밋하기

 

 

 

1. 로컬 저장소와 원격저장소 연결하기 

  • $ git remote add 별<url> 
  • $ git remote -v : 현재 연결된 원격저장소 별명과  url함께 보기

 

 

** 원격 저장소 삭제하기
  • $ git remote rm 별명

 

 

 

2.원격저장소에 push하기

  • $ git push -u prac1 master : prac1이라는 별명을 가진 원격저장소에 로컬저장소의 master를 push해라. 
  • 이 때 -u는 디폴트를 의미한다.

 

디폴트 설정을 했기 때문에 작업 파일에 변동사항을 push할 때 자동으로&nbsp; prac1에 push된다.

 

3. 원격저장소 갖고와서 합치기 : $ git pull(origin master)

  • 로컬 저장소 remote2와 원격저장소  remote-practice2를 origin이라는 이름으로 연결한다.

 

  • $ git pull origin master : pull로 가져오기 master local storage로 가져오기
  • 없언던  test.txt가 들어온 걸 볼 수 있다 -> 동기화 성공!

 

다시 한 번 동기화 연습!

- 원격저장소 파일 변동




- push를 통해 내 로컬 저장소 덮어쓰기






 

 

 

4. 원격저장소 일단 갖고만 오기: $ git fech(origin master)

  • merge없이 일단 가져와서 확인만 하기
  • 아래와 같이 원격저장소에 변동 발생!

  • fetch를 할 경우 내 로컬 파일이 변하지는 않는다.

 

  • $ git checkout origin/master : origin의 master로 이동하는 명령어인데, c789937..로 이동한 것을 볼 수 있다
  • 해당 브랜치는 fetch 내용을 볼 수 있도록 하는 브랜치이다.

확인 가능

 

 

  • $ git checkout master로 다시 돌아오면 해당 변경 사항은 다시 없어진다.

 

 

** FETCH 내용을 볼 수 있는 브랜치는 origin/master 외에도 FETCH_HEAD 가 있다.

 

 

 

 

 

 

5. 원격저장소 복사하기: $ git clone <url>

  • 로컬에 clone이라는 새 폴더 만들어줬다.
  • $ git clone<url>을 통해 복사해오고자하는 원격저장소의 url 주소를 가져와서 clone한다.
  • 위에서 설명한 것처럼 remote add 없이도 원격저장소와 연결된 것을 볼 수 있다.

 

반응형
Comments