首页
学习
活动
专区
圈层
工具
发布

Git单文件多次提交的cherry-pick

曾几何时,你发现你做的项目经常有甲方爸爸需要xxx定制版 ---- “一堆定制版,你让我们怎么维护。我们是有骨气的程序员,安能摧眉折腰事权贵。”...cherry-pick可能会引入一些不必要的修改。...git cherry-pick --stdin 这个是一个管道命令,实际上执行了2条git命令 我们看第一条 git rev-list [-num] --reverse master -- Sample.cs...他是说将Sample.cs在master上的相关提交,选取最近的(num)个提交, | git cherry-pick --stdin 说的是从标准输入设备中读取上一条命名输出的git提交号,进行cherry-pick...这样所有需要的提交就cherry-pick过来了 ---- 本文会经常更新,请阅读原文: https://xinyuehtx.github.io/post/Git%E5%8D%95%E6%96%87%

1.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Git知识总览(五) Git中的merge、rebase、cherry-pick以及交互式rebase

    上篇博客聊了《git分支管理之rebase 以及 cherry-pick相关操作》本篇博客我们就以Learning Git中的关卡进行展开。...从下方的目标中我们可以看出 local 分支的撤销操作是使用的 git reset 操作的, 因为是在本地来向上移动的,进行reset后是不可以push到远端的。...1. cherry-pick 下方我们来看一下cherry-pick这一关,下方我们需要将 bugFix 分支上的 C3 、side 分支上的 C4 以及another分支上的C7通过cherry-pick...下方主要还是使用了cherry-pick来达到我们的目标的,主要还是一个命令的使用 , 在 master 分支上执行 git cherry-pick C3 C4 C7, 可以将C3 C4 C7这三个提交摘到...2、交互式rebase 解析我们来使用交互式rebase来做节点的迁移,当然下方的操作也是可以使用cherry-pick来完成的。左边是我们要完成的目标,右边则是初始化状态。

    23.7K63

    Git Flow 的正确使用姿势

    / 官方给出的发布流程中有五个分支,其中除了develop和master两个分支是永久性存在的,其它的分支都是临时存在的,发布上线或者修复bug之后,都会删除。...四、版本发布流程 正如齐白石老先生说的:“学我者生,像我者死”一样,Git flow分支模型确实非常优秀,可以解决很多问题,但是我们需要跟我们的实际项目进行适配。...这样的好处是可以有效的防止develop分支包含多个feature branches的功能,难以提取对应版本发布到release branches分支中。...release预发布测试bug是否正确被修复,测试通过则将release分支发布到master分支上线。 发布成功之后,则将bug分支删除,一般情况下,bug分支不需要发布到远程仓库中。...虽然特殊问题需要特殊处理,但是这种情况发生概率极低,就算发生了也有解决方案。所以总体来说当前的发布流程可以满足大多数情况。

    1.9K21

    Git代码提交的正确姿势

    之前我已经写了一篇关于Git的文章了,里面主要的是介绍了怎么安装和部署到您的项目里面,今天简单的说一下,具体的提交代码的步骤,因为必经安装结束和部署结束是需要使用的,不是拿来看的,ok废话不说,说步骤:...1、首先您的项目是已经属于Git项目了,这个是可以看出来的,例如: ?...这个项目就是属于一个Git项目,每一个文件和文件夹上面都会有一个类似于小盒子的logo。 2、这个时候您是需要更改文件的,不过不要着急,因为这个时候还不是时候,您需要先建一个分支,为什么呢?...是可以的,但是一般的开发都不会是一个人,git也是为团队更好的管理代码出现的,那么如果是很多人时候,这个时候您直接改的源文件,如果别人也动了这个源文件,那么你提交的时候按照谁的来?...这个时候机会报异常,异常的解释是文件冲突,所以您需要建一个分支,ok,建分支: ? ? 这个时候您可以编辑您的文件了,怎么改都没事。

    67230

    Git 回滚代码的正确姿势git revert 和 git reset 的区别

    并不适合阅读的个人文档。 git revert 和 git reset 的区别 先看图: sourceTree 中 revert 译为提交回滚,作用为忽略你指定的版本,然后提交一个新的版本。...新的版本中已近删除了你所指定的版本。 reset 为 重置到这次提交,将内容重置到指定的版本。git reset 命令后面是需要加2种参数的:–-hard 和 –-soft。...这条命令默认情况下是 -–soft。 执行上述命令时,这该条commit号之 后(时间作为参考点)的所有commit的修改都会退回到git缓冲区中。...代码回退 默认参数 -soft,所有commit的修改都会退回到git缓冲区 参数--hard,所有commit的修改直接丢弃 $ git reset --hard HEAD^ 回退到上个版本...$ git reset --hard commit_id 退到/进到 指定commit_id 推送到远程 $ git push origin HEAD --force 可以吃的后悔药->版本穿梭

    3.1K80

    Git Merge vs. Git Rebase: 选择正确的合并策略

    虽然两者都是用于合并代码的强大工具,但它们在不同情境下的适用性和影响各不相同。本文旨在深入探讨这两种命令,并指导何时以及如何正确使用它们。...Git Merge 概述 git merge 是一种非破坏性操作,用于将两个分支的更改合并到一起。它通过创建一个新的“合并提交”(G'),将两个分支的历史联系起来。...使用场景 git merge 特别适用于团队协作环境,其中保留完整的历史记录和明确的合并点是有价值的。...在决定使用 git merge 还是 git rebase 时,重要的是要考虑你的工作环境和团队的工作流程: 在私人或尚未公开的特性分支上,尤其是在准备进行拉取请求(Pull Request)之前, git...如果你想保持项目历史的完整性并且希望清楚地显示所有更改的来源,那么 git merge 是更好的选择。

    1.9K10

    git提交代码的正确步骤命令

    当你忘记修改了哪些文件的时候可以使用git status来查看当前状态,红色的字体显示的就是你修改的文件;git status提交代码2、提交代码第二步:git add ....或者git add xxx;如图1、如果你git status查看了当前状态发现都是你修改过的文件,都要提交,那么你可以直接使用git add .就可以把你的内容全部添加到本地git缓存区中。...如图2、如果你git status查看了当前状态发现有部分文件你不想提交,那么就使用git add xxx(上图中的红色文字的文件链接) 就可以提交部分文件到本地git缓存区提交代码第三步:git commit...-m "提交代码" 推送修改到本地git库中;分支合并提交代码第四步:git pull 取回远程主机某个分支的更新,再与本地的指定分支合并;git pull 提交代码提交代码第五步:git push 把当前提交到git本地仓库的代码推送到远程主机的某个远程分之上。

    45810

    Git示例教程 - 有关Git命令无法正确显示中文路径的问题

    相关命令: # 设置Git让其在输出路径时正确显示中文 git config --global core.quotePath false # 如果是Mac用户,在执行了上述命令后还是不行 # 可以再看下...Git的 core.precomposeUnicode 这个参数 情景模拟: 先用下面的命令创建一个测试用的Git仓库: # 创建一个空的Git仓库 mkdir repo cd repo git init...273\266\345\220\215.txt" ‍ 由上可见,我们新添加的文件并没有以中文正确显示。...下面我们再执行下文章开始时介绍的命令设置一下Git: $ git config --global core.quotePath false # 设置Git让其正确显示中文路径 $ git status...) 中文文件名.txt 看到了吧,在我们设置了Git的 core.quotePath 参数后,中文路径就可以正常显示了。

    2.4K20

    Git 是如何工作的

    Git是如何工作的 http://zoo.zhengcaiyun.cn/blog/article/git-work 前言 Git 是一个分布式的版本控制系统,这意味着它使用多个本地存储库,包括一个集中式存储库和服务器...Git 的好处在于,你可以在整个职业生涯中都不知道 Git 内部是如何工作的,但你依然可以和它相处得很好。...Git 的特性 区别 SVN 是集中式版本控制系统,它的版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,只有一台服务器来维护和控制代码,所以首先要从中央服务器那里得到最新的版本,干完活后需要把自己做完的活推送到中央服务器...且因为 Git 在本地磁盘上就保存着所有当前项目的历史更新,所以处理起来速度飞快。 Git 实际上是如何工作的 当我们要去探究 Git 是如何工作的时候我们该从何处下手呢?...解决冲突的办法无非是二者选其一或者由你手动整合到一起。但是 Git 是如何进行 Diff 的呢?

    2.7K40

    什么是学习编程的正确方法

    —— 安东·斯普拉尔 ” 无论你的目标职业是软件开发人员、web开发人员还是数据科学家,所有基于IT的职业都有一个共同点,那就是编程。 在本文中,我将引导你完成5个步骤。我相信这是学习编程的正确方法。...首先常用自然语言的词汇解决问题。 用多种输入用例测试解决方案。一旦想出了一个解决方案,就将它用于不同情形的实际案例中,看看你的解决方案是否能满足所有的情况。 每天都练习解决问题。...学习正确的思维方法以及学习如何解决编程问题,这将有助于减少你在将来解决问题时所花费的时间。它还将帮助你更快、更高效地学习多种编程语言。...这就是复杂性理论所描述的特征。虽然问题是相同的,但可以提出不同的解决方案,并非所有的解决方案都具有相同的效果。选择最佳解决方案是每个开发人员都需要掌握的技能,而复杂性理论就是掌握这一技能的基础。...虽然学习编程的方式很多,在我看来,正确的路径是: 培养良好的编程直觉(解决问题的技能)。 学习算法和数据结构。 至少学习复杂性理论的基础知识。 首先用伪代码实现解决方案。 学习某些编程语言的语法。

    1.7K10

    收好这份 Git 命令应急手册,关键时刻可保你一命

    你们可以把这篇文章马住或分享给同事,以备不时之需,毕竟不怕神对手,就怕猪队友~ 下面切入正题,跟大家聊下在 Git 的使用过程中,经常会出现哪些问题,以及应该对应使用哪种解决方案。...reset HEAD~ --hard 需要注意的是,上面的代码只会切换到最后一条提交记录上,如果你已跑到其它提交记录上怎么办?...需要注意的是,上面的代码只对本地仓库有效,如果你已经把代码提交到远程仓库上,那就得跟队友商量下解决方案了。 啥?我就是你队友?...我们先撤销最后一次提交,但保留变更代码: $ git reset HEAD~ --soft $ git stash 再切到你想要提交的正确分支(name-of-the-correct-branch)上,...首先,切换到正确的分支上: $ git checkout name-of-the-correct-branch 然后使用 cherry-pick 来获取最新一条提交记录: $ git cherry-pick

    45340

    如何帮助女神处理Git使用的问题

    reset HEAD~ --hard 需要注意的是,上面的代码只会切换到最后一条提交记录上,如果你已跑到其它提交记录上怎么办?...需要注意的是,上面的代码只对本地仓库有效,如果你已经把代码提交到远程仓库上,那就得跟队友商量下解决方案了。 啥?我就是你队友?这可真让我受宠若惊!...我们先撤销最后一次提交,但保留变更代码: $ git reset HEAD~ --soft $ git stash 再切到你想要提交的正确分支(name-of-the-correct-branch)上,...首先,切换到正确的分支上: $ git checkout name-of-the-correct-branch 然后使用 cherry-pick 来获取最新一条提交记录: $ git cherry-pick...解决方案很简单,咱们要么把文件加入到暂存区,要么就直接使用下面这条命令: $ git diff --staged 这样,就可以看到未存入暂存区文件的 diff 效果啦。 女神:这项目怎么这么乱!

    91220
    领券