[解決済み】git filter-branchで行末を修正しようとしたがうまくいかない
質問
gitのWindows/Linuxの改行コードの問題に悩まされています。 GitHub や MSysGit などの情報源によると、最良の解決策は、ローカルのリポジトリで linux 風の改行コードを使用するように設定し、その上で
core.autocrlf
を
true
. 残念なことに、私はこれを十分に早い段階で行わなかったので、今では変更を加えるたびに行末がおかしくなっています。
答えを見つけたと思ったのに こちら が、私にはうまくいきません。 私のLinuxのコマンドラインの知識はせいぜい限られているので、彼のスクリプトの中で "xargs fromdos" 行が何をするのかさえよくわかりません。 そのようなファイルやディレクトリは存在しないというメッセージが出続け、既存のディレクトリを指定しようとすると、パーミッションがないと言われます。
WindowsのMSysGitとMac OS Xのターミナルで試しました。
解決方法は?
の git ドキュメントを参照してください。 gitattributes は、プロジェクト内のすべての行末を修正または正規化するための別のアプローチについて説明しています。 以下はその要点です。
$ echo "* text=auto" >.gitattributes
$ git add --renormalize .
$ git status # Show files that will be normalized
$ git commit -m "Introduce end-of-line normalization"
を行うべきでないファイルがある場合 git statusに正規化されたものが表示されます。 テキスト属性を解除してから git add -u を実行します。
manual.pdf -text
逆に、git が認識しないテキストファイルは を検出しない場合、正規化することができます。 を手動で有効にします。
weirdchars.txt text
これは、新しい
--renormalize
フラグは、2018年1月にリリースされたgit v2.16.0で追加されました。 古いバージョンのgitの場合、もう少し手順があります。
$ echo "* text=auto" >>.gitattributes
$ rm .git/index # Remove the index to force git to
$ git reset # re-scan the working directory
$ git status # Show files that will be normalized
$ git add -u
$ git add .gitattributes
$ git commit -m "Introduce end-of-line normalization"
関連
-
[解決済み】gitがローカルバージョンをリモートバージョンに置き換える
-
[解決済み] あなたのブランチは 'origin/master' より 3 コミット進んでいます。
-
[解決済み】ローカルGitブランチとそのリモートブランチを比較する方法
-
[解決済み] ERROR: リモートレポ 'origin' のクローン作成に失敗しました。
-
[解決済み] Gitでローカルブランチをリモートブランチに完全に置き換えるには?
-
[解決済み] 現在の変更点を含むGitブランチの作成
-
[解決済み] 間違ったGitブランチにコミットしてしまった場合の対処法
-
[解決済み] Git リモートブランチを削除しても 'branch -a' に表示される
-
[解決済み] GitでCRLF(キャリッジリターン、ラインフィード)を処理するための戦略とは?
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】git revert <hash> not allowed due to a merge but no -m option was given.
-
[解決済み】以下の追跡されていないワーキングツリーファイルは、マージによって上書きされますが、私は気にしません。
-
[解決済み】git-mergeの-dry-runオプションはありますか?
-
[解決済み】GitHubで空のブランチを作成する
-
gitアップロードの共通エラー処理
-
[解決済み] [Solved] originにプッシュしようとすると、Gitが「No such remote 'origin'」と言うのはなぜですか?
-
[解決済み] fatal: bad revision "とはどういう意味ですか?
-
[解決済み] なぜGitでcore.autocrlf=trueを使うべきなのでしょうか?
-
[解決済み] git reset --hard の後に残る未ステージ化変更点
-
[解決済み】gitレポと作業コピーでLF eolを強制する