A certain engineer "COMPLEX"

開発メモ その8 gitでフォーク元のリポジトリの変更を追跡する

忘れずにメモ。

フォークした後、フォーク元に対する変更はどうなるの?


Subversion的には、ブランチを切ってしまうと、そのブランチに対するリビジョンをマージするという形でローカルに反映します。
gitで、これをやる場合、少し面倒。というかTortoiseGitで対応していないのかしら?

まず、フォークしたリポジトリに対するローカルリポジトリのあるフォルダ (.gitというフォルダがある場所) に移動。
コマンドプロンプトから下記のコマンドを叩きます。


git remote add <name>

nameは何でもいいです。
例えば、Microsoft/Caffeをフォーク先のリポジトリPrivate/Caffeに対して、フォーク元 (つまり Microsoft/Caffe) に対する変更を追跡させたいなら


git remote add upstream https://github.com/Microsoft/caffe.git

となる。
ようするに、これにより、ローカルのリポジトリはフォーク先リモートリポジトリ (Private/Caffe) とのみ関係があった状態に対して、新しくフォーク元のリポジトリをリモートブランチとして追加したわけです。

で、フォーク元のリポジトリに対する変更をプルする場合は、


git fetch <name>
git merge <name>/master

で大丈夫なはず。

Conclusion


gitが便利なのはわかるんですが、概念がかなり複雑なんですよね。TortoiseGitのおかげである程度複雑さはカバーされていますが。
別のGUIクライアントを使います?え、Source Tree?知らないなぁ。

コメントを残す

メールアドレスが公開されることはありません。

%d人のブロガーが「いいね」をつけました。