Git 恢复工作代码,但保留一些更改

Git 恢复工作代码,但保留一些更改,git,version-control,bitbucket,smartgit,Git,Version Control,Bitbucket,Smartgit,我的存储库有两个分支:master和development。最近我在development中添加了一些代码,这破坏了我的整个工作站点,但在同样的commit&push中,我也修复了很多东西。有没有什么方法可以让代码恢复正常工作,但要维护那些可以正常工作的修复程序?我在Windows7上使用SmartGit,回购托管在Bitbucket上 添加有关SmartGit日志的额外信息 方法1(许多或已经推送提交) 使用SmartGit的日志窗口,选择有问题的提交并调用还原 方法2(很少且只有本地提交)

我的存储库有两个分支:
master
development
。最近我在
development
中添加了一些代码,这破坏了我的整个工作站点,但在同样的
commit&push中,我也修复了很多东西。有没有什么方法可以让代码恢复正常工作,但要维护那些可以正常工作的修复程序?我在Windows7上使用SmartGit,回购托管在Bitbucket上

添加有关SmartGit日志的额外信息

方法1(许多或已经推送提交)

使用SmartGit的日志窗口,选择有问题的提交并调用还原

方法2(很少且只有本地提交)

如果受影响的提交数量很小,并且所有提交都尚未推送,我建议使用SmartGit的日志窗口重新创建
development

(1) 签出
开发
上最后一次已知的良好提交。执行此操作时,SmartGit将询问您是否创建新分支:确认并创建,例如
development-2

(2) Cherry Pick
development
development-2
的所有良好承诺。如果存在冲突,请切换到主窗口并在工作树中修复它们

(3) 使用添加分支和(重新添加)
开发
到您当前的负责人提交,即
开发
将与之后的
开发-2
相同


(4) 再次签出
development
,最后删除
development-2

,那么您只想删除一个提交?是否应该只在
主控
开发
中删除它?你在使用git flow吗?@mstrap我不想两个都放弃,现在我正在学习,是的,这是一个真正的项目,但我搞砸了,所以现在我需要在继续之前修复它,不,我没有深入使用
git flow
,我根本不知道git的这一面,只是读了几次,但现在什么都没有。我在显示SmartGit日志窗口的主主题中添加了一个图像,其中标记的提交是我想还原的,它是昨天做的。现在我不确定该签出哪一个,在《家长》中显示的那个(在《阿凡达》之后的右边)?有没有办法获得正确的提交?在所选提交下面的提交。请注意,由于您有很多提交,您也可以在此单次提交上使用Revert。它将导致一个新的提交,与您的违规提交完全相反。这不会像概述的方法那样为您提供一个干净的历史记录,但会更快。我将使用revert,因为另一种方法会带来很多冲突,让我试试这个方法