如何从当前状态恢复为在某个提交时创建的快照?
如果我这样做git log
,那么我得到以下输出:
$ git log
commit a867b4af366350be2e7c21b8de9cc6504678a61b`
Author: Me <me@me.com>
Date: Thu Nov 4 18:59:41 2010 -0400
blah blah blah...
commit 25eee4caef46ae64aa08e8ab3f988bc917ee1ce4
Author: Me <me@me.com>
Date: Thu Nov 4 05:13:39 2010 -0400
more blah blah blah...
commit 0766c053c0ea2035e90f504928f8df3c9363b8bd
Author: Me <me@me.com>
Date: Thu Nov 4 00:55:06 2010 -0400
And yet more blah blah...
commit 0d1d7fc32e5a947fbd92ee598033d85bfc445a50
Author: Me <me@me.com>
Date: Wed Nov 3 23:56:08 2010 -0400
Yep, more blah blah.
Run Code Online (Sandbox Code Playgroud)
如何从11月3日恢复提交,即提交0d1d7fc
?
有人将一个名为test
with 的分支推git push origin test
送到共享存储库.我可以看到分支git branch -r
.
现在我正试图检查远程test
分支.
我试过了:
git checkout test
什么都不做
git checkout origin/test
给* (no branch)
.这令人困惑.我怎么能在"没有分支"?
如何查看远程Git分支?
我已经对作为一组文件的一部分提交了几次的文件进行了一些更改,但现在想要将其上的更改重置/还原到以前的版本.
我已经做了git log
一个git diff
找到我需要的修订版,但是根本不知道如何将文件恢复到以前的状态.
说我在Git存储库中.我删除了一个文件并提交了更改.我继续工作,并做了一些更多的提交.然后,我发现我需要恢复该文件.
我知道我可以使用签出文件git checkout HEAD^ foo.bar
,但我真的不知道该文件何时被删除.
我希望我不必手动浏览我的日志,检查整个项目的给定SHA,然后手动将该文件复制到我原来的项目结帐中.
我有一个项目,我跑了git init
.几次提交之后,我做了git status
哪些告诉我一切都是最新的,并且没有本地更改.
然后我做了几个连续的更改,并意识到我想把所有东西扔掉,然后回到原来的状态.这个命令会为我做吗?
git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud) 我正在使用git并在master分支上工作.这个分支有一个名为的文件app.js
.
我有一个experiment
分支,我做了一堆变更和大量的提交.现在我希望把做只对所有变化app.js
从experiment
到master
分支.
我怎么做?
再一次,我不想合并.我只是想把所有的变化app.js
从experiment
分支带到master
分支.
我怎样才能回滚到git中的特定提交?
有人可以给我的最佳答案是使用git revert
X次,直到达到所需的提交.
所以,假设我想恢复到20次提交的提交,我必须运行20次.
有更简单的方法吗?
我无法使用重置,因为此存储库是公共的.
我想要相当于cd -
git.如果我在分支机构master
并且我结账foo
,我希望能够输入类似于git checkout -
返回的内容master
,并且能够再次键入它以返回foo
.
有这样的事吗?难以实施吗?
我在一个有两个分支A和B的项目上工作.我通常在分支A上工作,并从分支B合并东西.对于合并,我通常会这样做:
git merge origin/branchB
Run Code Online (Sandbox Code Playgroud)
但是,我还想保留分支B的本地副本,因为我可能偶尔会检查分支而不先与我的分支A合并.为此,我会这样做:
git checkout branchB
git pull
git checkout branchA
Run Code Online (Sandbox Code Playgroud)
有没有办法在一个命令中执行上述操作,而无需来回切换分支?我应该用git update-ref
它吗?怎么样?
通常,要放弃对文件的更改,您将执行以下操作:
git checkout -- <file>
Run Code Online (Sandbox Code Playgroud)
如果我要丢弃的更改是删除文件怎么办?以上行会出错:
error: pathspec '<file>' did not match any file(s) known to git.
Run Code Online (Sandbox Code Playgroud)
什么命令将恢复该单个文件而不撤消其他更改?
奖励点:另外,如果我要丢弃的更改是添加文件怎么办?我想知道如何取消这种变化.
git ×10
git-checkout ×10
git-revert ×2
file-io ×1
git-merge ×1
git-pull ×1
git-reset ×1
revert ×1