五、Git多人开发:同时变更了文件名和文件内容如何处理?
【摘要】 @Author:Runsen
同时变更了文件名和文件内容如何处理
我们接着上面的话题,如果遇到了同时变更了文件名和文件内容如何处理?
A和B在同一个dev分支上对同一份代码仓库中的同一个文件做修改,小A变更了文件名,小B在不知道的情况下,基于原来的文件名对文件内容做了变更,此时合并出现问题应该怎么解决?
小A和小B首先对使用git pull命令同步下。小A使用命...
@Author:Runsen
同时变更了文件名和文件内容如何处理
我们接着上面的话题,如果遇到了同时变更了文件名和文件内容如何处理?
A和B在同一个dev分支上对同一份代码仓库中的同一个文件做修改,小A变更了文件名,小B在不知道的情况下,基于原来的文件名对文件内容做了变更,此时合并出现问题应该怎么解决?
小A和小B首先对使用git pull命令同步下。小A使用命令,模拟变更文件名的操作。
YIUYE@DESKTOP-5EEO47M MINGW64 ~/Desktop/A/muli_person_test (dev)
$ git mv user.html user.htm
YIUYE@DESKTOP-5EEO47M MINGW64 ~/Desktop/A/muli_person_test (dev)
$ git commit -m "Mv user.html user,htm"
[dev bd39f70] Mv user.html user,htm
1 file changed, 0 insertions(+), 0 deletions(-)
rename user.html => user.htm (100%)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
小B模拟基于原来的文件名对文件内容做变更,打开user.html文件之后添加<h1>XXXXXXXXXX</h1>
,保存之后退出,提交,使用命令
maoli@ubuntu:~/B/muli_person_test$ vim user.html
<html> <head>用户</head> <body> <h1>这是小A开发的User.html</h1> <h1>XXXXXXXXXX</h1> </body>
</html>
maoli@ubuntu:~/B/muli_person_test$ git commit -am "Improve h1 XXXXXXX"
[dev 0929525] Improve h1 XXXXXXX
1 file changed, 1 insertion(+)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
小A将之前变更的文件名操作push上去,看看小B发生什么的结果。此时,会报错,出现non fast-forward的错误提示,
YIUYE@DESKTOP-5EEO47M MINGW64 ~/Desktop/A/muli_person_test (dev)
$ git push
Counting objects: 2, done.
Delta compression using up to 12 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 253 bytes | 0 bytes/s, done.
Total 2 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-5.0]
To https://gitee.com/MaoliRUNsen/muli_person_test d613e8f..bd39f70 dev -> dev
小B在小A提交成果后,再进行提交,```cpp
maoli@ubuntu:~/B/muli_person_test$ git push
To https://gitee.com/MaoliRUNsen/muli_person_test
! [rejected] dev -> dev (fetch first)
error: 无法推送一些引用到 'https://gitee.com/MaoliRUNsen/muli_person_test'
提示:更新被拒绝,因为远程仓库包含您本地尚不存在的提交。这通常是因为另外
提示:一个仓库已向该引用进行了推送。再次推送前,您可能需要先整合远程变更
提示:(如 'git pull ...')。
提示:详见 'git push --help' 中的 'Note about fast-forwards' 小节。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
解决办法,使用命令git pull,git会自动处理这种情况。
maoli@ubuntu:~/B/muli_person_test$ git pull
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 2 (delta 1), reused 0 (delta 0), pack-reused 0
展开对象中: 100% (2/2), 完成.
来自 https://gitee.com/MaoliRUNsen/muli_person_test d613e8f..bd39f70 dev -> origin/dev
Merge made by the 'recursive' strategy.
user.html => user.htm | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename user.html => user.htm (100%)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
这个时候文件名和内容都按照之前的发生变化。
maoli@ubuntu:~/B/muli_person_test$ cat user.htm
<html> <head>用户</head> <body> <h1>这是小A开发的User.html</h1>
<h1>XXXXXXXXXX</h1> </body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
文章来源: maoli.blog.csdn.net,作者:刘润森!,版权归原作者所有,如需转载,请联系作者。
原文链接:maoli.blog.csdn.net/article/details/108184920
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)