2019-06-18 不同人修改了同一个文件的文件名

[root@VM_0_3_centos test2]# git mv f1 f1.txt
[root@VM_0_3_centos test2]# git commit -m "rename f1.txt"
[root@VM_0_3_centos test2]# git push   #第一个人修改了文件名,并推到远程
[root@VM_0_3_centos test]# git mv f1 f1.html
[root@VM_0_3_centos test]# git commit -m "rename f1.html"
[root@VM_0_3_centos test]# git push  #报错
warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

To git@github.com:qilinzhicai/test.git
 ! [rejected]        分支2 -> 分支2 (fetch first)
error: failed to push some refs to 'git@github.com:qilinzhicai/test.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first merge the remote changes (e.g.,
hint: 'git pull') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
[root@VM_0_3_centos test]# git pull  #拉取远程到本地并合并时会报冲突
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (1/1), done.
remote: Total 2 (delta 1), reused 2 (delta 1), pack-reused 0
Unpacking objects: 100% (2/2), done.
From github.com:qilinzhicai/test
   eb12a34..1195d98  分支2    -> origin/分支2
CONFLICT (rename/rename): Rename "f1"->"f1.html" in branch "HEAD" rename "f1"->"f1.txt" in "1195d987ec9a25b5867222093c88d366d4870c95"
Automatic merge failed; fix conflicts and then commit the result.
[root@VM_0_3_centos test]# ls  #发现两个文件名都在了
f1.html  f1.txt  f2  f3  README.md
[root@VM_0_3_centos test]# git status
# On branch 分支2
# Your branch and 'origin/分支2' have diverged,
# and have 1 and 1 different commit each, respectively.
#   (use "git pull" to merge the remote branch into yours)
#
# You have unmerged paths.
#   (fix conflicts and run "git commit")
#
# Unmerged paths:
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#   both deleted:       f1
#   added by us:        f1.html
#   added by them:      f1.txt
#
no changes added to commit (use "git add" and/or "git commit -a")
[root@VM_0_3_centos test]# git rm f1  #删除f1
[root@VM_0_3_centos test]# git rm f1.txt
[root@VM_0_3_centos test]# git add f1.html
[root@VM_0_3_centos test]# git status
# On branch 分支2
# Your branch and 'origin/分支2' have diverged,
# and have 1 and 1 different commit each, respectively.
#   (use "git pull" to merge the remote branch into yours)
#
# All conflicts fixed but you are still merging.
#   (use "git commit" to conclude merge)
#
nothing to commit, working directory clean
[root@VM_0_3_centos test]# git commit -m "resolve chonflicts"  #发现冲突解决
[分支2 6223729] resolve chonflicts
[root@VM_0_3_centos test]# git push  #推送到远程不会报错了

推荐阅读更多精彩内容