0

私は非常に活発なプロジェクトに取り組んでいます。新しい機能を実装するには、新しいブランチ (「my-feature」) を作成します。マスターで何が起こっているかを追跡するために、私は時々次の手順を実行します。

git checkout master
git pull
git checkout my-feature
git rebase master

当初、これは非常にうまく機能しました。しかし、数日以来、私は次のような多くのエラーに行かなければなりません:


stdin:28: trailing whitespace.

stdin:80: trailing whitespace.

stdin:83: trailing whitespace.

warning: 3 lines add whitespace errors.

自分でコードを実行する必要があるよりも。競合は常に、「my-feature」ブランチで私が行った古い変更と、同じ行の新しいバージョンです。リベースがコミットの順序を混乱させているようですが、わかりません。

修正した後、それらを修正済み ( ) としてマークし、同様のエラーにつながるgit add呼び出しを行います。git rebase --continueリベース プロセスが完了するまで、この手順を複数回繰り返す必要があります。

マスターでは、「my-feature」ブランチで編集したファイルに変更はありません。したがって、リベースは競合なしで実行されるべきだと思います。他のすべての変更を取り込み、その上に正しい順序で変更を適用するだけです。

ここで何が間違っていますか?

ありがとう!

4

2 に答える 2

3

それは競合のようには聞こえません。誰かが空白エラーを検出するコミット フックを追加したようです。

リベースすると、機能ブランチのコミットが 1 つずつ再生されます。したがって、後で空白エラーを修正したという事実は、古いコミットを再生している間、git が不平を言うのを止めることはありません。

リベースを使用してコミットを押しつぶし、履歴に悪いコミットがないようにするか、単にリベースを停止します。master -> my-featureブランチを最新の状態に保つためにマージし、完了したらマージして元に戻すことができます。

于 2012-12-11T15:43:36.217 に答える
1

時々、git は空白について警告を出します。ファイル内の空白が重要でない場合は、次の構成でこれらの警告をスキップできます。

 git config --global apply.whitespace nowarn

git 構成を変更したくない場合は、リベース中にオプションを使用できます。

 git rebase --ignore-whitespace 
于 2012-12-11T16:05:04.683 に答える