'git merge'では、通常はマージの競合ではない場合でも、違いをマージの競合と見なしたいと思います。次に、「git mergetool」を使用して、すべての違いを確認して解決できます。.gitattributesで'*-merge'を指定しようとしましたが、うまくいかなかったようです。
$ git checkout master
Switched to branch 'master'
$ ls
foo.c
$ git merge add-on
Updating a628824..2219552
Fast-forward
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 bar.c
$ cat .gitattributes
* -merge
$ ls
bar.c foo.c
上記の「gitmergeadd-on」では、ベースバージョン、ローカルバージョン、リモートバージョンがない「bar.c」のマージの競合が予想されました。[編集]ある回答で示唆されているように、上記ではマージは発生しませんでした。これは、マージを強制したが、それでも望ましいマージの競合がない場合です。
$ git merge --no-ff add-on
Merge made by the 'recursive' strategy.
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 bing.c
上記の「bing.c」は実際には空であることに注意してください。ただし、空でないファイルを提供してもマージされるため、これは問題ではありません。[編集2]この結果で--no-commitを試しました:
$ git merge --no-ff --no-commit add-on
Automatic merge went well; stopped before committing as requested
$ git status
# On branch master
# Changes to be committed:
#
# new file: boom.c
#
$ git mergetool
No files need merging
$ cat .gitattributes
* -merge
私は何が欠けていますか?'.gitattributes'が使用/読み取りされていることを確認する方法はありますか?