2011-04-27 12 views
11

私はGitリポジトリにプロジェクトを持っており、Gitの外で行った変更が送られてきました。これらの変更は私が自分自身に変更を加えている以前のバージョンに基づいています。これらの外部ファイルを私のものとマージする最良の方法は何ですか?Gitリポジトリに外部の変更をマージする最良の方法は何ですか?

多くの感謝!

+1

これらの変更はどのような形式で送信されましたか? diffファイル? –

答えて

10

gitあなたが自動マージの可能性を最大限に引き出すために、彼らは何を基にしていたのですか?

  1. git checkout <sha1 of the old commit> -b mybranch、作業ツリーを巻き戻して新しいブランチを開始する。
  2. 変更がdiffとして送信された場合は、git-applyを使用して作業ツリーに適用してください。それ以外の場合は、更新されたファイルを入れてください。
  3. ファイルを追加してコミットしてください。
  4. git checkout master、次にgit merge mybranch
+0

おかげで、これは私が欲しいもののように聞こえる。乾杯! – GitNub

4

あなたは、これらのファイルで作業しているかのように正確に動作するので、あなたが話している以前のバージョンの状態からそれらをコミットすることをお勧めします:

  1. あなたが信じているコミットの分岐を作成します。
  2. は、あなたのメインの開発ブランチにブランチをバックマージコミット
  3. が変更されたファイルを追加修正されたファイルのベースとなる
0

ファイルの代わりにパッチを与えるために変更を提供した人にとっては、最良の方法です。しかし、それが不可能な場合、他の人がバージョン管理を認識していない、または何か他の人が現在作業している支店の未処理の変更をすべてコミットしようとする可能性があります。 Preferracklyもuntrackedファイルを避けてみてください。これらのファイルをgit repoにコピーしてgit statusを実行すると、あなたのレポの状態と比較して何が変化しているのかが分かります。そして、あなたはそれらを使って何をするのかを決めることができます。

関連する問題