一 代码拉下来后,首先创建两个本地分之

$repo start master . //仅仅用于同步服务器的修改(此处master名字可以随意定,但是建议定成这样,好记忆)

$repo start work .  //仅仅用于模块的修改

二 修改代码

使当前处于"work"分支(git checkout work)

创建两个文件用于新的提交:

产生了一个新的提交:

三 先切换到本地master分支,再合入本地"work"分支的修改到master分支。

A 切换到master分支后,首先运行"repo sync"命令使代码同步到最新状态

B 通过"git reflog"查看提交记录,找到在本地"work"分支提交的"HASH ID"

$git reflog

C 运行"git cherry-pick"命令,将"work"分支的提交合入到"master"分支

$git cherry-pick 8d5733b

D 本地"work"分支的任务已完成,删除"work"分支

$git branch -D work

E 然后在"master"分支上作git push操作。

下次继续修改时,重新创建本地"work"分支,继续上面的流程。

工作原理:

  • 本地创建的"master"分支仅仅用于同步和提交代码
  • 本地创建的"work"分支仅仅用于修改代码
  • 通过git reflog查看提交记录寻找HASH ID
  • 通过git cherry-pick合入提交

Git 创建两个“本地分支”协同工作的更多相关文章

  1. git创建和删除远程分支

    问题描述:           使用git创建和删除远程分支 问题解决:              (1)git创建本地分支 注:            如上所示,使用命令 git branch -a ...

  2. git创建与管理远程分支【转】

    本文转载自:http://blog.chinaunix.net/uid-9398085-id-3164754.html git创建与管理远程分支 1.远程分支就是本地分支push到服务器上的时候产生的 ...

  3. git使用小结(本地分支与远程分支、git命令)

    git git 是一个版本管理系统(VCS),可以在任何时间点,将文档的状态作为一份更新记录保存起来,并且在任意的时间点,恢复更新记录 版本管理 版本管理是一种记录文件变化的方式,方便查阅特定版本号的 ...

  4. git push -u origin master和git push <远程主机名> <本地分支名>:<远程分支名>作用

    git push git push命令用于将本地分支的更新,推送到远程主机.它的格式与git pull命令相仿. $ git push <远程主机名> <本地分支名>:< ...

  5. git 使用merge 对本地分支进行合并 并进行代码提交的流程

    1.只有当将修改内容commit后 该修改才完全生效,进行merge前需要将两个分支修改的内容都进行commit 2.假设本地两个分支   用于开发的分支:dev    用于同步远程仓库的分支:mas ...

  6. Git创建合并和删除分支

    创建并切换分支 git checkout命令加上-b参数表示创建并切换分支,以下为创建并切换到dev分支: 相当于先通过 $ git branch dev 命令创建dev分支,然后 $ git che ...

  7. git 创建新项目 本地仓库和远程仓库的合并

    1.$ git pull origin master --allow-unrelated-histories 告诉系统允许合并不相关历史的内容 2.git branch --set-upstream ...

  8. git 使用远程分支覆盖本地分支(重置本地分支)

    1 丢弃本地变更 重置为远端分支内容 git reset --hard origin/branchName 如 git reset --hard origin/F_AssetItem

  9. git 删除远程和本地分支

    RenGuoQiang@PC-RENGUOQIANG MINGW64 /d/zgg/zgg-crm (dev-rgq-userworkstatus) $ git push origin --delet ...

随机推荐

  1. 二维数组按某个键值排序 FOR PHP

    $arr=[ array( 'name'=>'小坏龙', 'age'=>28 ), array( 'name'=>'小坏龙2', 'age'=>14 ), array( 'na ...

  2. Vue页面跳转$router.push 的用法

    vue2.0在使用的过程中, .vue文件之间的跳转,在template中的常见写法是: <router-link to="/miniCard/statement/horizon&qu ...

  3. 阿里云centos7安装桌面环境

    centos7. 1.安装X11.yum groupinstall "X Window System". 2.安装gnome. 全安装:yum groupinstall -y &q ...

  4. .net 图片上传

      /// <summary>      /// asp.net上传图片并生成缩略图      /// </summary>      /// <param name=& ...

  5. Objective-C语法之nonatomic和atomic之间的区别

    atomic: 保证 setter/getter 这两个方法的一个原语操作.如果有多个线程同时调用 setter 的话,不会出现某一个线程执行  setter 全部语句之前,另一个线程开始执行 set ...

  6. 使用DataSource绑定一维数组时,DataTextField只需绑定空字符串

    方法定义: public static void InitDropDownList(DropDownList ddl, bool isAddTopItem, DropDownList ddlSub, ...

  7. 【ML】人脸识别

    https://github.com/colipso/face_recognition https://medium.com/@ageitgey/machine-learning-is-fun-par ...

  8. 6 Django系列之关于models的sql语句日常用法总结

    preface Django提供了强大的ORM,我们可以通过ORM快速的写出我们想要对数据做什么样操作的代码.下面就说说我在日常工作中的用法: 外键关联精确查询 应用场景:表A host字段关联到了表 ...

  9. Linux安装bundle

    安装bundle文件的方法: cd 到文件目录再用sudo chmod +x XXXXXXX.bundle 加权限最后 ./XXXXXXXX.bundle 就行了. 第一步:sudo chmod +x ...

  10. Linux+Redis实战教程_Linux上安装jdk,mysql,tomcat_安装jdk

    1. Linux上安装jdk,mysql,tomcat[重点] Windows 控制面板 添加/卸载程序 进行程序的安装.更新.卸载.查看 rpm命令:相当于windows的添加/卸载程序 进行程序的 ...