1

私はGitを使用していますが、初めてです。私はプロジェクトの最新コードを持っていて、新機能に取り組んでいますが、その新機能に取り組んでいる間に、必要な修正の電子メールを受け取りましたが、それはコミットされていますが、まだ持っていません。残念ながら、新しい機能ファイルが必要な修正と共通していなくても、新しい機能ファイルがプルをブロックしているように見えるため、svn (および必要に応じてマージ) のように「最新バージョンを取得」することはできません。両方のシナリオでそれを行う最善の方法は何ですか: 1) 必要な新しいファイルで変更された共通ファイルがありません。シナリオ 2) 共通ファイルが変更されています (基本的に svn のようにローカルですばやくマージしたいだけです)。 ? ありがとうw

隠しておき、プルして修正を入手し、機能の作業を続けますか? 私が終わったら隠し場所をポップしますか?

4

2 に答える 2

2

元のポスターは尋ねます:

隠しておき、プルして修正を入手し、機能の作業を続けますか? 私が終わったら隠し場所をポップしますか?

それはあなたが持っている1つのオプションです。その他のオプションは次のとおりです。

元のポスターは尋ねます:

両方のシナリオでそれを行う最善の方法は何ですか:

  1. 必要な新しいファイルで変更された共通ファイルはありませんか?
  2. 共通ファイルを変更しました (基本的に svn のようにローカルですばやくマージしたいだけです)。

新しいファイルをコミットする準備ができている場合は、それをコミットしてから、マージまたはリベースを実行できます。変更したファイルがフェッチしているコミットでも変更されている場合、マージまたはリベースを行うかどうかは実際には問題ではありません。どちらの方法でも競合を解決する必要がある可能性があります。

git commit -am "Commit message here"
git fetch <remote-with-fix>

# Rebase your work on top of fix
git rebase <remote-with-fix>/<branch-with-fix>

# Or do a merge instead
git merge <remote-with-fix>/<branch-with-fix>

あなたが持っている新しいファイルをコミットする準備ができていない場合は、一時的なコミットを行い、修正を取得してから、作業をリベースしてから、混合リセットで一時的なコミットを元に戻すことができます。

git commit -am "Temporary commit"
git fetch <remote-with-fix>
git rebase <remote-with-fix>/<branch-with-fix>    
git reset head^
于 2013-08-10T06:01:00.953 に答える
0

修正のあるブランチに修正しかない場合は、単純にマージします。

ブランチに、現在のブランチに必要のない他のものが含まれている場合は、cherry-pick を選択します。ただし、チェリーピッキングには注意してください。コミット履歴を実際のマージとして追跡しないため、これらのブランチを互いにマージすると、後で競合が発生する可能性があります。

あなたのケースは初めてだと思います。考えすぎる必要はありません。ブランチをマージするだけです。

変更された共通ファイルがある場合、競合が発生する可能性があり、手動で解決する必要があります。

于 2013-08-10T06:01:34.440 に答える