标签: undo

有没有办法从意外的"svn还原"中恢复?

今天早上我设法通过以下方式射击自己:

  1. 开始着手改变我的项目
  2. 对一堆文件进行了大量编辑
  3. 意识到我的方法都是错的,我需要重新开始
  4. cd到我的项目的顶层并做了一个"svn --recursive revert".将我的本地沙箱恢复到其更改前的状态.
  5. 当我意识到在我当地的沙箱中有许多其他未完成的变化时,我惊恐万分,我刚刚抹掉了所有这些变化.(上个星期五svn服务器已经关闭,所以我无法检查它们,周末我忘记了它们)

幸运的是,在这种情况下,我在星期五离开工作之前做了一个"svn diff> temp.txt",而temp.txt文件仍然在我的硬盘上,所以我能够将该文件输入"补丁"并恢复我的失去了变化.

但是对于我将来的参考(即下次我犯同样的愚蠢错误)...有没有办法告诉svn撤消"svn revert"?svn是否在任何地方保留本地/未签入差异的备份?

svn undo revert

92
推荐指数
6
解决办法
5万
查看次数

使用Vim的持久撤消?

Vim 7.3的一个新功能是"持久性撤销",它允许在退出缓冲区时将非文本保存到文件中.

不幸的是,我还没能完全启用它,或者我必须使用它错了.这是我到目前为止所尝试的:

我在〜/ .vimrc中添加了以下内容

set undofile                " Save undos after file closes
set undodir=$HOME/.vim/undo " where to save undo histories
set undolevels=1000         " How many undos
set undoreload=10000        " number of lines to save for undo
Run Code Online (Sandbox Code Playgroud)

在此之后,我应该能够打开任何文件,编辑它,然后保存关闭它,当我再次打开它时,我应该能够撤消/重做,好像我永远不会离开.不幸的是,情况似乎并非如此,因为从未写过任何无人事务所.

笔记:

  1. 我在Win 7上使用来自Vim的Vim 7.3而没有奶油项目.持久撤消是烘焙的.

  2. $ HOME/.vim/undo存在于我的文件系统中

vim undo undo-redo

91
推荐指数
3
解决办法
3万
查看次数

如何在vi/vim中返回(ctrl + z)

在普通的文本编辑器中[对Vim充分尊重]有一个快捷方式Ctrl+ Z当你做了一些讨厌的东西并希望返回到以前版本的文本时.喜欢Word中的BACK按钮.我想知道你怎么能在Vim中实现这种行为.

vi vim undo back undo-redo

83
推荐指数
4
解决办法
13万
查看次数

如何在mercurial中止合并?

我搞砸了合并.我想恢复然后再试一次.
有没有办法在提交之前恢复合并?

hg revert没有做我想做的事情,它只会恢复文件的文本.Mercurial中止了我合并的第二次尝试并抱怨原始合并仍未提交.

有没有办法在hg merge命令之后但在提交之前撤消合并?

version-control merge mercurial dvcs undo

80
推荐指数
2
解决办法
3万
查看次数

Git陷入错误的分支

我和其他开发人员一直在合并并将我们的工作推向一个名为"工具"的非主分支.这样,我们没有影响团队的其他成员.我的主题分支叫做DPM-93,我的git工作流就是这个.

# do some work
git checkout DPM-93
git commit -m "did some work"

# catch up
git checkout toolwork
git pull origin toolwork

# rebase my topic branch
git checkout DPM-93
git rebase toolwork

# merge and push my changes
git checkout toolwork
git merge --no-ff DPM-93
git push origin toolwork
Run Code Online (Sandbox Code Playgroud)

在我意外发出这些git命令之前,这大部分工作正常

git checkout toolwork
git pull origin master
Run Code Online (Sandbox Code Playgroud)

那时,一堆新东西出现在分支工具中,我不知道如何摆脱它删除我的工作区并重新克隆回购.

在拉动之前有没有办法将其支持到状态?

git branch pull undo

69
推荐指数
4
解决办法
3万
查看次数

有没有办法解除"git revert head"的影响?

我不小心对我的存储库中的错误分支运行命令 - 是否有办法撤消此更改?

git undo revert

67
推荐指数
2
解决办法
5万
查看次数

在GIT中撤消删除

我做了一件非常愚蠢的事.我使用git commit(文件编辑+新文件)(C)进行了提交.然后我修改了最后一次提交.然后我使用递归删除所有文件(!)git rm -r 然后我做了另一个git commit(C).

A-B-C
    ?
  master

有没有办法取消删除文件,但保留我在第一次提交时所做的更改?(C)我宁愿不回到(B).我试过git reset --soft head ^,那么git status列出了我删除的文件,然后我做了git checkout,但仍然没有运气.我甚至不知道是否可能.

git commit undo delete-file undelete

55
推荐指数
2
解决办法
8万
查看次数

DbContext丢弃更改而不进行处理

我有一个桌面客户端应用程序,它使用模态窗口来设置分层对象的属性.由于这是一个客户端应用程序,并且没有线程化对DbContext的访问,我在主Form上使用长时间运行的上下文传递给模态子项.

这些模态窗口使用PropertyGrid显示实体属性,还具有取消按钮.如果修改了任何数据并按下了取消按钮,则更改将反映在父表单中(我无法处理DbContext object).

如果DbContext.SaveChanges()没有调用该方法,有没有办法丢弃所做的任何更改?

更新:实体框架版本4.4.

.net c# entity-framework undo dbcontext

52
推荐指数
6
解决办法
4万
查看次数

'git reset --hard HEAD~1'和'git reset --soft HEAD~1'有什么区别?

我试图在git中撤消我的提交.使用危险git reset --hard HEAD~1吗?

不同选项有git reset什么区别?

git undo git-reset

47
推荐指数
3
解决办法
9万
查看次数

如何撤消合并(没有提交)?

我只是做了一个svn merge将更改从主干合并到分支:

$ svn merge -r328:HEAD file:///home/user/svn/repos/proj/trunk .
--- Merging r388 through r500 into '.':
A    foo
A    bar
   C baz1
   C baz2
U    duh
[...]
Run Code Online (Sandbox Code Playgroud)

但是有太多的冲突,所以我想撤消这个.

一种方法是提交然后合并.但由于冲突我无法承诺.在这种情况下撤消的最佳方法是什么?

svn merge commit undo

45
推荐指数
2
解决办法
5万
查看次数