[Git] 인프런 - 지옥에서 온 Git - 원격저장소

June·2021년 6월 2일
0

[Git] 

목록 보기
5/12

원격 저장소 소개

원격 저장소 생성

처음 원격 저장소에 연결할 떄는 --bare 옵션을 줘야한다.

git push origin master
현재 브랜치를 푸시할때 origin의 master 브랜치로 푸시한다는 뜻이다.

github 소개

fork를 누르면 마음대로 소스코드를 수정할 수 있다.

원격 저장소 만들기 (Github)

깃을 이용하면 여러가지 원격 저장소에 연결할 수도 있다. 여기서는 주소가 같지만, 작업을하고 origin에 보낼 수도 있고, friend로 보낼 수도 있는 것이다.

git push -u origin master
현재 작업한 것을 origin의 master 브랜치로 올린다는 것이다.
-u 옵션은 처음에 한번 줘야 한다. 그 다음부터는 git push만 해줘도 된다.

동기화 방법 (Github)

왼쪽은 집, 오른쪽은 회사라고 생각하자

git commit --amend
원격 저장소에 올리기 전에 이걸 쓰면 commit 메세지 수정 가능하다

협업을 하면 git pull을 하면 연결되어있는 브랜치 (보통 master)에서 떙겨온다.

ssh를 이용해서 로그인없이 원격저장소 사용하기 (Github)

깃 클론을 할때는 https를 이용할 수도 있고, ssh를 이용할 수도 있다. https를 사용하면, 아이디와 패스워드만 입력하면 별 설정없이 푸시할 수 있다.

ssh는 secure shell이다. ssh는 자동 로그인 편의 방법을 제공하기도 한다.

ssh-keygen을 하면 ssh 암호키가 생긴다.
해당 폴더로 가보면

비밀 키와 공개키가 만들어져 있다.

private키는 client에 저장되고, public key는 원격저장소에 저장된다.
이 키를 이용해서 자동 로그인을 해준다.

ssh키를 받아서 공개키를 깃헙에서 settings에 가서 저장할 수 있다.

push & pull

만약을 pull을 하지 않고 push를 하면 에러가 난다.
push를 하기전에 로컬 저장소와 원격 저장소의 상태가 다르면, 원격저장소를 가져와서 병합하고, 충돌을 해결하고 원격저장소에 올려야 한다.

이후 git pull을 하고 commit을 하면 병합 커밋이 생성된다.

원격 저장소의 원리

원격 저장소 연결을 하면
.git/config에 원격저장소 정보가 생긴다.

지역 저장소의 master와 원격 저장소의 master를 헷갈리면 안된다.

커밋하고 푸시를 안하면 두 master 사이에 차이가 생긴다. push를 하면 일치시킬 수 있다.

pull VS fetch의 원리

git pull을 하면 지역 master와 원격 master가 같은 커밋을 가리키고 있다.

git fetch를 하면 지역 저장소 master와 원격 master가 차이가 난다 (지역 저장소가 뒤터진다). 즉 원격 저장소의 내용을 가져오기만하고 병합을 하지 않는다.

0개의 댓글