如何使用'git pull'恢复我的更改?

时间:2011-03-15 16:54:12

标签: git

我做了'git pull'而不是'git pull --rebase'。

SHA: 138937298d80a7c84d0630b1db509ca2596aca91  // top of my git

<< some changes I got from 'git pull' >>
SHA:

SHA:
<< end of some changes I got from 'git pull' >>

SHA: 08ebb55902e206a30d6f344b4684bd525970dda3  // my original top of my git before i do anything.

我的问题是如何恢复我从'git pull'获得的变化然后我做了'git pull -rebase'?

另一个问题是我在Mac上使用'gitx',我从'git pull'获得的更改是在不同的垂直线上和我原来的那些。这是为什么? 谢谢。

2 个答案:

答案 0 :(得分:3)

使用git reflog找到要恢复的其他HEAD,然后重置为提交。通常,如果您在拉动后没有做任何事情,那么这将是git reset --hard HEAD@{1}

答案 1 :(得分:1)

假设您正在master,并且您希望将远程更改提取到origin/master并将您的工作重新定位到“官方”分支,但您犯了一个错误:

git pull origin

现在你已经将你的工作和服务器中的东西合并了;那不是你想要的!

git stash save
git reset --hard HEAD@{1}
git stash apply

现在你已经回到了拉扯之前的位置,但你仍然希望将更改放在服务器上的内容之上......

git rebase origin/master

你去了,一切都准备好了!