強制 - スタッシュ git



git:所有権/責任を変えずにスタイリング(空白)を変更する? (3)

理想的な世界では、違反が導入されていないように履歴を書き直す方法がいくつかあります

git filter-branchはそれを正確に行います。

http://git-scm.com/docs/git-filter-branch

これは、すべての履歴書き換えコマンドと同じ問題があります。なぜなら、基本的にすべての複製されたリポジトリを無効にするからです。

https://code.i-harness.com

私たちには大量の古代コードベースがあり、多くのクリーンアップが必要です。 私たちはいつもコーディング標準を持っていて、誰もがいつもそれらをフォローしようとしてきましたが、時間がたつにつれて多くの違反が起こっていました。それらの多くは空白の代わりにタブを使うような空白の問題です。どこにあってもいけません。スペースがなければなりません。 より多くの違反が入り組んでいないことを確実にするために、コーディング標準を積極的に実施するつもりですが、変更だけを自動化することは難しいため、古いファイルをクリーンアップするのが良いでしょう。

これらの問題の解決を自動化するツールがありますが、私がそれを行うと、実際に私がそれらを見たことがないかもしれない時に、その行の所有者として私を見せてくれるでしょう。 私は空白の変更を無視するように設定していることを知っていますが、他のビジュアルツールやgitstatsのようなものを含めて、誰もが同じように責めることはできません。 理想的な世界では、実際のコードを紹介した人を隠さずに、違反が導入されなかったように見えるように履歴を書き直す方法がありますが、そのようなものは見つけられません。


blameを使用して根本原因の問題を解決しようとしている場合は、 -wフラグを使用してすべての空白または字下げの変更を無視することを忘れないでください。 したがって、インデントの代わりにコードに最後の実際の変更を適用するか、末尾のスペースを削除します。

git blame -w app/to/file.rb

または単にgit slapコマンドを使うことができます。

git config alias.slap "blame -w";
git slap app/path/to/file.rb

同じ結果を持つ:D


私はTextMate git Bundleに対して、 "Annotated File(Blame)のブラウズ"コマンドのデフォルトでこの "-w"パラメータを設定するように要求を出しました。 ありがとうMario Zaizar、あなたは私の一日を作った。

diff --git a/Support/lib/git.rb b/Support/lib/git.rb
index 5e8de13..5192953 100644
--- a/Support/lib/git.rb
+++ b/Support/lib/git.rb
@@ -307,6 +307,9 @@ module SCM
       file = make_local_path(file_path)
       args = [file]
       args << revision unless revision.nil? || revision.empty?
+      # Ignore whitespace when comparing the parent's version and
+      # the child's to find where the lines came from.
+      args << '-w'
       output = command("annotate", *args)
       if output.match(/^fatal:/)
         puts output 




removing-whitespace