[解決済み] gitのEOL変換を無効にする
2022-06-08 20:39:29
質問
私はgitに、どのような操作でも改行コードを変更しないようにさせようとしています。 残念ながら、何をやってもそうなってしまうようです。 私はそれを次のテストケースまで減らしました。それは、この動作を無効にするためのできるだけ多くの異なるメカニズムを持っています。
- 2 台のマシンで開始 (Windows コンピュータ = A、Linux コンピュータ = B)
-
両方のマシンで
git config --global core.autocrlf false
-
両方のマシンで
git config --global core.eol crlf
(念のため)
-
空のフォルダから、A上に新しいリポジトリを作成します。
-
git init --shared
(その後、作成した.git
ディレクトリを作成します) -
新しいファイルを作成する
.gitignore
をリポジトリに作成します。 -
新しいファイルを作成する
.gitattributes
をリポジトリに一行で作成します。* -text
-
git add .
ではgit commit -m "initial commit"
を回避するために、例えば これ . -
git branch master_recv
- リモートの追加
-
-
新しいファイルを作成する
document.txt
を含む新しいファイルを作成します。 -
コミットする
git add -A
そしてgit commit -m "<something>"
-
なお、Aの
document.txt
にはまだ CRLF が含まれています (これを削除し、リセットして--hard
でリセットすると、CRLF が含まれたままのバージョンが返されます)。
- コンピュータBにディレクトリごとSCP
-
新しいファイルを追加する
new file
CRLFを含む -
コミット
git add -A
そしてgit commit -m "<something>"
-
なお、Bの
document.txt
とBのnew file
は両方ともまだ CRLF を含んでいます。
-
BのマスターをAに引き込む。
git pull <remote> master:master_recv
-
Aの
document.txt
がLFに変化しています。 追加されたファイルnew file
も LF を含んでいます。
B が Windows マシンの場合は、この問題は発生しません。
どのように解決するのですか?
わかりました。 SCP プログラムが行末を変換していたようです。 意図的に改行コードが LF のファイルを作ってみて、それがダウンロードされたときに CRLF として表示されることを観察したときに、これに気づきました。
これが私にとっての解決策だったので、この回答を受け入れますが、これからの人はより一般的な解決策のために他の回答も参照してください。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリで削除されたファイルを検索して復元する方法
-
[解決済み] Git を使ってタグをリモートリポジトリにプッシュするには?
-
[解決済み] Git はシンボリックリンクをどのように扱うのですか?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルの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エラー - fatal: マージ中に部分コミットができない
-
[解決済み] git rebase fatal: 必要なリビジョンは1つです。
-
[解決済み】Git Extensions。Win32 エラー 487: cygwinのヒープ用に領域を確保できなかった、Win32エラー0
-
[解決済み] リモートから<branch name>とマージするように構成が指定されていますが、そのような参照は取得されませんでしたか?
-
[解決済み] git が「Pull is not possible because you have unmerged files」と表示するのはなぜですか?
-
[解決済み] 短いGitバージョンのハッシュを取得する
-
[解決済み] ssh-keygen' は内部コマンドまたは外部コマンドとして認識されません。
-
[解決済み】Gitのステータスで、中身が同じなのにファイルが変更されたと表示される。