今天早上我设法通过以下方式射击自己:
幸运的是,在这种情况下,我在星期五离开工作之前做了一个"svn diff> temp.txt",而temp.txt文件仍然在我的硬盘上,所以我能够将该文件输入"补丁"并恢复我的失去了变化.
但是对于我将来的参考(即下次我犯同样的愚蠢错误)...有没有办法告诉svn撤消"svn revert"?svn是否在任何地方保留本地/未签入差异的备份?
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)
在此之后,我应该能够打开任何文件,编辑它,然后保存关闭它,当我再次打开它时,我应该能够撤消/重做,好像我永远不会离开.不幸的是,情况似乎并非如此,因为从未写过任何无人事务所.
笔记:
我在Win 7上使用来自Vim的Vim 7.3而没有奶油项目.持久撤消是烘焙的.
$ HOME/.vim/undo存在于我的文件系统中
在普通的文本编辑器中[对Vim充分尊重]有一个快捷方式Ctrl+ Z当你做了一些讨厌的东西并希望返回到以前版本的文本时.喜欢Word中的BACK按钮.我想知道你怎么能在Vim中实现这种行为.
我搞砸了合并.我想恢复然后再试一次.
有没有办法在提交之前恢复合并?
hg revert没有做我想做的事情,它只会恢复文件的文本.Mercurial中止了我合并的第二次尝试并抱怨原始合并仍未提交.
有没有办法在hg merge命令之后但在提交之前撤消合并?
我和其他开发人员一直在合并并将我们的工作推向一个名为"工具"的非主分支.这样,我们没有影响团队的其他成员.我的主题分支叫做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 commit(文件编辑+新文件)(C)进行了提交.然后我修改了最后一次提交.然后我使用递归删除所有文件(!)git rm -r
然后我做了另一个git commit(C).
A-B-C
?
master
有没有办法取消删除文件,但保留我在第一次提交时所做的更改?(C)我宁愿不回到(B).我试过git reset --soft head ^,那么git status列出了我删除的文件,然后我做了git checkout,但仍然没有运气.我甚至不知道是否可能.
我有一个桌面客户端应用程序,它使用模态窗口来设置分层对象的属性.由于这是一个客户端应用程序,并且没有线程化对DbContext的访问,我在主Form上使用长时间运行的上下文传递给模态子项.
这些模态窗口使用PropertyGrid显示实体属性,还具有取消按钮.如果修改了任何数据并按下了取消按钮,则更改将反映在父表单中(我无法处理DbContext object).
如果DbContext.SaveChanges()没有调用该方法,有没有办法丢弃所做的任何更改?
更新:实体框架版本4.4.
我试图在git中撤消我的提交.使用危险git reset --hard HEAD~1吗?
不同选项有git reset什么区别?
我只是做了一个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)
但是有太多的冲突,所以我想撤消这个.
一种方法是提交然后合并.但由于冲突我无法承诺.在这种情况下撤消的最佳方法是什么?