Remote Control

로컬(local)의 저장소(repository)를 원격(remote)저장소에 연결하고, 로컬 저장소에 변경된 내용을 원격 저장소에 반영(push)하는 방법에 대해서 설명을 하겠습니다.

원격(Remote)?

  로컬에서 혼자 커밋하면서 사용하면, 내 피시에만 나의 커밋(commit) 기록이 남습니다. 원격저장소에 로컬에 있는 프로젝트를 반영하기 위해 push를 합니다. push를 함으로써 원격저장소와 로컬저장소에 저장되어 있는 코드 및 기록이 일치(sync)가 됩니다. 이제 함께 프로젝트하는 사람들은 나의 프로젝트를 pulling(가져가기)하면, 프로젝트를 함께하는 모두에게 나의 로컬에 있는 프로젝트를 복사해서 자신의 프로젝트로 옮길 필요가 없습니다.

Create a remote repository

  • github.com를 접속해서 로그인을 합니다. 로그인을 하신후에 오른쪽 위에 + 버튼을 눌러서 새로운 저장소(Repository)를 생성합니다
  • 로컬에 있는 저장소와 이름을 동일하게 하고, 짧은 설명을 작성합니다.
  • 공개 범위는 public과 private이 있는데, public으로 하겠습니다. (나의 코드를 나만 볼것(private)이냐, 모두가 함께 공유할 것(public)이냐에 대한 설정)
  • README를 작성
  • gitignore, license는 'none'을 선택하시면 됩니다.(기본값)
  • 저장소를 생성합니다.

Readmes, .gitignores and licenses

  README, .gitignores, licenses파일은 open source projects에는 있어야 하는 파일입니다. 뭐 꼭 있어야 하는건 아닌데... contributor가 어떻게 해야하는지 가이드는 줘야하니까... 어지간하면 작성을 합니다. README는 프로젝트가 어떤 프로젝트인지, 어떻게 사용하는지, 어떻게 contribution을 하는지에 대해서 설명합니다. gitignore는 git이 nottrack을 해야하는 file의 리스트입니다. (패스워드가 있는 파일을 공유한다면...) license 파일은 나의 프로젝트에서 사용하는 라이센스 타입 리스트를 작성하는 파일입니다.
[참고] http://choosealicense.com/

생성한 저장소에 로컬을 연결하기

Github에 원격저장소를 만들었으면, 저장소의 주소를 로컬저장소에 http 또는 ssh를 통해 등록을 합니다.( 최초 생성한 프로젝트의 경로로 가서,

$ git remote add origin http://a/b/repo.git

을 하시면 로컬에 있는 repository라 remote가 어디인지 이제 알게 됩니다. 여기서 origin은 github's의 서버에 있는 이름이 됩니다.


Work를 Remote로 Push 하기

push를 통해 local에 있는 repository를 server로 전송이 가능합니다.

$ git push origin master

여기서 origin은 이전 단계에서 remote add origin으로 추가한 origin을 나타내고, master는 branch이름이고, 기본적으로 생성되는 branch 입니다.

Tips

Add remote connections
$ git remote add 

Set a URL to a remote
$ git remote set-url 

Pull in changes
$ git pull 

View remote connections
$ git remote -v Push changes $ git push

[참고] http://jlord.us/git-it/challenges/remote_control.html

+ Recent posts