【发布时间】:2017-03-31 17:17:33
【问题描述】:
我和一位同事在一个项目中结对编程。我们取得了很大的进步,但我们忘记了我们合作的工作。后来,我的队友开始对代码库的另一部分进行一些实验性的更改。然后他提交了那项实验性工作,并在不知不觉中意外地包含了我们一起完成的工作。
我现在有了他的分支的一个分支和我们联合工作的提交。有没有办法遍历在该提交中添加/删除的每一行代码并选择保留或还原它?
【问题讨论】:
标签: git
我和一位同事在一个项目中结对编程。我们取得了很大的进步,但我们忘记了我们合作的工作。后来,我的队友开始对代码库的另一部分进行一些实验性的更改。然后他提交了那项实验性工作,并在不知不觉中意外地包含了我们一起完成的工作。
我现在有了他的分支的一个分支和我们联合工作的提交。有没有办法遍历在该提交中添加/删除的每一行代码并选择保留或还原它?
【问题讨论】:
标签: git
好吧,编辑 git 的历史是不明智的,但如果你必须,你总是可以使用git rebase。仔细阅读与其相关的手册页。我想你需要做的是以下几行:
git rebase -i <commit>
这将启动一个交互式编辑器,其中包含该修订中的提交列表,列出的每个提交的第一列指示应该对给定提交执行什么操作;其中一项操作是编辑。当找到编辑时 git rebase 停止,以便您可以编辑文件或提交消息,修改提交,然后继续变基。
我建议仔细阅读 man git rebase 并首先在测试仓库中尝试命令的动态。
【讨论】: