Git Hi_3 (9/8)

권숙현·2023년 9월 8일

Javascript's Adventure

목록 보기
7/10

4장 Git 원격 저장소

로컬 저장소를 원격 저장소와 연결
원격 저장소에서 작업 내용 받아오기
원격 저장소에 작업 내용을 반영하기

1. 원격 저장소 받아오기

[원격 저장소?]

인터넷이나 네트워크 어딘가에 있는 장소
github를 비롯하여 gitlab등의 호스팅 서비스

[Git 원격 저장소 받아오기]

  • Git clone : 기존의 git repository를 복사

[원격 저장소 추가]


clone의 http 주소를 복사하여
git clone 뒤에 원격저장소 주소를 넣어줌 >> 내 컴퓨터에 git clone으로 생성된 원격저장소에 사본이 생성됨

[원격 저장소 살펴보기]

1) 연결된원격 저장소 확인
2) 원격 저장소 한 눈에 확인 가능 (git clone > 원격저장소와 연결)
3) 원격 저장소 단축 이름을 origin에서 git_test으로 변경
4) 주소가 변경되었거나, 필요 없어진 저장소는 rm 명령어로 삭제할 수 있음

$ git remote origin

$ git remote show orgin

$ git remote rename origin git_test

$ git remote rm git_test

[tip]
git clone 명령어를 실행하면 현재 폴더 내에 새로운 폴더를 하나 더 생상합니다.
예를 들면 현재 위치해 있는 폴더가 myproject라고 한다면 git clone으로 생성된 폴더는 myproject/"new stoarge" 로 생성됩니다.
따라서 myproject폴더는 저장소가 아닌 상태

만약 myproject폴더를 저장소로 쓰고 싶다면 git clone명령의 마지막에 .을 찍어주면 된다.

2. 원격 저장소 동기화

[저장소 갱신]

  • pull : 원격 저장소에서 데이터 가져오기 + 병합(Merge)까지 해주는 명령어
  • Fetch : 원격 저장소에서 데이터만 가져오는 것

[저장소 갱신 - Pull]

원격 저장소에서 데이터를 가져와 로컬 데이터와 병합

$ git pull
$ git log --all    #log를 찍어보면 확실히 merge 된 것을 확인할 수 있음
commit f7b775d (HEAD->master, origin/master)
#local 저장소의 master와 원격저장소의 origin/master 동시

[저장소 갱신 - Fetch]

git log 명령어로 변경된 파일을 확인하고 Merge해주기

$ git fetch
$ git log
$ git merge origin/master

[저장소 발행]

로컬 저장소에서 작업한 내용을 원격 저장소에 반영.
다른 사람이 먼저 Push한 상태에서는 Push할 수 없고, 다른 사람이 작업한 것을 Merge부터 해야함.

$ git push origin master

[요약]
1. git remote add origin(또는 다른 원격저장소 이름)으로 로컬저장소와 연결한다.
2. git fetch또는 git pull을 이용하여 원격저장소의 내용을 동기화 한다.
3. git fetch를 실행한 경우 git merge origin/master로 병합을 완료해야 함
4. git push origin master를 이용하여 변경된 사항을 원격 저장소에 전달한다

3. Origin이란?

[origin/master]

내 컴퓨터에 저장되어 있는 저장소와 원격저장소를 연결하기 위해서 아래와 같은 명령을 사용.
git remote add origin https://github.com/group/project_name
이는 원격저장소의 단축이름을 origin으로 지정한다는 의미

이때 origin이 아닌 다른 이름으로도 원격 저장소의 이름을 지정할 수 있음
git remote add myproject https://github.com/group/project_name
기본적으로 origin이 default값


-v 옵션을 사용하면 지정한 저장소의 이름과 주소를 함께 볼 수 있음
git remote -v

$ git remote -v
origin https://gitlab.com/group/project (fetch)
origin https://gitlab.com/group/project (push)

[문제!]
Pine이라는 원격 저장소를 만들고, Pine이라는 원격 저장소에 로컬저장소의 내용을 push해서 동기화하기

git remote add Pine /google/project_file/git_remote_repo
git push Pine master

[문제!]
원격저장소의 내용이 변경되었을 때 push하는 방법 (merge를 먼저하고 push를 해야함)
① git pull을 해서 충돌 발생 내용 확인
② modified.py파일 수정
③ app.py의 내용을 modified.py로 수정
④ push를 완료하기 위한 commit
⑤ 문제 해결 후 push

$ git pull origin master          #충돌 발생 구역 확인
$ \cp -f modified.py app.py       #modified.py를 app.py로 복사하는 명령어
$ git add app.py                    #저장소에 app.py올리기 
$ git commit -m "add app.py"        #commit 하기
$ git push origin master            #push하기
profile
sukki의 velog*^^*

0개의 댓글