`
song020cn
  • 浏览: 61635 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

git多人协作代码合并流程

    博客分类:
  • git
阅读更多

Git协作开发方式1:

1、git commit,提交修改到git 本地Cache中;

2、git pull --rebase origin branchname,通过rebase方式合并代码;

3、git push -u origin branchename,将所有修改提交到远端。

 

该方式适合于所有代码commit后,他人获取可以顺利编译运行的情况。

 

步骤2可能产生文件冲突。

例如:

Auto-merging products/xxx/res/ccb/Node.ccbi

CONFLICT (content): Merge conflict in products/xxx/res/ccb/Node.ccbi

修改方法为:

1)手工修改冲突文件;

2)用本地的或者他人的文件替换冲突文件。(注意:ours/theirs的实际作用与字面意义是相反的!!!

a、以本地文件为准:git checkout --theirs products/xxx/res/ccb/Node.ccbi。(The option will keep the original one we had.)

b、以他人提交文件为准:git checkout --ours products/xxx/res/ccb/Node.ccbi。(The option will keep the version of the file that you merged in.)

 

修复后,执行命令:

git add products/xxx/res/ccb/Node.ccbi

git rebase --continue

 

重复上述方法,一直到rebase结束。

中间如果存在以下情况

Applying: Fixed unit test

No changes - did you forget to use 'git add'? If there is nothing left to stage, chances are that something else already introduced the same changes; you might want to skip this patch.

When you have resolved this problem, run "git rebase --continue". If you prefer to skip this patch, run "git rebase --skip" instead. To check out the original branch and stop rebasing, run "git rebase --abort".

这种情况,很可能是你修复 products/xxx/res/ccb/Node.ccbi 的方式为从别处拷贝,而不是手工修复冲突处,所以系统认为文件没有变化。解决方法如下:

执行命令:

git config --global core.trustctime false

 或者手工修改。参考文章

 

如果本地修暂时无法commit的话,则可以采取stash方式更新他人代码。

1、git stash --include-untracked

2、git pull --rebase origin branchname

3、git stash pop

4、修复可能存在的merge文件冲突。

 

采用git pull --rebase,而不是默认的git merge,请参考文章

分享到:
评论

相关推荐

    Git 配置、合并、多人协作、使用手册

    Git最初是由Linux开发者Linus用了仅仅两周时间纯C语言编写而成,在编写完成之后就立马上手接管Linux源代码,不过在此之前Linux是由BitMover公司开发的BitKeeper分布式版本控制系统所管理源代码,它是商业收费的...

    Git基础用法

    Git基础用法 1 一、 Git是什么 1 二、 SVN与Git的最主要的区别 1 三、 安装Git 2 1、 Windows下安装git 2 2、 mac下安装git 2 3、 linux下安装git 3 4、 安装成功后设置 3 ...5、 多人协作 29 五、 git基础命令 33

    git windows64

    Git 64位客户端是免费、开源的分布式版本控制系统,用于Linux内核开发的版本控制工具。Git是简单易学,具有小尺寸以闪电般快速的性能。它胜过SCM工具,如颠覆,...Git最为出色的是它的合并追踪(merge tracing)能力。

    Git代码提交流程及git命令汇总(基础篇)

    如果是多人协作的话,你需要还需要一个线上仓库,用来同步信息。这就是GitHub, BitBucket的工作。 自己用Git有一段时间了,随着项目越来越多,功能分支也随之增加,从简单的基础命令到随心所欲,需要自己不断地去...

    Git命令工作中使用场景总结

    Git命令 -Git配置 -工作流程 -搭建 -文件操作 -忽略文件 -Git分支 -版本回退 -撤销修改 -删除文件 -合并解决冲突 -多人协作 -Rebase

    CoditorX:CoditorX 是一个浏览器内的文本编辑器,供多人协作

    CoditorX 是一个浏览器内的文本编辑器,供多人协作使用。 特征 允许用户注册,每个人都有自己的工作空间 用户可以与具有编辑或查看权限的其他人共享文档 将内容实时同步给具有相同共享文档的用户 降价预览 建筑学 ...

    Intellij IDEA和GitHub版本控制使用说明

    通过Intellij IDEA图形化的使用Git工具; 关联Intellij IDEA和Github账号; 上传项目至Github; 解决代码冲突; 分支创建,合并,删除

    git详解及实用指南之三(分支管理)

    本文来自segmentfault,文章介绍了创建与合并分支、分支的操作管理以及多人协作开发等相关知识。利用分支就可以实现多人开发的伟大模式,从而提高生产效率。在整个GIT之中,主分支(master)主要是作为程序的发布使用...

    GitHub中文语言排行榜图表展示

    通过Git的分支和合并功能,开发者可以轻松地进行团队协作和代码管理。 托管代码:GitHub提供了一个集中式的代码仓库,开发者可以将自己的代码托管在GitHub上。这使得代码对外公开,方便其他开发者浏览、使用和贡献...

    github的使用_动力节点Java学院整理

    早期的Rails多人协作开发团队,在代码提交和协作时遇到了很多的麻烦。为了解决团队之间开发协作困难的这一个问题,创始人Scott和其他3个程序员朋友,决定完善一个基于Git的代码分支管理工具,用来帮助Rails项目...

    Sandbox-1:Virtual World Sandbox 在没有插件的 Web 浏览器中提供多人模拟和协作创作功能

    对 Git 存储库的更改 我们已经更新了这个 repo! 它不再是 VWF 的一个分支,而是它自己的项目。 如果你有这个项目的一个分支,请将你的工作重新...ADL 沙箱是一个基于的应用程序,具有多人模拟和协作创作功能。 整个应

    github-repos:这是一个真实的示例,它使用最新的工具和技术来开发和实现强大的android应用程序,方法是使用一些SOLID原则和Clean Code Architecture实施的新Android Jetpack

    如果在合并之前没有适当的流程来检查和检查代码,或者更重要的是防止不祥的代码进入生产环境,与团队合作将是一个很大的挑战。 版本控制系统可以使与其他开发人员的协作轻松自如的一个重要工具。 最受欢迎的系统是...

Global site tag (gtag.js) - Google Analytics