分叉某人的存储库后无法推送提交

时间:2020-07-26 17:45:42

标签: git github

我是Github的新手,只将一些提交推送到github。这是我第一次分叉某人的仓库。但是在分叉的代码上推送了一些代码之后。我不能在自己的仓库中推送代码。 我已经尝试过本post中提到的git rebase。但是我的所有代码都被删除,并被分叉存储库中的文件覆盖。我已经恢复了文件,但仍然无法继续执行存储库。

git status显示如下

Your branch and 'origin/master' have diverged,
and have 7 and 61 different commits each, respectively.

以下是我的程序。如果我有任何错误,请告诉我,我该如何将代码推送到自己的仓库中并分叉?我不想合并它们,因为它们是完全不同的存储库。

  1. git clone分叉存储库中的github地址
  2. git push原始主人

[编辑] 我在github上有两个仓库。一个供我使用,另一个供我分叉。我更改一些代码并将提交推送到派生的仓库中,然后我无法将我的代码在另一个仓库中推送到github

我在git remote -v中发现了一些奇怪的东西,然后单击这两个URL,它们都与分叉存储库相关。

origin  https://github.com/xxxxxxxxx/VQA.git (fetch)
origin  https://github.com/xxxxxxxxx/VQA.git (push)

这些是我尝试过的。来自git reflog的信息。 f66c72f

之后我无法推送提交
f66c72f (HEAD -> master) HEAD@{0}: reset: moving to f66c72f
f66c72f (HEAD -> master) HEAD@{1}: reset: moving to f66c72f
a4f1afd (origin/master) HEAD@{2}: reset: moving to origin/master
2697a7f HEAD@{3}: rebase: updating HEAD
2697a7f HEAD@{4}: rebase: aborting
f66c72f (HEAD -> master) HEAD@{5}: reset: moving to f66c72f
a4f1afd (origin/master) HEAD@{6}: rebase: checkout origin/master
2697a7f HEAD@{7}: commit: add resize_image.py
0d6e98a HEAD@{8}: reset: moving to HEAD^^
f66c72f (HEAD -> master) HEAD@{9}: reset: moving to f66c72f
f66c72f (HEAD -> master) HEAD@{10}: commit: add train.py file
a23ce98 HEAD@{11}: commit: add resize_images.py
0d6e98a HEAD@{12}: commit: add test.py file
5e09bad HEAD@{13}: commit: modify network architecture drop_out/activation
ad0525c HEAD@{14}: commit: rename
d3f0577 HEAD@{15}: commit: finishing data_loader
bbdbd9b HEAD@{16}: commit (initial): add make_vocab.py & preprocessing.py

2 个答案:

答案 0 :(得分:1)

您似乎正在尝试在一个本地存储库中管理两个完全独立的远程存储库。除非2个远程仓库都具有相同的代码库相关联(例如原始的远程仓库和该仓库的分支),否则git不会这样工作。

您需要将要使用的每个远程仓库克隆到单独的本地仓库中。每个文件夹都将位于本地PC上的单独文件夹中,并带有自己的.git文件夹。

要在两个不相关的存储库之间共享代码,请在本地克隆每个存储库,然后直接将要重用的代码从一个存储库复制到另一个存储库(本地)。然后在目标存储库中进行新的提交。

您需要为每个本地存储库完全分别管理获取/推送/拉取。从命令行,您只需要位于给定存储库的文件夹或子文件夹中,git就可以在该存储库上工作。大多数GUI git工具一次(或每个窗口)一次只打开一个本地存储库。

[编辑:完全重写答案!希望这次是正确的..]

答案 1 :(得分:0)

我解决了这个问题。我的存储库的原始名称(在分叉存储库后更改名称)与分叉的原始名称相同。因此,远程URL是相同的,如果我将提交推送到分叉的一个,则另一个将出现错误。

解决方案是更新原始的回购远程URL(更改名称后,URL也将更改),并且可以成功推送而无需合并这两个存储库。

相关问题