1 minute read

★Git hub는 원격저장소를 제공해주는 대표적인 서버이다.

★깃허브에서 로컬로 프로젝트 복제하는 방법

git clone [깃허브url] [폴더이름]

url의 프로젝트를 해당이름의 폴더로 복제한다. 이제 해당 프로젝트는 마치 내 프로젝트인것처럼 복제된 것이다.

★원격저장소에서 지역저장소로 가져오는 방법은 git pull과 git fetch 2가지 방법이 있음

★git pull, git fetch : 로컬-원격저장소 연결상태에서 원격저장소의 내용을 당겨올 수 있다.

★만약 서로 다른 두대의 컴퓨터에서 번갈아가며 작업을 해야 하는 경우 git pull을 하여 프로젝트를 동기화 시킨 후 작업을 하고, 작업이 끝나면 git push하여 저장하고, 다른컴퓨터에서 다시 git pull후 작업을 진행할 수 있다.

★만약 서로 다른 두 사람(A와 B)이 동시에 같은 branch로 작업을 하다가 A가 작업을 하는 사이 B가 새로운 commit을 push했고, 이후 A가 새로운 commit을 한 다음에 pull을 했다면, 서로 다른 두 commit이 충돌하는 상황이 발생한다. 이 경우 git은 자동으로 두 commit을 merge하는 작업을 하고, 충돌이 일어나면 일반적인 merge를 할 때 처럼 충돌을 해결하지 않는 한 pull되지 않는다. 충돌을 해결한 후 변경내용을 commit하고 pull, push하면 정상적으로 작동한다.

★pull과 fetch의 차이 git pull을 하면 master와 origin/master가 똑같은 내용을 가리키게 된다. 반면 git fetch를 하면 master가 가리키는 내용은 변하지 않고, origin/master만 최신의 commit으로 바뀌게 된다. 즉 master의 commit을 바꾸지 않고 다운로드만 받는다. 원격저장소의 내용과 지역저장소의 내용을 비교해 볼 수 있게 된다. 문제가 없다는것을 확인하면 git merge origin/master를 통해 master에 origin/master를 병합해 줘야 master의 commit을 최신화 시킬 수 있다.

★url이 아닌 SSH로 원격-로컬 연결하기

★SSH로 로그인 없이 원격 저장소에 접근할 수 있다. 그러기 위해서 우선은 원격컴퓨터에 접근하기 위한 키가 필요하다.

★먼저 ssh-keygen커맨드를 입력하면 키 파일이 홈디렉토리/.ssh안에 생성된다. id_rsa파일(비밀키)과 id_rsa.pub파일(공개키) 두개가 생긴다. SSH통신을 할 때는 내 컴퓨터에 비밀키를 저장하고, 공개키는 카피해서 우리가 접속하려는 컴퓨터의 어떤 디렉토리에다가 넣어주면 된다. 그럼 비밀키를 가진 내 컴퓨터가 공개키를 가진 원격컴퓨터에 안전하게 접속할 수 있게 된다.

★cat id_rsa.pub 명령으로 내용을 읽은 후 카피해서, 깃허브 계정에 setting에 들어가서 SSH키 추가하기에 들어간 후 key에 붙혀넣기 한다. 이제 원격저장소에 공개키를 저장한 것이다. 이제 개인키를 가지고있는 모든 사람은 저 공개키를 가진 원격저장소에 접속할 수 있게 되었다.

★이렇게 해 두면 git push를 했을 때 로그인이 필요없게 된다.

Categories:

Updated: