前提

本地有2个分支,一个是master,还有一个是local

master 默认追踪origin/master

local 通过git branch -u origin/master来映射

开发的时候,在local上,进行开发。master仅用于和remote进行同步

备注:origin只是一个remote的名字而已,一个repository可以和多个remote进行关联

情况1.早上到公司后,进行代码同步,本地的commit暂时不需要push到服务器

因为处于开发环境,所以,当前处于local分支

1.首先确认git status,确保本地的clean的状态

2.git fetch origin master:master

3.git status

3.1如果提示告诉你,可以fast-forward

3.1.1      git merge master

这种情况,只在你本地没有commit的时候才发生

3.2 local 和master发生了diverged

$ git status
On branch local
Your branch and 'origin/master' have diverged,
and have 1 and 10 different commits each, respectively.
(use "git pull" to merge the remote branch into yours)
nothing to commit, working tree clean

3.2.1    git rebase master

$ git rebase master
First, rewinding head to replay your work on top of it...
Applying: local configuration

如果遇到冲突的话,用TortoiseGit处理好,Mark文件为resolved。然后回到命令行,git rebase --continue

4.可以继续开发了

其中第2步,参考自

https://stackoverflow.com/questions/18857570/git-pull-without-checkout

git fetch <remote> <srcBranch>:<destBranch>

情况2.local 分支有一些*.config 文件进行了提交,之后,还有一些有效的需要push到服务器的commit

当前处于local分支

1.git status确保clean状态

$ git status
On branch local
nothing to commit, working tree clean

2.git checkout master

3.git pull

4.使用TortoiseGit进行cherry-pick,将local分支上有效的commit拿到master分支

5.git push

5.1push失败

在你pull之后,push之前,可能又有人往服务器push了新的commit

处理方法,git fetch同步到最新的代码后,rebase origin/master。

然后再次尝试push

6.使用TortoiseGit进行cherry-pick,将local分支上的config相关的commit拿到master分支上

7.使用TortoiseGit ,reset master 分支到origin/master

8.git checkout local

9.使用TortoiseGit,将local指向新生成的config的commit

10.可以继续开发了

11. remark

上面使用的reset都是reset --hard,所以第一步的时候,需要确保git status是clean的状态

情况3.新的处理方式,和服务器进行代码交互

前提,在local分支进行代码开发,master分支用来和服务器同步。当前处于local分支

3.1 git checkout master

3.2 git pull

3.3 使用TortoiseGit进行cherry-pick

3.4 git push

3.5 git rebase master local

此步骤,最新的git for windows,已经可以自动跳过内容相同的commit。

此命令的意思,以master作为base,然后把local上的代码拼接过去

此命令,执行完成后,会自动切换到local

参考

cherry-pick in TortoiseGit

注意

因为涉及到local和master两个分支,所以在TortoiseGit查看日志的界面,务必勾选上左下角的All Branches。

最好能仔细看完progit第三章,深入理解branch的概念,branch仅仅是一个指向commit的指针。

Git的日常处理流程的更多相关文章

  1. git概念及工作流程详解

    git概念及工作流程详解 既然我们已经把gitlab安装完毕[当然这是非必要条件],我们就可以使用git来管理自己的项目了,前文也多多少少提及到git的基本命令,本文就先简单对比下SVN与git的区别 ...

  2. Git基本概念,流程,分支,标签及常用命令

    Git基本概念,流程,分支,标签及常用命令 Git一张图 Git基本概念 仓库(Repository) 分支(Branch) Git工作流程 Git分支管理(branch) 列出分支 删除分支 分支合 ...

  3. 从零开始使用git第二篇:git的日常操作

    从零开始使用git 第二篇:git的日常操作 第一篇:从零开始使用git第一篇:下载安装配置 第二篇:从零开始使用git第二篇:git实践操作 第三篇:从零开始使用git第三篇:git撤销操作.分支操 ...

  4. 如何让Git适应敏捷开发流程?

    一旦涉及到版本控制系统,Git实际上代表敏捷开发的水平.Git作为一款强大的开源系统,有较强的灵活性,可以按需匹配任何开发团队的工作流程.而这种分布式相比较集中式来说,可以赋予系统更好的性能特征,且允 ...

  5. Jenkins自动化部署服务器及git 提交及git tag标签版本更新流程,超详细!

    工作中部署的项目和服务器较多时就用上了Jenkins进行自动部署 优点 不用在连接单独的服务器进行更新项目,再启动项目服务的操作了 更新部署都是自动的,比较方便.适合大批量的部署 一.git流程部分 ...

  6. git的日常使用(补课)

    使用git的一些反响 如果在github上做一个仓库来使用的话... 首先手动在github上创建一个空的仓库,默认没有任何东西的 使用git的命令 git pull 创建的github仓库地址 能把 ...

  7. 关于git你日常工作中会用到的一些东西

    前言 git是一个版本控制工具, 版本控制主要的好处有三点: 从当前版本回退到任意版本 查看历史版本 对比两个版本差异 git 相关术语 repository 仓库 branch 分支 summary ...

  8. Git和Code Review流程

    Code Review流程1.根据开发任务,建立git分支, 分支名称模式为feature/任务名,比如关于API相关的一项任务,建立分支feature/api.git checkout -b fea ...

  9. git 一般的开发流程中的代码管理

    一般的开发流程中的代码管理 1. 从版本库中下载代码 git clone ssh://wenbin@192.168.1.3:29418/mustang-web 2. 针对某个feature(比如ins ...

随机推荐

  1. 状压DP复习

    深感自己姿势水平之蒻……一直都不是很会状压DP,NOIP又特别喜欢考,就来复习一发…… 题目来源 Orz sqzmz T1 [BZOJ4197][NOI2015]寿司晚宴 (做过)质因数分解最大的质因 ...

  2. [codevs1048]石子归并&[codevs2102][洛谷P1880]石子归并加强版

    codevs1048: 题目大意:有n堆石子排成一列,每次可合并相邻两堆,代价为两堆的重量之和,求把他们合并成一堆的最小代价. 解题思路:经典区间dp.设$f[i][j]$表示合并i~j的石子需要的最 ...

  3. 紫书 例题8-19 UVa 12265 (扫描法+单调栈)

    首先可以用扫描法处理出一个height数组, 来保存从当前行开始, 每一个格子可以向上延伸的最大长度. 这种"延伸"的问题用扫描法, 因为往往这个时候可以利用前一次的结果来更新当前 ...

  4. iOS技术栈-Swift版

    在网上没找到基于Swift的技术栈介绍,或者技术已经不适用,所以自己画了一个,后面的博客中会重新整理基于Swfit的UI控件介绍和常用第三方库地图

  5. Regular Expressions Syntax

    https://support.syslogwatcher.com/support/solutions/articles/8000033627-regular-expressions-syntax

  6. swift入门-实现简单的登录界面

    // // AppDelegate.swift // UIWindow import UIKit @UIApplicationMain class AppDelegate: UIResponder, ...

  7. cocos2dx下的A星算法

    这是我依据这篇博文http://hi.baidu.com/wsapyoemdfacmqr/item/bdfb5c0a74c904d01ef0466d.来在cocos2dx上编写.这是终于的效果图: 红 ...

  8. Unity Image Effect

    1.工作原理 Image Effect是运用于一个Camera,将Camera视见体最终看到的二维图像内容作为一个2DTexture传递给一个Shader, 然后在Shader的Fragment渲染阶 ...

  9. 1.Windows7下安装与破解IntelliJ IDEA2017

    转自:https://www.cnblogs.com/justuntil/p/7245170.html IDEA 全称 IntelliJ IDEA,是Java语言开发的集成环境,IntelliJ在业界 ...

  10. 模拟select样式,自定义下拉列表为树结构

    效果图如下: 首先,需要用到的库jQuery,zTree(官网API:http://www.treejs.cn/v3/api.php) 注意:因为zTree是基于jQuery的,所以应该先引入jQue ...