确认!我错误地用错误的文件名粘贴了"svn revert somefile".现在我修改好的文件已经不见了!
我想要一个"svn unrevert"命令.AFIK没有这样的事情.这个烂摊子的下一个最好的方法是什么?
一个非常聪明的开发人员几乎删除了整个存储库并提交了它(rev 210).我的计算机上有一个工作副本,但存储库相当大.
我想创建一个与上一个好的修订版(209)相同的新修订版(211).我不想保留修订版210中的任何内容,这是错误的提交.这是开发人员的错误,就我而言,他们将不得不改写任何东西.
想法?
所以我将一个分支"badBranch"合并到了我的开发分支中,并在合并之后发现了几个提交它的bug.
我做了一个恢复: git revert -m 1 <commit hash of the merge>
工作得很好.时间流逝,代码编写,进一步的变化致力于开发.
现在,有了更多的休闲,我想将badBranch合并回开发(或开发到它),看看我是否可以解决它.
但是开发认为badBranch在它的历史中(我认为?),所以当我签出badBranch并合并开发它时,我只是得到了当前的开发状态.
我如何强制实际合并devleop和badBranch?
谢谢.
到现在为止,如果我曾经提交并将错误推送到主分支,我的解决方法是,假设git日志看起来像
commit bad_hash
commit another_bad_hash
commit yet_another_bad_hash
commit good_hash
Run Code Online (Sandbox Code Playgroud)
我'解决'过去的情况的方式是:
git reset --hard good_hash
git push -f origin master
Run Code Online (Sandbox Code Playgroud)
是的,这将有效...但似乎并不优雅,因为它有效地删除了提交历史.
所以在破坏了我的自我的情况之后,我检查了更好的方法,并且出来了git revert one,基本上我现在使用
git revert bad_hash another_bad_hash yet_another_bad_hash
git push origin master
Run Code Online (Sandbox Code Playgroud)
git revert将创建三个提交(每个恢复的哈希一个),之后,需要推送来更新远程.
现在,问题是,这种策略是否正确?对我来说看起来比重置更好 - 硬,因为回购的历史没有中断,如果最终有人想检查为什么有问题,他们总是可以做
git diff bad_hash
Run Code Online (Sandbox Code Playgroud)
这种推理是正确的还是我仍然缺少基本概念.
谢谢
我正在尝试将虚拟机每天或晚上恢复到以前的快照.不幸的是,我没有找到任何方法以我想要的方式这样做.
以下是我尝试过但不适合的一些事情:
- snapshot.action=autoRevert --> The VM has to HALT, REBOOT doesn't work the same. I don't want to power on my VM manually.
- snapshot.action=autoRevert on a running snapshot. I tried this, thinking it might work and resolve the first issue. But when i HALT my VM, the snapshot is reverted but the VM is placed in a suspended state...
- PowerCLI script : I don't want to have a Windows machine running just for this little thing.
- …Run Code Online (Sandbox Code Playgroud) 在做出承诺之前,我发现git diff我已经做出了一些我宁愿不做的改变。有什么办法可以恢复这个单一的改变吗?
我想我可以用来git add -p提交我打算做的更改,然后检查master。有没有更好的方法,最好是不需要我承诺的方法?
这是 Kubuntu Linux 12.10 上的 Git 1.7.10.4。谢谢!
我有一个项目有两个分支,名为master和feature/x.在feature/x上我正在处理将在master上合并的新功能.
对于feature/x上的错误,基于master的rebase操作已完成并被推送.除了其他提交已完成并推送功能/ x.
所以我有两个分支,包含由不同哈希标记的"相同提交".
A -- B -- C -- D [master]
\
E -- F -- G -- H -- I [feature/x]
Run Code Online (Sandbox Code Playgroud)
其中C和D上主分别是相同的提交(衍合)F和G上特征/ X.
我想删除F和G从feature/x维护H和I.我该怎么做?
我想恢复提交
git revert F G
Run Code Online (Sandbox Code Playgroud)
来自feature/x,但那些无用(重复)提交将保留在历史记录中.我想知道是否有更好的方法来做到这一点?
我创建了一个虚拟txt文件,并在每次提交中输入一个新行,例如:
//dummy.txt
first commit
second commit
third commit
Run Code Online (Sandbox Code Playgroud)
现在我想通过恢复第二次提交来摆脱第二行.但是,我在这个简单的实验中收到合并冲突.有人可以解释一下原因吗?
我最近使用 git 将本地功能分支合并到本地主分支。然后我做了一些更改并提交到主分支。现在,我想摆脱主分支上的合并造成的更改。所以我做了一个:
git revert <commit-id>
Run Code Online (Sandbox Code Playgroud)
但是,我得到了错误
错误:提交 c49aaca4acf461cc41390c1d1d3477f09e25a368 是合并,但未给出 -m 选项。致命:恢复失败
仅供参考,我还没有向服务器推送任何内容。我在网上搜索但找不到合适的解决方案。有谁知道该怎么做?谢谢。
我刚刚意识到我在最近的8次提交中引入了内存泄漏.最简单的解决方案是恢复到8次提交,然后仔细添加更改.最简单的方法是什么?
谢谢!