远程回购说它是最新的,但缺少数百个本地提交

时间:2017-02-28 20:40:47

标签: eclipse git github

在Eclipse中(使用Egit)我的repo设置如下:

我从github.com/hallvard/tdt4100-2017的远程GitHub回购(我的讲师) 我添加文件并修改一些我从那里拉出来的文件。使用Eclipse的egit,我提交对我的本地仓库的更改(包括来自远程拉回购的所有文件),然后将所有内容推送到我自己的GitHub仓库,然后我拥有自己的所有文件,并且我的讲师&#39 ; s文件,以及我讲师的修改过的文件。 那个回购是在github.com/vegarab/tdt4100

昨天发生了一些奇怪的事情:当我推销自己的回购时,它一直说主分支是最新的,但事实并非如此。 我确实暂存了这些文件,并将它们提交给了当地的仓库。

我试着去终点站并从那里推到远程,但没有运气。

我前往我的GitHub历史并找到了最后一次提交,并做了一个:

git reset commitid

然后我试图推到遥控器,但它仍然说它是最新的?呃什么? 我复制了我的本地仓库只是为了确保在出现问题时我仍然有我的文件: 我做了一个

git pull -f origin master

它做了一些改变:我的远程回购只是讲师回购的一个分支。我的所有文件都消失了,除了它们仍在本地仓库中。试图推送它们给了另一个最新的,除了遥控器现在错过了我自己的提交,以及数百个文件和文件夹。

做什么???

2 个答案:

答案 0 :(得分:0)

确保您推动更正回购。假设你有两个遥控器:

upstream: 您分叉自己的资源库的仓库 origin: 您自己的存储库

克隆您自己的(origin)回购。

$ git clone <own-repo-url>

进行更改,更新文件,添加提交推送origin

# do some changes

$ git add .
$ git commit -m 'Add my changes'
$ git push -u origin master

现在假设upstream已更新,您需要进行上游的新更改,然后更新自己的origin回购。

$ git pull upstream master       # pull upstream/master changes
$ git push origin master         # push the changes to origin/master  

答案 1 :(得分:-1)

我最终推了本地备份回购。到远程的那个,将远程的“恢复”到正确的状态。

然后我删除了原始的本地仓库,并从我的远程仓库中提取了一个新的仓库。然后我从讲师那里取出了新的变化并推到了我自己的回购中。现在已修复。