- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
情况:从 A
的 Master 开始,我在 B
分支并进行了一些更改,然后将该分支 merge 回 (C)
。在进行了更多更改后,我在 D
但发现我需要部署代码,而无需在分支中发生更改。如果我不手动 merge 它就好了。
A_______C___D
\ /
\_B_/
首先,我想知道我应该从这里做什么来部署代码,就好像 merge 从未发生过一样。注意:在分支中编辑过的相同文件都没有在主控中编辑过。
其次...
我没有时间想出最好的方法来处理这个问题,所以我删除了分支添加的文件,并手动还原了分支中所做的一些编辑,然后提交了部署结果( F
)
A_______C___D___F
\ /
\_B_/
我希望能够继续开发分支并将 master 的任何更改 merge 到其中以使其保持最新,但如果我这样做,我创建 F
所做的事情将是 merge 并导致文件被删除并恢复编辑。处理此问题的最佳方法是什么?
最佳答案
您可以使用 rebase 一步完成:
git rebase --onto A C D
我刚刚对此进行了测试,并得到了适当的结果:
$ edit test.txt
$ git add .
$ git commit -mA
$ git checkout -b the_branch
$ edit test.txt
$ git commit -a -mB
$ git checkout master
$ git merge master the_branch --no-ff
$ edit test.txt
$ git commit -a -mD
从这里你有你描述的情况。然后:
$ git rebase --onto <SHA1-for-A> <SHA1-for-C> master
rebases 从 C(排除)提交到 master,再到 A。我需要解决一些冲突,因为我在 B 和 D 中的相同位置进行了修改,但我认为你不会。
_D'
/
/
A_______C___D
\ /
\_B_/
关于 git rebase --onto
的文档,这或多或少是你的情况: http://git-scm.com/docs/git-rebase
如果你有:
A_______C___D___F
\ /
\_B_/
,那么你现在有:
_D'___F'_(master)
/
/
A_______C___D___F
\ /
\_B_/(the_branch)
从这里开始,将 master 中的更改 merge 到分支中很容易。完全丢弃提交 F'
。
$ git checkout master # if you were not here already
$ git branch old_fix # if you want to be able to return to F' later
$ git reset --hard <SHA1-to-D'>
在上面的命令之后你有:
(master)
/
_D'___F'_(old_fix)
/
/
A_______C___D___F
\ /
\_B_/(the_branch)
将 master 的更新 merge 到 the_branch 中:
$ git checkout the_branch
$ git merge master
...并解决冲突。
关于Git:如何将 "undo" merge ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4434787/
为了重置我的最后一次提交,我这样做了: git reset --soft HEAD^ 但是我做了太多次了。现在我想往回走几步。这可能吗? 另外,我有一个开发人员在一个生产应用程序上提取和 merge
在 Vim 中,我做了太多撤消操作。我如何撤消此操作(即重做)? 最佳答案 Ctrl+r 关于vim - 如何在 Vim 中重做(即 "undo undo")?,我们在Stack Overflow上找
在过去的 3 周里,我一直在尝试能够以编程方式调用撤消命令。我最近的尝试涉及从 C# 调用 LISP 代码。现在我的 C# 方法看起来像这样 [CommandMethod("TestLispFromC
如何使用 ctrl+z (ApplicationCommand.Undo) 键来实现我们自己的撤消方法,而不是使用 WPF 中的默认命令。基本上用我们自己的撤消方法替换默认命令。 例如:我想将 ctr
在 Word 窗口中,执行诸如键入、格式化字体、段落...以确保撤消列表不为空,然后通过单击功能区上的任何样式来更改某些文本的样式。撤消列表中会出现一个名为“应用快速样式”的条目。然后运行宏,如: S
我有一个在“Worksheet_SelectionChange” 事件上触发的宏。宏验证一列的数据,如果错误则更改单元格的背景颜色。 问题是运行宏后,它会清除所有文档的更改历史记录(Ctrl Z),甚
有什么方法可以撤销 Mikephil 图表上的选择?当我在条形图中选择一个值时,我有一个应用程序会打开一个 Activity 。这很好用,但是,当我返回到包含图表的 Activity 时,选择仍然存在
完成此任务的最佳做法是什么: 我有提交: A -- B -- C 提交 B 包括: file1.java file2.java icon.png 我想撤消对 file1 和 file2 的更改,但不想
我刚刚用 git branch -D branchName 进行了一些我需要的实验性更改删除了错误的分支。 如何恢复分支? 最佳答案 您可以使用 git reflog找到分支最后一次提交的 SHA1。
所以我正在使用 CodeMirror,我想要一种方法来从 undo 状态中省略某些编辑。特别是,我遇到了一种情况,我想要一次击键 替换部分镜像文本并 自动缩进新区域 天真地这样做意味着使用击键,然后点
我正在编写指令,它将像这样: 允许编辑一些文本(使用内容可编辑) 在失去焦点时,它应该将其值保存到模型(最近观看并保存到 DB) 应该有按钮“撤消”可以恢复更改。 我的实现是:http://plnkr
我听说纯函数式数据结构的好处之一是您可以免费获得撤消/重做操作。有人可以解释为什么吗?我不明白为什么在函数式语言中添加撤消/重做更容易。 例如,假设我有以下队列实现: data Queue a = Q
我有一个内置于 iPhone 核心数据中的数据模型。我还有一个适用于该模型的 NSUndoManager 。问题是,我不想在撤消过程中影响实体上的某些属性,而我确实希望回滚其他属性。在不彻底改变事情的
令我惊讶的是,我找不到有关该主题的任何信息,但是搜索此类内容总是会产生很多相似但不相关的内容... 无论如何,一些注意事项以避免误解:- 问题与 HTML、HTTP、Javascript 和浏览器行为
这个问题已经有答案了: 已关闭13 年前。 Possible Duplicate: Design Pattern for Undo Engine 一般来说,您如何处理在应用程序中支持“撤消”功能?我曾
我一直在问很多有关事件溯源的问题,因此对此表示歉意,但我想从一开始就解决这个问题。 设置 | p_key | invoice_id | EmployeeId | Event type |
我从主分支在 Visual Studio 中做了一些代码更改,并试图在 TortoiseHG 的新分支中提交更改,但显然我不小心将更正提交到主分支。我没有将更改推送到远程存储库,但如果我尝试对更改执行
有没有办法在单击后退按钮时“撤消”由 jQuery 执行的函数?例如,我要执行的函数名为 doSomething: function doSomething(button) { ...cli
假设我有这个迁移: class MigrateStuff false add_index :contacts, :receive_newsletter for t in SomeOt
现状 我有一个使用 MVVM 和 NHibernate 的 WPF 应用程序。我有一个包含所有客户的列表框的主/详细信息窗口,列表框的 selectedItem 是用于在详细信息屏幕中显示客户详细信息
我是一名优秀的程序员,十分优秀!