git遠隔倉庫の使用
http://progit.org/book/zh/
Pro Git
professional version control Home Book ブログ About Support Us GitHub Twitter This is an-progress translation.
To help translate the book,please fork the book at GitHub and push your contributions.
遠隔倉庫の使用
どのGitプロジェクトの協力に参加するには、遠隔倉庫の管理方法を知る必要があります。遠隔倉庫とはネット上のプロジェクト倉庫を管理するもので、いくつかあるかもしれません。中には読んでください。また、書いてもいいです。他の人と協力して、あるプロジェクトを開発する時、これらの遠隔倉庫を管理して、データを押したり引いたりして、それぞれの仕事の進展を分かち合う必要があります。リモート倉庫の管理作業は、リモートライブラリの追加、廃棄されたリモートライブラリの削除、様々なリモートライブラリの分岐を管理し、これらの分岐を追跡するかどうかを定義することなどがあります。今回は遠隔倉庫の管理と使用について詳しく検討します。
現在のリモートライブラリを表示します。
現在の設定を確認するには、どのリモート倉庫がありますか?
リモート倉庫を追加
新しいリモート倉庫を追加するには、将来参照して実行するための簡単な名前を指定できます。
リモート倉庫からデータを取り込む
前に見たように、次のコマンドでリモート倉庫からデータをローカルに取り込むことができます。
リポジトリをクローンした場合、このコマンドは自動的にリポジトリをオリジンの名前に戻します。したがって、
「bareオプション」を使用して、git initを実行して空き倉庫を設定します。作業ディレクトリが含まれていない倉庫を初期化します。
$cd/opt/git
$mkdir project.git
$cd project.git
$git--bare init
この時、Join、JosieまたはJessicaはそれを遠隔倉庫に追加して、ブランチを送り、最初のバージョンのプロジェクトを倉庫にアップロードします。)
ある分岐が設定されている場合、ある遠端倉庫の分岐を追跡するために使用されます(次節及び第三章の内容を参照してください)。
データを遠隔倉庫に送ります。
プロジェクトは一つの段階に進み、現在の成果を他の人と共有し、ローカル倉庫のデータを遠隔倉庫に送ることができます。このタスクを実現するコマンドは簡単です。
リモート倉庫の情報を確認します。
私たちは命令を通すことができます。
実際の使用過程において、
リモート倉庫の削除と名前の変更
新版Gitで使用できます。
リモート倉庫サーバに移動したり、元のクローンミラーが使用されなくなったり、ある参加者がコードに貢献しなくなったりすると、対応するリモート倉庫を削除して実行できます。
Pro Git
professional version control
To help translate the book,please fork the book at GitHub and push your contributions.
遠隔倉庫の使用
どのGitプロジェクトの協力に参加するには、遠隔倉庫の管理方法を知る必要があります。遠隔倉庫とはネット上のプロジェクト倉庫を管理するもので、いくつかあるかもしれません。中には読んでください。また、書いてもいいです。他の人と協力して、あるプロジェクトを開発する時、これらの遠隔倉庫を管理して、データを押したり引いたりして、それぞれの仕事の進展を分かち合う必要があります。リモート倉庫の管理作業は、リモートライブラリの追加、廃棄されたリモートライブラリの削除、様々なリモートライブラリの分岐を管理し、これらの分岐を追跡するかどうかを定義することなどがあります。今回は遠隔倉庫の管理と使用について詳しく検討します。
現在のリモートライブラリを表示します。
現在の設定を確認するには、どのリモート倉庫がありますか?
git remote
コマンドを使用すると、リモートライブラリごとに短い名前が表示されます。あるプロジェクトをクローンした後、少なくともオリジンというリモートライブラリが見られます。Gitはデフォルトでこの名前を使ってクローンの元の倉庫を識別します。$ git clone git://github.com/schacon/ticgit.git
Initialized empty Git repository in /private/tmp/ticgit/.git/
remote: Counting objects: 595, done.
remote: Compressing objects: 100% (269/269), done.
remote: Total 595 (delta 255), reused 589 (delta 253)
Receiving objects: 100% (595/595), 73.31 KiB | 1 KiB/s, done.
Resolving deltas: 100% (255/255), done.
$ cd ticgit
$ git remote
origin
加えてもいいです -v
オプション(訳注:これは–verboseの略字で、イニシャルを取る)に対応するクローンアドレスを表示します。$ git remote -v
origin git://github.com/schacon/ticgit.git
複数のリモート倉庫がある場合、このコマンドは全部リストされます。例えば私のGitプロジェクトでは、下記のように見えます。$ cd grit
$ git remote -v
bakkdoor git://github.com/bakkdoor/grit.git
cho45 git://github.com/cho45/grit.git
defunkt git://github.com/defunkt/grit.git
koke git://github.com/koke/grit.git
origin [email protected]:mojombo/grit.git
このようにすれば、私はこれらのユーザーの倉庫から彼らの提出を地元に引き出すことができます。上に挙げた住所はorigginだけがSSH URLリンクを使っていますので、この倉庫だけがデータを押し上げられます。リモート倉庫を追加
新しいリモート倉庫を追加するには、将来参照して実行するための簡単な名前を指定できます。
git remote add [shortname] [url]
:$ git remote
origin
$ git remote add pb git://github.com/paulboone/ticgit.git
$ git remote -v
origin git://github.com/schacon/ticgit.git
pb git://github.com/paulboone/ticgit.git
現在は文字列pbで対応する倉庫の住所を指すことができます。たとえば、Paulにあるすべての情報をつかむが、ローカル倉庫にない情報は、実行できます。 git fetch pb
:$ git fetch pb
remote: Counting objects: 58, done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 44 (delta 24), reused 1 (delta 0)
Unpacking objects: 100% (44/44), done.
From git://github.com/paulboone/ticgit
* [new branch] master -> pb/master
* [new branch] ticgit -> pb/ticgit
現在、Paulの主幹分岐は完全に現地に訪問できました。対応する名前は? pb/master
、それを自分のある分岐に結合したり、この分岐に切り替えたりして、何か面白い更新がありますか?リモート倉庫からデータを取り込む
前に見たように、次のコマンドでリモート倉庫からデータをローカルに取り込むことができます。
$ git fetch [remote-name]
このコマンドはリモート倉庫に行って、まだ持っていないデータを全部引き出します。運転が完了したら、ローカルでこの遠隔倉庫の中のすべての分岐にアクセスして、その中のある分岐をローカルに統合します。あるいはある分岐だけを取り出して、最後まで調べてください。(私たちは第三章でブランチの概念と操作について詳しく討論します。)リポジトリをクローンした場合、このコマンドは自動的にリポジトリをオリジンの名前に戻します。したがって、
git fetch origin
前回のクローン以来、他の人がこのリモート倉庫にアップロードしたすべての更新(または前回のfetch以来の更新)を把握します。もう一つ重要なことは、fetchコマンドはリモートのデータをローカル倉庫に引くだけで、自動的に現在の作業分岐に統合されません。確実に準備してこそ、手動で統合できます。(説明:遠隔倉庫を作成して実行する必要があります。git remote add[倉庫名]、[倉庫url]、git fetch[リモート倉庫名]は、遠隔倉庫のデータをローカルに取り込むことができます。また、git merge remotes/[倉庫名]を使用します。/マスターはリモート倉庫をローカルの現在のbranchにmergeすることができます。このような分岐方式は独立した統合開発に適しています。つまり、それぞれの開発テストが完了したら統合します。例えば、AndroidのFramwarkとAP開発。「bareオプション」を使用して、git initを実行して空き倉庫を設定します。作業ディレクトリが含まれていない倉庫を初期化します。
$cd/opt/git
$mkdir project.git
$cd project.git
$git--bare init
この時、Join、JosieまたはJessicaはそれを遠隔倉庫に追加して、ブランチを送り、最初のバージョンのプロジェクトを倉庫にアップロードします。)
ある分岐が設定されている場合、ある遠端倉庫の分岐を追跡するために使用されます(次節及び第三章の内容を参照してください)。
git pull
コマンドは自動的にデータを取り込み、リモート枝を自動的にローカル倉庫に統合します。日常の仕事の中でよく使われます。速くていいです。実は、デフォルトの場合 git clone
コマンドは本質的にローカルマスター分岐を自動的に作成し、リモート倉庫のマスター分岐を追跡します。だから私たちは普通運行します。 git pull
は、元のクローンの遠端倉庫からデータを取り込むことを目的として、作業ディレクトリに現在の分岐を統合する。データを遠隔倉庫に送ります。
プロジェクトは一つの段階に進み、現在の成果を他の人と共有し、ローカル倉庫のデータを遠隔倉庫に送ることができます。このタスクを実現するコマンドは簡単です。
git push [remote-name] [branch-name]
。ローカルマスターを分岐して送るなら origin
サーバ上(再度説明すると、デフォルトのmasterとorign名前が自動的に使われます)では、下記のコマンドが実行できます。$ git push origin master
クローンされたサーバに書き込み権限があるか、または同じ時刻に他の人がデータを押していないかだけが、このコマンドが期限通りに完了します。あなたがデータを押す前に、他の人がいくつかの更新を押してくれたら、あなたのプッシュ操作は却下されます。まず彼らの更新を現地に持ってきて、自分のプロジェクトの中に入れてから、再度押すことができます。遠隔倉庫にデータを送ることについての詳細は第三章を参照してください。リモート倉庫の情報を確認します。
私たちは命令を通すことができます。
git remote show [remote-name]
クローニングされたorigin
を参照してください。 倉庫、実行可能:$ git remote show origin
* remote origin
URL: git://github.com/schacon/ticgit.git
Remote branch merged with 'git pull' while on branch master
master
Tracked remote branches
master
ticgit
対応するクローンアドレスに加えて,多くの追加情報を与えた。それはあなたにフレンドリーに教えてくれます。マスターの支店であれば、git pull
を使ってもいいです。 コマンドを使用して、データをローカルに取り込むことができます。また、トレース状態にあるすべての遠端分岐も示した。実際の使用過程において、
git remote show
与えられた情報は、このようになり得る。$ git remote show origin
* remote origin
URL: [email protected]:defunkt/github.git
Remote branch merged with 'git pull' while on branch issues
issues
Remote branch merged with 'git pull' while on branch master
master
New remote branches (next fetch will store in remotes/origin)
caching
Stale tracking branches (use 'git remote prune')
libwalker
walker2
Tracked remote branches
acl
apiv2
dashboard2
issues
master
postgres
Local branch pushed with 'git push'
master:master
それは私たちに運行を教えてくれます。 git push
デフォルトで送る分岐は何ですか?また、どのような遠端分岐がまだローカルに同期されていないかを示しています。どのような遠端分岐がリモートサーバ上で削除されていますか? git pull
を選択すると、どの分岐が自動的に結合されますか?(このコマンドはローカルブランチとリモートリポジトリのブランチの対応関係も確認できます。)リモート倉庫の削除と名前の変更
新版Gitで使用できます。
git remote rename
コマンドは、リモート倉庫の短い名前を変更します。たとえば、 pb
せいにする paul
、このように実行できます。$ git remote rename pb paul
$ git remote
origin
paul
なお、遠隔倉庫の名前変更は、対応する分岐名を変化させ、元の pb/master
分岐は今paul/master
になりました。リモート倉庫サーバに移動したり、元のクローンミラーが使用されなくなったり、ある参加者がコードに貢献しなくなったりすると、対応するリモート倉庫を削除して実行できます。
git remote rm
コマンド:$ git remote rm paul
$ git remote
origin
prev | next