未附加的git存储库?

时间:2012-04-19 11:29:25

标签: git github

我有一个本地运行的文件夹,其中包含一个网站。它非常愉快地在我的计算机上运行xampp。我知道已经在过去被连接到git并且我继续通过命令行添加,提交和推送我的更改,这一切都像我的其他git repos一样工作,除非他们更新我的github仪表板在线显示他们上次编辑的时间等。

问题是这个文件夹,Demo,没有在我的github仪表板上更新所谓连接的repo ..我已经做了很多改变而且我已经把它提交到了一些但是它不是我预期的...它的显示4个月前的最新变化!有没有办法轻松重新连接两个?我不介意在github上显示的幽灵回购中输掉whatevers,但我不能在我当地的Demo文件夹上丢失任何东西。我很乐意在git上做基础知识,但如果发生任何意外情况,我会感到害怕,我会删除所有内容!

1 个答案:

答案 0 :(得分:0)

该消息表示您的本地仓库已与GitHub远程仓库分道扬..也就是说,有远程不存在的本地提交,反之亦然。

如果您真的不在乎远程仓库发生了什么,那么您可以运行git push -f来强行推进,但是如果有任何其他的回购(您或其他任何人)已经撤回了非本地更改已经以某种方式结束了GitHub,然后这将真正搞砸了他们! GitHub上您没有本地更改的任何更改都将丢失。

如果有疑问,提交任何本地更改,记下当前的HEAD提交ID(您可以使用git show找到它),然后下拉远程更改,修复任何合并冲突,并推回起来。如果出现问题,您可以随时git reset --hard <commit-id>返回原先的位置。这条路线不会修改历史记录,因此没有丢失任何东西的危险。

基本上你需要在Git中小心修改repo的提交历史的任何操作,push -f这样做,因为它可能会导致repos之间的历史记录不一致。另一方面,如果你只附加一个回购的历史记录(这是你应该做的,例如git commitgit pullgit merge等等,那么如果它破了,只需在git reset的违规提交之前倒带,就可以让它重新回到工作状态。


此外,您可以在GitHub上看到git log origin/master...mastergit diff origin/master...master没有的提交,以查看实际的更改(请确保先运行git fetch)。< / p>