問題: Bitbucketは、違いは見られませんが、ファイル全体が変更されたことを示しています。これらのファイルにはマージの競合はありません。Bitbucket CRLFの問題?
詳細: 私は(「sprintbranch」という名前の)スプリントブランチを作成し、開発者は、スプリントの枝から(「featurebranchX」という名前の)機能ブランチを作成しました。フィーチャーが実装された時点で、フィーチャーブランチをスプリントブランチにマージし始めました。今、私は問題に直面する2つのシナリオがあります。
- 開発者は、競合をマージがある場合、開発者はfeaturebranch1にsprintbranchをマージしにfeaturebranch1をマージするプル要求を作成sprintbranch
- にfeaturebranch1マージするプルリクエストを作成し、スプリントブランチ。
両方とも、ファイル全体が変更されたことを示します。そして、マージの競合はありません。
このような状況が発生した場合、特定の行が開発者によって変更されたことはわかりませんので、コードレビューはできません。また、私はこの時点で歴史を失っています。私はスプリントブランチに何が実装されたのか、それともマージされたのか分かりません。
私の推測では、問題は行末であると考えられます。 CRLFと何か関係があります。しかし私が自分の仕事をコミットすると、適切な行末が自動的に使用されていることがわかります(gitまたはSmartGitのようなツールによって)
どうすれば解決できますか?
更新:
私はちょうど私がCR LFとの違いを無視し、プルリクエストのURLの末尾にクエリ文字列w=1
を追加することができていることが分かりました。
しかし、これらのファイルはコミット中に残っていますが、後でマージすると、それらの違いが正しいでしょうか?
私は '*テキストEOL = lf'と.gitattributesを追加しました(そしてそれをコミット)し、たくさんのファイルが自動的に修正されるだろうと行末が固定されることを期待。それは起こらなかった。行末の変更はいつ私のレポに反映されますか? – shravanp
(グローバル)設定オプション 'core.autocrlf'を設定して、githubヘルプページに記載されている手順に従ってください。 – Arjan
私が理解しているところでは、グローバルコンフィグレーションの問題は、すべての開発者がそれに固執していることを確認する必要があることです。開発者への依存関係を削除するには、.gitattributesがあります。しかし、彼らのガイドでは、 "core.autocrlfオプションを設定して.gitattributesファイルをコミットした後で、Gitがあなたが修正していないファイルをコミットしようとしていることがわかります"。 .gitattributesをonyに追加しようとしました。私は両方で試してみて、何が起こるか見てみましょう。 – shravanp