五、Git多人开发:同时变更了文件名和文件内容如何处理?

举报
毛利 发表于 2021/07/15 01:30:10 2021/07/15
【摘要】 @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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。