codecamp

A3.8 补丁

补丁

Git 中的一些命令是以引入的变更即提交这样的概念为中心的,这样一系列的提交,就是一系列的补丁。 这些命令以这样的方式来管理你的分支。

git cherry-pick

git cherry-pick 命令用来获得在单个提交中引入的变更,然后尝试将作为一个新的提交引入到你当前分支上。 从一个分支单独一个或者两个提交而不是合并整个分支的所有变更是非常有用的。

在 变基与拣选工作流 一节中描述和演示了 Cherry picking

git rebase

git rebase 命令基本是是一个自动化的 cherry-pick 命令。 它计算出一系列的提交,然后再以它们在其他地方以同样的顺序一个一个的 cherry-picks 出它们。

在 变基 一章中详细提到了此命令,包括与已经公开的分支的变基所涉及的协作问题。

在 替换 中我们在一个分离历史记录到两个单独的仓库的示例中实践了此命令,同时使用了 --onto选项。

在 Rerere 一节中,我们研究了在变基时遇到的合并冲突的问题。

在 修改多个提交信息 一节中,我们也结合 -i 选项将其用于交互式的脚本模式。

git revert

git revert 命令本质上就是一个逆向的 git cherry-pick 操作。 它将你提交中的变更的以完全相反的方式的应用到一个新创建的提交中,本质上就是撤销或者倒转。

我们在 还原提交 一节中使用此命令来撤销一个合并提交。

A3.7 调试
A3.9 邮件
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

B. 将 Git 嵌入你的应用

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }