2013年1月5日土曜日

gitとの格闘w その3 リモート

そういえば呪文のように打っていたコマンド
$ git push origin master
がありましたがチュートリアルの次のページでようやくわかりました。
$ git remote
origin
最初にクローンしたので remote としてそのクローン元が origin として定義してくれてたんですね。で、master というブランチ(?)を origin に push するコマンドが呪文の正体だったと。なるほど。

別のディレクトリで同じリポジトリに大して clone してたほうからいくと
$ git status
# On branch master
nothing to commit (working directory clean)
$ git fetch
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From git://localhost/sample
   aa7f9ba..2c64353  master     -> origin/master
$ git status
# On branch master
# Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
#
nothing to commit (working directory clean)
$ git pull
Updating aa7f9ba..2c64353
Fast-forward
 README |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)
$ git status
# On branch master
nothing to commit (working directory clean)
fetch の時点では変更内容をとるだけでファイルの変更等はしないと。これもまあ当たり前ですかね。ブランチの情報とかもこの時点で持ってくるみたいです。その後変更を取り入れるなら pull で取り込むと。ふむふむ。
$ git log --pretty=oneline --graph
* 2c64353f62ac483887e773f58fe59315eeb3f2e1 Delete one more line
* aa7f9ba17d78193174415b97dae2b32264fc2061 Delete a line
*   0961ac4a66fbfcace7c0fc766544fa8da4b678dd Resolve conflict
|\  
| * 700f0dcca4861dd99ceb5dee12220d687c793433 Commit on branch
* | 9fb2424b4d9314e8d50f1bdb619d050b57675e07 Conflict!
|/  
* fda2f7be817a8534594a094b0b6e5b20e22d622d Commit
* ae419f95f40424091667aa750bf495b0665d133b Add another line
* 2698c25066c123921d74115385a52a627c067f30 Add one line
* 253133b619739070a06835181c4ed6c40aa7e08c initial commit
いい感じw

あとは実際に使うときに必要に応じてヘルプを見ながらすすめればいけそうですね。

0 件のコメント:

コメントを投稿