这不是一个主要问题,只是我想知道是否可能.
假设我们有两个提交,abcd123并且wxyz789发生在非相邻的,分开的地方,远在回购历史中.现在让我们说我们想要还原它们.干
git revert abcd123 wxyz789
Run Code Online (Sandbox Code Playgroud)
将导致两个单独的提交,一个恢复abcd123,另一个恢复wxyz789.
这一切都很好,但是如果我们想要在两个提交中修复的错误在逻辑上是链接的,并且为了自我记录的目的,我们想做一个单独的提交包含一个单词" 我现在打破了一些东西 " 我正在恢复文件x,y和z "评论?有没有这样做的git命令?
(我当然知道有可能创建一个提交,我只需手动修复所有更改然后推送.这对于所有的不良原因都是痛苦的.)
我有一个git树,有很多提交和很多文件.现在,我想恢复仅触及文件的特定提交.解释:
> git init
Initialized empty Git repository in /home/psankar/specific/.git/
> echo "File a" > a
> git add a ; git commit -m "File a"
[master (root-commit) 5267c21] File a
1 file changed, 1 insertion(+)
create mode 100644 a
> echo "File b" > b
> git add b; git commit -m "File b"
[master 7b560ae] File b
1 file changed, 1 insertion(+)
create mode 100644 b
> echo "File c" > c
> git add c; git commit …Run Code Online (Sandbox Code Playgroud) 我已经从CVS存储库检出了一个文件并进行了更改.
cvs up命令说文件已被修改M.
我需要删除我的更改.cvs命令可以为我做什么?
链接:
http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-howto-rollback.html
描述了在错误提交后回滚SVN目录的两种方法.这两个选项有什么区别
Revert changes from this revision
Revert to this revision
Run Code Online (Sandbox Code Playgroud)
作为测试,我添加了一个文件,使用"从此版本中恢复更改"回滚,并为"恢复到此版本"执行相同的过程,并且SVN日志的状态没有区别.
我错过了什么吗?
Github for Windows将这两个命令描述为:
revert this commit - 创建一个新的提交,以恢复此提交的更改rollback this commit - 回滚此提交,保留在此工作目录中提交的所有更改以及稍后的提交你能解释一下这两个命令的确切含义以及如何使用它们.具体来说,我不明白第二个目的是什么.对我来说完全是无稽之谈.
有可能恢复到先前的提交检查它,如果我不喜欢它,回到最初的位置?
这个gui似乎只是git系统的一小部分,但使用它的适当工作流程是什么?
我刚刚对我的一个功能分支("feedback_tab")进行了一些更改,然后检出"master"并将它们合并到那里.我实际上是想将它们合并到我的"开发"分支中.
现在,master通过17次提交领先于'origin/master'(它的远程) - 我没有推动合并(并且显然不希望).如何将master恢复到意外合并之前的状态?我git revert和git reset这些东西混淆了.
我查看了我的git日志,并没有将feedback_tab合并到master中的条目.我原本以为它会成为最佳入场券?
有点困惑:/任何帮助欢迎!最大
我使用GitHub作为我的远程存储库.
我已经将5次提交推送到服务器,并希望在这些提交之前恢复到状态.
如果提交哈希是3425661dba2aadccdbab,如何将整个本地/远程恢复为该提交?我试过了
$ reset --hard 3425661dba2aadccdbab
Run Code Online (Sandbox Code Playgroud)
但那只是把我的工作头重新安置到那个分支,并要求我再做git pull一次.我试过结帐,但这导致我降落在"独立的头"分支.
我遇到了与此问题相同的问题:git status显示修改,git checkout - <file>不会删除它们
Git继续显示工作目录修改,即使git config --global core.autocrlf false:
E:\_dev\github\Core [master +0 ~93 -0]> git config --get-all core.autocrlf
false
false
Run Code Online (Sandbox Code Playgroud)
(注意我甚--system至将设置设置为false)
为什么看起来Git仍在修改我的行尾?
E:\_dev\github\Core [master +0 ~93 -0]> git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: tools/StatLight/StatLight.EULA.txt
... more changes ... …Run Code Online (Sandbox Code Playgroud) 当我尝试执行这样的命令时(从命令行或Perl脚本 - 这没关系):
svn revert "build\myfile@test.meta"
Run Code Online (Sandbox Code Playgroud)
SVN跳过此文件并输出:
Skipped 'build\myfile'
Run Code Online (Sandbox Code Playgroud)
我试过做:
svn revert "build\*.meta"
Run Code Online (Sandbox Code Playgroud)
但它给出了相同的结果.
我可以从GUI恢复这些文件.我可以通过执行来恢复这些文件(但它恢复的次数超出了我的要求):
svn revert --recursive "build"
Run Code Online (Sandbox Code Playgroud)
这有解决方法吗?
如何在Mercurial中获取文件的早期版本的副本,而不在工作区中创建该文件的新默认工作副本?
我找到了hg revert命令,我认为它符合我的要求,但我不确定.
我需要获取我的代码的早期版本的副本才能使用几分钟.但我不想打扰当前正常工作的版本.
所以我打算这样做:
hg revert -r 10 myfile.pls
Run Code Online (Sandbox Code Playgroud)
有没有办法将它输出到不同的目录,所以我的文件的当前工作版本不受干扰?就像是:
hg revert -r 10 myfile.pls > c:\temp\dump\myfile_revision10.pls
Run Code Online (Sandbox Code Playgroud) revert ×10
git ×5
github ×3
svn ×2
commit ×1
cvs ×1
dvcs ×1
file ×1
git-rebase ×1
git-revert ×1
git-status ×1
mercurial ×1
merge ×1
repository ×1
rollback ×1
tortoisesvn ×1