사용자 도구

사이트 도구


research:usegit

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
research:usegit [2014/01/26 12:24] – [Git 더듬더듬 시작해보기] changwooresearch:usegit [2017/06/07 05:19] (현재) – 다른 개인키로 푸쉬하기 추가. changwoo
줄 9: 줄 9:
  
 ===== 사례: 구글 코드에서 LifeMotif-Desktop의 코드 유지하기 ===== ===== 사례: 구글 코드에서 LifeMotif-Desktop의 코드 유지하기 =====
 +cs.ChwNam@gmail.com의 계정으로 http://code.google.com/p/lifemotif-desktop/ 에 저장소를 하나 마련하였다. 프로젝트가 4096MB를 제공하므로, 코드 보관을 위해서는 넉넉한 용량으로 생각한다. 
 +
 +원격 저장소가 잘 마련되었으므로, 이 저장소를 잘 활용할 수 있도록 준비를 하자. 우선 아무나 소스를 헤집어 놓을 수 없도록 소스는 누구나 받을 수 있되, 허가받은 사람만이 이 곳에 소스를 올릴 수가 있다. 내가 이 곳을 만들었으니 당연히 나는 모든 권한을 가지고 있다.
 +
 +==== 권한 설정 ====
 +일단 권한은 패스워드를 입력하는 것으로 인증되는데, 이 패스워드는 내 계정의 패스워드가 아니다. https://code.google.com/hosting/settings 에서 별도의 패스워드를 지정한다.
 +
 +홈 디렉토리에 ''.netrc'' 파일을 생성하고 다음 코드를 입력한다.
 +  machine code.google.com login cs.ChwNam@gmail.com password [패스워드]
 +이렇게 하면 구글 코드에서 패스워드는 자동으로 입력뇐다.
 +
 +==== 저장소 시작하기 ====
 +[[http://rogerdudler.github.io/git-guide/index.ko.html|git - 간편 안내서 - 어렵지 않아요!]] <del>안 어렵긴 개뿔!</del> 페이지를 보고 더듬더듬 시작하였다.
 +
 +새로운 저장소를 마련하려면
 +  git init
 +명령어를 사용하지만, 우리는 원격 서버의 저장소를 사용한다. 그러므로,
 +  git clone user@host:/remote/server/path
 +를 이용하게 된다. 그러나 구글의 경우는 서버의 주소가 조금 다르다.
 +  git clone https://cs.ChwNam@code.google.com/p/lifemotif-desktop/
 +위 주소에는 내 이메일이 포함되어 있다. 배부받은 패스워드를 입력하든지 아니면,
 +  git clone https://code.google.com/p/lifemotif-desktop/
 +위 명령어를 사용하되, 홈 디렉토리에 .netrc 파일을 만들어 (~/.netrc)
 +  machine code.google.com login cs.ChwNam@gmail.com password [generated googlecode.com password] 
 +이 줄을 추가한다. 이렇게 로컬 저장소를 시작한다.
 +
 +==== 파일/디렉토리 추가하기 ====
 +몇몇 소스 파일들을 추가하게 되었다.
 +  git add [files...]
 +이 때 빈 디렉토리는 추가되지 않는다. 이것은 git이 [[https://git.wiki.kernel.org/index.php/GitFaq#Can_I_add_empty_directories.3F|FAQ]] 를 참고하면 원래 그러도록 되어 있기 때문이라고. [[http://stackoverflow.com/a/5305908|README]]와 같은 더미 파일을 추가함으로써 디렉토리를 추가하는 방법도 있다. FAQ는 ''.gitignore''라는 파일을 만들어서 추가하는 방법도 있다고 하지만, 정말 텅 빈 디렉토리를 무작정 들이미는 것 보다는 README 파일을 넣어 왜 이런 빈 디렉토리를 추가했는지에 대해 인지시켜 주는 후자의 방법이 좋다고 생각한다.
 +
 +그리고 이 변경점을 커밋하려면 
 +  git commit -m "이번 커밋에 대한 메모"
 +  
 +==== 발행 (push) 하기 ====
 +구글 코드에 코드를 보관하려면,
 + git push origin master
 +
 +===== 원격 저장소에서 새로운 프로젝트 만들기 =====
 +MiniServer는 git의 remote repository 역할도 한다. 새로운 프로젝트를 만든다고 한다. 모든 소스의 저장소 루트가 ''/opt/git''이라고 하면 (이 디렉토리 아래 여러 원격 리포지토리가 존재한다.)
 +<code bash>
 +cd /opt/git
 +mkdir myproject.git     # git 디렉토리는 관례상 .git로 끝난다.
 +cd myproject.git
 +git init --bare
 +</code>
 +이걸로 끝. 원격 유저는 ''/opt/git/myproject.git''쪽에 적절한 권한만 있으면 된다.
 +
 +===== 서브모듈 추가 =====
 +<code>git submodule add <url> [name]</code>
 +e.g. <code>git submodule add git://github.com/chneukirchen/rack.git rack</code>
 +
 +
 +
 +===== 다른 개인키로 푸쉬하기 =====
 +<code>GIT_SSH_COMMAND='ssh -i ~/.ssh/<개인키> -F /dev/null' git push</code>
 +
  
  
줄 15: 줄 72:
   * [[http://qt-project.org/doc/qtcreator-2.8/creator-version-control.html|QT Cretor Version Control]]   * [[http://qt-project.org/doc/qtcreator-2.8/creator-version-control.html|QT Cretor Version Control]]
   * [[http://code.google.com/p/support/wiki/GitFAQ|Git FAQ]]   * [[http://code.google.com/p/support/wiki/GitFAQ|Git FAQ]]
 +  * [[http://git-scm.com/book/ko/v1/Git-%EC%84%9C%EB%B2%84-%EC%84%9C%EB%B2%84%EC%97%90-Git-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0| Git 서버 - 서버에 Git 설치하기]] 
 +  * [[http://git-scm.com/book/ko/v1/Git-%EB%8F%84%EA%B5%AC-%EC%84%9C%EB%B8%8C%EB%AA%A8%EB%93%88|Git 도구 - 서브모듈]]
research/usegit.1390739079.txt.gz · 마지막으로 수정됨: 2014/10/09 21:23 (바깥 편집)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki