所以我向我的分支机构推了一下我很高兴。
然后(在当地)我做了一些改变。我不喜欢这些变化,如何恢复到我对分支的最后一次推动?
我试过git pull github branchname',但这似乎搞砸了我当地的工作甚至更多,并给了我回应:
* branch master -> FETCH_HEAD
提前致谢。
答案 0 :(得分:0)
以下是我的表现方式:
git log
(它记录了已经提交和推送的内容......它可能看起来像这样:
commit ed0787d4c3375bfa2158506ea3d49402cbde9db1
Author: Michael <nobody@umich.edu>
Date: Tue Apr 22 08:26:02 2014 -0700
Replace two assets
two assets were PSD instead of PNG. Fixed.
现在,将会有一份完整的提交列表。我将上面的列表用作我的&#34;最后的好消息&#34;提交ID,您可以这样做:
git reset --hard ed0787d4c3375bfa2158506ea3d49402cbde9db1
(该数字是您要删除分支的提交ID)
git log
(确保它看起来不错)
git remote -v
git push -f origin HEAD
(保存您的更改!)
答案 1 :(得分:0)
这是我理解的情况。 你有一个远程分支,一切都好。 你有一个本地提交的地方出错了。
我看到两个选项:
如何找到好的提交?
git log -10
在过去的10次提交中显示当前分支的历史记录。
或
git reflog -10
显示HEAD最后十次移动的历史(即你所做的,无论分支)
发现提交后:
git reset --hard [commit_sha1]
五个第一个sha1 char就够了。
2 我们不介意您当地的分支机构。
确实你的远程分支很好。那为什么要这么麻烦?
git checkout -b [remote_name]/[branch_name]
如何知道远程名称?
git remote
分店名称 ?
git branch -r
例如:git checkout -b origin / foo
如果您对新分支感到满意,请删除旧分支。
git branch -D [old_branch]
答案 2 :(得分:0)
对最后一次更改(这意味着在同一分支上没有进一步提交)提交非常简单。
您可以通过调用git commit --amend
添加对上次提交的更改,这会在上次提交时添加您当前的更改。
你也可以&#34;解包&#34;您最后一次提交到当前工作分支(这意味着您当前的更改会丢失),方法是调用git reset --hard
。
我建议你阅读branch chapter的pro git,以便进一步了解分支和提交。另一个有用的资源是此互动cheat-sheet。
答案 3 :(得分:0)
如果github/branchname
是你想要的本地分支,那么就这样做:
git reset --hard github/branchname
请记住,git reset --hard
将删除提交 - 这就是您在这种情况下所需要的 - 但请将其置于您的最前沿。如果你不小心,这是一种容易失去工作的方法。如果你确实犯了错误,git reflog
可以给你一个sha1的列表,这些sha1曾经是你的分支的一角,你可以用它来恢复你的状态。