問題タブ [gitattributes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - .gitattributes と行末の正規化: 変更されたファイルがまだそこにある
.gitattributes の動作と混同しています。
行末の正規化に関する記事に従って、次の手順を実行しました。
- で作成された.gitattributes
* text=auto
- 私が持っている開発用Windowsマシンで
core.autocrlf = true
- 私が持っている私のビルドLinuxマシンで
core.autocrlf = input
- を実行している開発マシンで行末の正規化を実行し
git rm --cached -r . && git reset --hard && git add . && git commit -m "normalized" && git push develop origin/develop
ました。
私の考えによると、最後のステップでは、最終的に LF エンディングを持つすべてのテキスト ファイルをリポジトリにプッシュする必要があります。その瞬間から、すべてのコミットとチェックアウトは、どのプラットフォームでも行末の衝突に悩まされることはありません。
しかし、ビルド Linuxマシンでレポを複製すると、すぐに変更済みとしてマークされた多数のファイルを取得しました。ビルド マシンの作業コピーで .gitattributes 行を# * text=auto
(コメント付き) に変更すると、すべてが正常になります。
それはなぜですか、そして私は何を間違っていますか?
windows - git: リベース中にユニオン戦略と自動的にマージする
git rebase
追加したすべての行を保持して、.csproj ファイルを自動的にマージしたい:
2 つの問題があります。まず、これはバイナリ警告で失敗します:
2番目の問題は、ファイルがテキストであると正しく判断されますが(理由はわかりません)、私の他のレポにありますが、それでもマージに失敗します。
git - ファイルが gitattributes のルールと一致しない場合、コミット/追加を中止します
基本的にはタイトルがすべてです。
何らかの理由で、現在のリポジトリ内のファイルが gitattributes ファイル内のどのパターンとも一致しない場合、ファイルの追加/コミットを中止する必要があります。
これを使用して、core.eol、core.autocrlf、および core.safecrlf にまったく依存しないようにしたいと考えています。
gitattributesのマンページには、これについて何も書かれていません。これまでに見つけたgitattributesに関する他のトピックもありません。
git - "openssl"] は有効な属性名ではありません: .git/info/attributes:5
ファイルに属性を設定すると、次のエラーが発生し.git/info/attributes
ます。
ファイルの内容:
更新しました:
git - gitattributes の "!eol" は何をしますか?
最近、.gitattributes ファイルで次のエントリを見つけました。
"* text=auto !eol"
何をし!eol
ますか?
git - `.gitattributes` ファイルの `text=auto` の目的は何ですか?
ほとんどの.gitattributes
ファイルには* text=auto
. text=auto
そのファイルの目的は何ですか?
linux - `.gitattributes` ファイルを使用して Git リポジトリの行末を修正する
修正が必要なもの:
.md
私が書いているエッセイを含む単一のファイルを含むリポジトリがあります。
Linux を実行している 1 台と Windows を実行している 2 台のコンピューターからファイルを編集します。
いくつかの変更を加えた Windowsで agit diff
を見ると、エッセイが適切に区切られたテキスト行として表示されていることがわかります...すべてが削除され、段落が^M
s で区切られた 1 つの長い行に置き換えられようとしています。
^M
Windows の CLRF 行末を参照していることは承知しています。
diff
結果は、Linux でファイルを開始し (完全に可能です。覚えていません)、それを Windows に保存し、すべての行末が置き換えられたことを意味します。
diff
両方の OS でファイルを開き、必要に応じて行が表示され、 (プレースホルダーではなく) 改行が表示さ^M
れ、実際のコンテンツのみが変更される結果が得られるようにしたいと考えています。
私が試したこと:
背景を読んだり、行末と Git 設定の概要を読んだり、別の Stack Overflow questionのコマンドに従ってみたりしました。
.gitattributes
現状では、リポジトリ自体にコミットしたリポジトリの最上位に1 つのファイルがあります。次の 2 行だけが含まれています。
私はこれを試しました(source):
そしてこれ(ソース):
2 番目のケースでは、最後のコマンドで、コミットするものが何もないことがわかります。core.autoclrf
(純粋に を介してこれを行おうとしているので、を変更するという考えも好きではありませんが、.gitattributes
イライラしています。)
喜んで質問に答え、詳細を提供します。私が間違っている可能性のあるアイデアはありますか?手順がありませんか?
git - git archive : export-ignore、ディレクトリを無視
私はこれを含むgitリポジトリを持っています.gitattributes
:
しかし、私が作るとき:
ディレクトリで、archive_dir
ディレクトリを取得し、次のようにhooks
しtests
ます。
なんで?
私のgitバージョンは1.7.9です。