专栏首页小康的自留地四、玩转Git三剑客-Git多人单分支集成协作时的常见场景

四、玩转Git三剑客-Git多人单分支集成协作时的常见场景

不同人修改了不同文件如何处理

首先在GitHub创建新的分支test,然后本地clone下仓库。通过设置本地local的name属性和email属性模拟两个人操作。

git clone git@github.com:sviptzk/test1.git
cd .\test1\
git config --add --local user.name 'gos967'
git config --add --local user.email 'gos967@163.com'
#基于远端的test分支创建本地分支
git branch -va
git checkout -b test origin/test

我们编辑README文件后,添加并push到远端。

接下来回到以前的仓库,拉取远端的分支。

# 拉取远端分支
git fetch github

基于远端test分支创建本地分支

git checkout -b test github/test

接下来编辑文件,并添加到暂存区,但是不会push。此时切换回刚才的账号,并修改了readme。然后生成commit并push。完成后再次切换回另一个账号。

此时再次将修改c.js文件的用户进行push操作,会遇到问题。

接下来拉取远端分支,并进行合并。

git fetch github
git merge github/test

接下来就可以通过git push进行提交了。

不同人修改了同文件的不同区域

  1. 开发之前对远端进行一个同步 git pull
  2. 提交一个账号的变更,并切换回另一个账号。尝试push

可以通过git pull或者git fetch然后合并分支 git fetch git merge origin/test此时再通过push即可上传成功

不同人修改了同文件的同一区域

模拟两个账户同时修改了同一个文件的同一个区域,并且其中一个提交。然后另一个没有提交的账号做出如下操作。

# 拉取远端最新更新
git pull 

但是由于修改了同一个区域,因此不能自动合并。需要人为合并。

将以上文件进行处理后,再次添加并且commit即可。

同时变更了文件名和文件内容

假如变更文件名的小伙伴先一步push了自己代码,而刚做完修改的小伙伴可以通过git pull命令进行拉取,这个命令会自动处理变更文件名操作。

同一文件改成了不同的文件名

这种情况下,通过git pull命令进行拉取则不会自动处理,而是遇到冲突。会出现两个不同名但内容相同的文件。

# 通过status查看需要添加、删除的文件
git status
# 添加需要保留的文件
git add r1.js
# 删除不需要的文件
git rm rr.js
git rm r2.js

接下来便可以通过git commit -am 'change file name'进行提交新的commit,然后push即可。

git commit -am 'change file name'
git push

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • git常用命令总结

    Dreamy.TZK
  • 将Hexo部署到云服务器

    看到群里好多人问如何将Hexo部署到云服务器。按我的思想,如果有服务器谁还用Hexo?但居然还真有人。趁着上个月白嫖的腾讯云的机器还没过期,赶紧重装个系统,来咕...

    Dreamy.TZK
  • 一、玩转Git三剑客-Git基础

    如果在一个仓库中存在local用户与全局用户,那么local用户的优先级高于全局用户信息。

    Dreamy.TZK
  • Git - 使用命令和P4Merge进行diff

    P4Merge P4Merge是Git的一个第三发Diff和Merge工具(可视化冲突解决工具). 下载地址: https://www.perforce.com...

    solenovex
  • git 入门教程之版本控制 原

    我们知道 git 是分布式版本控制系统,所以称被控制对象是版本本身没错,但是从git 命令中发现,并没有版本这个名词,有的只是commit,所以前几节我一直称其...

    雪之梦技术驿站
  • Centos 7 安装 Git

    可以使用命令将文件直接上传到服务器,也可以使用 WinSCP,这里我就使用 WinSCP 了,因为他是傻瓜式的,输入服务器的公网 IP、用户名以及密码后直接登录...

    Demo_Null
  • 提交PR的git 流程

    上次花了点时间让CarbonData集成到StreamingPro中,方便大家更快速的体验到CarbonData的好处,集成完毕后就写了篇文章:让CarbonD...

    用户2936994
  • Git推送大文件失败?你晓得如何解决嘛?

    我相信这不是我一个人的经历:傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去...

    小闫同学啊
  • 安全防范:nginx下git引发的隐私泄露问题

    安全防范:nginx下git引发的隐私泄露问题 1   安全事件 最近阿里云服务器后台管理系统中收到一条安全提示消息,系统配置信息泄露: http://my.d...

    用户1170933
  • 不会git的程序员,会不会被鄙视?

    事先声明啊,这与公司技术栈无关,不要说有些公司只用 git 管理。对于公司而言,使用什么版本控制有一定的考虑或者历史原因。但如果你遇到一个不会 git 的新同事...

    闰土大叔

扫码关注云+社区

领取腾讯云代金券