2

組織のパッチ ワークフローを形式化しようとしています。空白 (可能であればユーザーごとに同じにしたい)、EOF/EOL 文字などを気にしない内部プロジェクトがあります。Mac と Windows プラットフォームの両方で作業している開発者がいます。どちらの場所でも、Cygwin で git を使用しています。

ここで、core.autocrlf true がトリックを行うか、使用できることを読みました--keep-cr。しかし、ここで VonC はcore.autocrlffalseがより良い戦略であることを示唆しています。

私の質問は次のとおりです。

  1. true を使用する場合と false を使用する場合 (私はgitにバグを与えたくないだけで、パッチはスムーズに適用する必要があります)。
  2. --keep-cr導入されたのはいつ?私は git 1.7.2 を使用していますが、man ページにはこのオプションがありませんか?
  3. パッチのワークフローをスムーズにするために使用する空白を無視するオプションは何ですか?
4

1 に答える 1

3

Stefan-W によってコミット ad2c928で導入されたので、 1.7.2 は--keep-crgit am に必要です。Hahn、Git 1.7.1 に含まれています。

git format-patch出力を " " から " " に直接フィードしていることがわかっている場合git am、特にコンテンツの行末に CR がある場合、このような削除は望ましくありません。このようなユースケースを支援するには、--keep-crオプションを " " に教え、git amそれを " " に渡しgit mailinfoます。

ただし、Windows では、cygwinではなく、常に最新の Git For Windows リリースを使用します(両方を使用することはできますが)。

問題は、すべてのファイル (テキスト以外のファイルも含む)に影響core.autocrlfするリポジトリ全体の設定であることです。私はディレクティブ を好みます。
core.eol

空白については、「git: patch does not apply」を試すことができます:

git apply --ignore-space-change --ignore-whitespace mychanges.patch
于 2014-06-12T07:31:16.640 に答える