GIT

repo command option 설명 (repo 명령어 옵션 설명)

인포개더러 2013. 11. 24. 00:30



repo command option 설명 (repo 명령어 옵션 설명)



repo 명령어는 보통 repo sync, repo init 만 사용하게 되지만 좀더 많은 명령어를 알고 있으면 그만큼 업무의 효율도 늘어납니다.


그래서 repo 명령어의 세부 옵션들에 대해 알아보도록 하겠습니다.


REPO INIT


$ repo init -u URL [OPTIONS]

현재 directory 에 .repo directory 를 생성하고 그 안에 URL 로 부터 다운받은 manifest.xml 을 두고 이 파일이 실제 .repo/manifests/ directory 에 있는 manifest file 을 symbolic link 하도록 한다.


-g : manifest file 내용중 특적 group 의 내용의 sync 여부를 결정 합니다.

-u : manifest repository 를 다운 받을 URL 을 지정합니다.

-m : manifest repository 의 manifest file 을 지정 합니다. -m option이 없을 경우는 default.xml 을 사용하도록 되어 있습니다.

-b : manifest repository에서 manifest를 사용할 특정 branch 를 지정한다.


REPO SYNC

$ repo sync [PROJECT_LIST]
PROJECT_LIST 를 넣지 않으면 모든 repository 를 sync 합니다. PROJECT_LIST 는 소스상의 경로명을 사용하면 됩니다.
처음 명령어 실행시는 git clone 과 동일하게 동작하며 두번째 부터는
$ git remote update
$ git rebase origin/BRANCH
순서로 명령을 실행 하는 것과 동일하게 동작합니다.

-d : topic branch 에 있을 경우 특정 revision 으로 switch 되도록 해줍니다.
-s : sync to a known good build as specified by the manifest-server element in the current manifest.
-f : 다른 project 에서 sync fail 이 발생하여도 계속 sync 를 진행 하도록 한다. 이 옵션을 사용하게 되면 꼭 sync 종료 후에 다시 sync 를 해 보도록 하여야겠죠?
-c : 현재 지정된 branch의 내용만을 sync 합니다.



REPO DIFF


$ repo diff [PROJECT_LIST]


git diff 를 이용해서 PROJECT_LIST 의 working tree 변경 내용을 보여줍니다.

git diff 는 HEAD commit 에서 부터 변경된 사항을 보여주게 됩니다.


REPO UPLOAD


$ repo upload [PROJECT_LIST]


PROJECT_LIST 의 local 변경부분을 remote 로 update 한다. 각 branch 의 reiview 를 위한 upload를 할 수 있도록 prompt 를 띄워준다. 이 명령어를 사용하여 전체 project 의 push 를 한번에 할 수 있습니다.


REPO DOWNLOAD

$ repo download TARGET CHANGE

Gerrit 과 같은 review system 의 23823 의 변경 내용을 platform/build 에 download 하는 경우
$ repo download platform/build 23823
라고 실행하면 됩니다.


REPO FORALL

$ repo forall [PROJECT_LIST] -c COMMAND

모든 git repository 에 COMMAND를 실행하도록 해 줍니다. repo foall -c git checkout test_branch 라고 실행할 경우 모든 git repository 가 test_branch 로 이동하게 됩니다.

-c : 실행할 command 와 argument 를 인자로 갖는다.
-p : page 단위로 output 을 보여준다.
-v : command 실행 message 를 stderr 로 보여준다.


REPO PRUNE


$ repo prune [PROJECT_LIST]


이미 merge 된 topics 를 삭제하는 기능을 수행합니다.


REPO START


$ repo start BRANCH_NAME [PROJECT_LIST]


새로운 branch 로 이동합니다. 이 명령어는 "repo forall -c git checkout BRANCH_NAME" 과 동일한 기능을 수행합니다.


REPO STATUS


$ repo status [PROJECT_LIST]


해당 PROJECT repository에서 git status 를 실행 하는 것과 동일합니다. PROJECT_LIST를 지정해 주지 않을 경우 repo forall -c git status 와 동일하게 동작합니다.


더 자세한 내용은 repo command --help 를 사용하면 됩니다. ^^


이상 repo command option 설명 (repo 명령어 옵션 설명)에 대한 글 이였습니다.