相关疑难解决方法(0)

如何将Git存储库还原为以前的提交

如何从当前状态恢复为在某个提交时创建的快照?

如果我这样做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

git git-revert git-checkout git-reset

7278
推荐指数
42
解决办法
549万
查看次数

GitHub - 如何将更改还原到以前的状态

我使用GitHub作为我的远程存储库.

我已经将5次提交推送到服务器,并希望在这些提交之前恢复到状态.

如果提交哈希是3425661dba2aadccdbab,如何将整个本地/远程恢复为该提交?我试过了

$ reset --hard 3425661dba2aadccdbab
Run Code Online (Sandbox Code Playgroud)

但那只是把我的工作头重新安置到那个分支,并要求我再做git pull一次.我试过结帐,但这导致我降落在"独立的头"分支.

git commit github repository revert

39
推荐指数
1
解决办法
6万
查看次数

Git从index.lock重命名为索引失败

使用GitHub Windows客户端我进行了同步以将远程更改提取到本地计算机,但在完成同步之前,我的磁盘空间不足,同步失败.现在我似乎有一堆本地更改,实际上是从原点中提取的更改.我试着运行git pull但得到了:

C:\Users\Tom\SourceLog [master +4 ~26 -0 !]> git pull
Updating b3a86e1..5afd74f
error: Your local changes to the following files would be overwritten by merge:
        SourceLog.Interface/IChangedFile.cs
        SourceLog.Interface/ILogEntry.cs
        ...
Please, commit your changes or stash them before you can merge.
error: The following untracked working tree files would be overwritten by merge:
        Lib/MSBuildExtensionPack/4.0.6.0/Ionic.Zip.dll
        Lib/MSBuildExtensionPack/4.0.6.0/MSBuild.ExtensionPack.dll
        ...
Aborting
Run Code Online (Sandbox Code Playgroud)

所以现在我想丢弃当地的变化,但我得到了:

C:\Users\Tom\SourceLog [master +4 ~26 -0 !]> git checkout -- .
Rename from '.git/index.lock' to '.git/index' failed. Should I try again? (y/n) …
Run Code Online (Sandbox Code Playgroud)

windows git github windows-7

35
推荐指数
5
解决办法
4万
查看次数

如何签出旧提交并使其成为新提交

我想跟进另一个关于此问题的问题: 检查旧提交并使其成为新提交

但他们说"不要那样做!" 所以看来我必须问一个新问题.(即使是同样的问题,我认为对我来说最好的答案并没有按预期工作......

如果我有提交 A-B-C-D-E-F(想象这些都是SHA).我希望将整个存储库完全一样C,然后提交它以创建'G'完全相同的存储库C.因此,当我完成时,日志是ABCDEFG,即使C&G是相同的.

一个答案表明樱桃挑选,这看起来很完美,除了它让我解决了C和之间的每一次冲突F.我查看了文档,然后我尝试--force了,然后推荐--patch.--patch是最接近但不是绝对的.那么有没有办法让樱桃挑选只选择C冲突的版本?

另一个最接近的答案是结帐C,但我找不到将其保持在同一分支上的神奇单词.在最近的训练我完成说用"神奇短跑冲刺"末告诉git你想这对当前的分支,但无论我做什么,它会创建一个"(无分支)"分支.

正如我相信你可以告诉我是相当新的Git的(一般和命令行),但我想弄清楚我自己.如果你可以使用你推荐的详细版本,那么它会更好地贴在我的头上,我将不胜感激.(-a= --all-a = --annotate-a = --albuquerque?)

这似乎很简单,你可能想要什么用git做 - 回到先前的承诺,而失去中介承诺的情况下,你改变了主意.

git

5
推荐指数
1
解决办法
666
查看次数

如何调和分离的头部和起源/大师?已经签出旧哈希

介绍和搜索

所以我认为我犯了一个严重的错误,我很担心。我已经解析了论坛上的超脱头脑,我已经接近找到答案了,但是场景太具体了,不适用于我所处的位置。如果您找到回答我问题的特定线程,请链接我。

例如:如何将分离的 HEAD 与 master/origin 协调?

那家伙已经做了git rebase -i,而我没有。我试过变基,但它没有解决我的问题。

小背景

  • 我是 git 新手;我只自己使用 git
  • 我拥有远程存储库
  • 需要旧代码集,这是时间敏感的问题
  • 我学习了一些编程,并在没有其他人编码的工作场所使用它(所以我不能完全寻求帮助)

问题:

要使用工作代码访问旧提交,我做了(可能是错误的事情):

git log
git checkout <hash-of-desired-old-commit>
Run Code Online (Sandbox Code Playgroud)

我继续完成代码。感谢上帝的版本控制!但是射击,为什么 git 这么复杂?我如何保存这项工作?我现在处于一个超脱的头脑中。Origin/Master 在未来的一些提交中最好全部删除。

我尝试过的

  • 将整个文件夹复制并粘贴到其他地方只是为了备份
  • git add -A跟着git commit -m "oh shit, detached head commit"git rebase master
  • git reset --hard HEAD~3根据此处的建议:检查旧提交并使其成为新提交

问题:我如何将我的超然头与原点/大师调和?一旦和解,我是否需要git push --force或其他什么(特别是--force旗帜)?这个独立的头有工作,我读到我等待的时间越长,垃圾收集可能会来吃我丢失的分支。抱歉,我确实缺乏任何正式的 git 培训……我几乎准备好检查 origin master 然后重写代码。

先感谢您。

git github git-detached-head

5
推荐指数
1
解决办法
2674
查看次数