四、玩转Git三剑客-Git多人单分支集成协作时的常见场景
时间:2022-07-23
本文章向大家介绍四、玩转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
进行提交了。
不同人修改了同文件的不同区域
- 开发之前对远端进行一个同步 git pull
- 提交一个账号的变更,并切换回另一个账号。尝试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
- Elasticsearch索引增量统计及定时邮件实现
- 机器学习中的特征空间
- 简单易学的机器学习算法——马尔可夫链蒙特卡罗方法MCMC
- 推荐算法——基于图的推荐算法PersonalRank算法
- 推荐算法——非负矩阵分解(NMF)
- 【Go 语言社区】转-golang windows 判断锁屏
- 【Go 语言社区】单点redis 持久化在高并发下存在延迟情况
- 设计模式(2)-策略模式之多用组合少用继承
- Golang获取随机端口和本机ip地址
- 设计模式(3)-装扮你的类(装饰模式)
- [Go 语言社区]服务器读取配置文件只-json数据
- gsoap开发webservice
- [Go 语言社区]测试模块之---utf8例子
- org.hibernate.type.StringType cannot be cast to org.hibernate.type.VersionType
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法