2015-11-06 57 views
0

我只是做了一些非常愚蠢的事情,我不知道如何解决它。Git是否可以恢复错误的拉或推只选择提交?

这是关于混帐。我在bitbucket上创建了一个新项目,然后将其克隆到本地计算机上。我做了一些修改和几次提交,但没有推。然后我意识到我必须将我的项目转移给另一个用户。所以我转移了我的项目并更新了链接到本地​​机器上的远程存储库。但是我犯了一个错误,并且将错误的链接复制到另一个存储库。然后我做得更糟,因为我没有意识到我的错误。我做了拉。拉动作合并了我的本地存储库上的其他远程存储库。此时,我意识到自己的错误,并修复了远程存储库的链接。但是现在我不能做一个新的推动,因为如果我现在推送一个推送,我会推送我的提交,而且也推送来自这个其他存储库的所有文件。

我能做些什么来恢复错误的拉?或者是否有可能只推送我的具体提交?

编辑 -

+2

的可能的复制[还原的Git回购到先前的承诺(http://stackoverflow.com/questions/4114095/revert-git-repo-to-before-commit) –

+0

我拉了很多比我的提交更老的提交。恢复到MY最后一次提交不会恢复在我上次提交之前完成的提交提交。 –

+2

某些东西没有意义。推送如何更新您的本地回购?事后你把他们拉回来了吗?你有合并提交?看看git日志,你应该能够去到你在当前回购上做的最后一次提交。另外,其他回购协议是否与您目前的回购协议共享一个共同的父提交? – Doon

回答

1
  1. 找你当你在确定国家不得不提交哈希:你可以使用“混帐引用日志”,看到了二号线,这可能是你以前的“好头”。您可以使用提到的提交或“HEAD @ {1}”。
  2. 对该提交执行“git reset --hard”。
  3. 如果你现在对你的“git log”满意,你可以推。仔细检查你在推什么!

PS:要真的相信你可以检查你推什么:

git fetch 
git log HEAD..origin/master #or whatever be your remote branch