我有一个项目,我跑了git init.几次提交之后,我做了git status哪些告诉我一切都是最新的,并且没有本地更改.
然后我做了几个连续的更改,并意识到我想把所有东西扔掉,然后回到原来的状态.这个命令会为我做吗?
git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud) 有没有办法在文件上进行不同的提交.假设我已经修改了一个文件5次,并且在我已经提交并推送到存储库之后我想回到更改2.
在我的理解中,唯一的方法是保留许多分支,我做对了吗?如果我是对的,我会在几天内拥有数百个分支,所以我可能真的不理解它.
有人可以清楚吗?
鉴于已经提交的更改已经使用commit,然后还原使用revert,那么撤消该恢复的最佳方法是什么?
理想情况下,这应该使用新的提交来完成,以便不重写历史记录.
我找到了各种如何恢复SVN提交的例子
svn merge -r [current_version]:[previous_version] [repository_url]
Run Code Online (Sandbox Code Playgroud)
要么
svn merge -c -[R] .
Run Code Online (Sandbox Code Playgroud)
但它们似乎都不起作用.我尝试了这些命令并检查了手动更改的文件.
如何还原修订号为1944的提交?如何检查还原已完成(未查看实际文件中的更改已被还原)?
我和一位朋友在一个项目上合作,他编辑了一堆本不应该编辑过的文件.不知怎的,我将他的作品合并到了我的作品中,或者当我拉动它时,或者当我试图选择我想要的特定文件时.我一直在寻找和玩很长一段时间,试图弄清楚如何删除包含对这些文件的编辑的提交,它似乎是revert和rebase之间的折腾,并没有简单的例子,并且docs假设我比我知道的更多.
所以这是问题的简化版本:
鉴于以下情况,如何删除提交2?
$ mkdir git_revert_test && cd git_revert_test
$ git init
Initialized empty Git repository in /Users/josh/deleteme/git_revert_test/.git/
$ echo "line 1" > myfile
$ git add -A
$ git commit -m "commit 1"
[master (root-commit) 8230fa3] commit 1
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 myfile
$ echo "line 2" >> myfile
$ git commit -am "commit 2"
[master 342f9bb] commit 2
1 files changed, 1 insertions(+), 0 deletions(-)
$ echo "line 3" >> myfile
$ …Run Code Online (Sandbox Code Playgroud) 我在本地使用Mercurial进行项目(这是唯一没有推送/拉动其他地方的回购).
到目前为止,它有一个线性历史.然而,我正在研究的当前事情我现在已经意识到这是一种可怕的方法,我想在开始之前回到版本并以不同的方式实现它.
我对Mercurial中的branch/ revert/ update -C命令有点困惑.基本上我想恢复到版本38(目前在45)并让我的下一个提交有38作为父母并从那里继续.我不在乎修改39-45是永远丢失还是最终落入他们自己的死胡同.
我需要哪个命令/命令集?
我想删除对我的工作副本的所有更改.
运行git status显示修改的文件.
我没做什么似乎删除了这些修改.
例如:
rbellamy@PROMETHEUS /d/Development/rhino-etl (master)
$ git status
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: Rhino.Etl.Core/Enumerables/CachingEnumerable.cs
# modified: Rhino.Etl.Core/Pipelines/SingleThreadedPipelineExecuter.cs
# modified: Rhino.Etl.Tests/Rhino.Etl.Tests.csproj
# modified: Rhino.Etl.Tests/SingleThreadedPipelineExecuterTest.cs
#
no changes added to commit (use "git add" and/or "git commit -a")
rbellamy@PROMETHEUS /d/Development/rhino-etl (master)
$ git checkout -- Rhino.Etl.Core/Enumerables/CachingEnumerable.cs
rbellamy@PROMETHEUS …Run Code Online (Sandbox Code Playgroud) 编码时我将print语句添加到某些文件中以跟踪发生的情况.
当我完成后,是否可以恢复某些文件中的更改,但提交我实际工作的文件?
说我在文件中添加了print A,但是我修改了文件B.B是我想要提交的A,我希望回到原来的状态.
我有一个如下所示的SVN仓库中的文件,我想恢复到以前的版本.在SVN中执行此操作的方法是什么?我只想将此特定文件降级为旧版本,而不是整个仓库.
谢谢.
$ svn log myfile.py
----------------------
r179 | xx | 2010-05-10
Change 3
----------------------
r175 | xx | 2010-05-08
Change 2
----------------------
r174 | xx | 2010-05-04
Initial
Run Code Online (Sandbox Code Playgroud) 如何将本地副本上的所有文件还原为某个提交?
commit 4a155e5b3b4548f5f8139b5210b9bb477fa549de
Author: John Doe <Doe.John.10@gmail.com>
Date: Thu Jul 21 20:51:38 2011 -0500
Run Code Online (Sandbox Code Playgroud)
这是我想恢复的提交.任何帮助都将成为救星!
revert ×10
git ×7
commit ×2
svn ×2
undo ×2
branch ×1
cherry-pick ×1
dvcs ×1
file ×1
git-checkout ×1
git-status ×1
mercurial ×1
working-copy ×1