如何将错误地添加到分支/提交的文件移动到Git中的不同分支/提交?

时间:2015-06-11 15:09:55

标签: git version-control git-branch-sculpting

enter image description here

我在分支driver_06_05_2015.view中有一个文件(ServiceProvisionSpecialist_06_08_2015),它不应该存在并且错误地提交到该分支,即使它应该在driver_06_05_2015分支中。

有没有办法可以通过重写历史记录将文件(而不是整个提交)移动到driver_06_05_2015分支(我想当人们说它引用了rebase命令时......)

1 个答案:

答案 0 :(得分:1)

更新:现在使用rebase,因为我看到你需要编辑倒数第二次提交。

您可以使用交互式rebase,并将其重新绑定到您要编辑的提交的父提交上。在这种情况下,

git rebase -i HEAD~2

在编辑器中,将pick替换为添加了您要删除的文件的提交行上的edit。然后关闭编辑器。

交互式rebase将在该提交处停止,现在您可以编辑:

git rm --cached socialMediaGenerator/src/driver_06_05_2015.view
git commit --amend
git rebase --continue

--cached选项允许您从Git中删除文件,但将其保留在磁盘上。 然后你可以将它添加到另一个分支中:

git checkout driver_06_05_2015
git add socialMediaGenerator/src/driver_06_05_2015.view
git commit -m "Add file driver_06_05_2015.view"