远程仓库不包含最近的提交记录

4
我在GitHub上有一个用于我的网站的远程仓库,有两个分支,一个是master分支,另一个是dev分支。本地上,我有一个使用“dev”分支检出的仓库,和另一个使用“master”分支检出的仓库。
问题:虽然对于两个仓库都可以使用“git commit -am“message””和“git push origin dev”(或者 “git push origin master”)命令,但只有远程仓库上的master分支才会改变。
以下是使用“git log --oneline”命令显示的前几行:
$ git log --oneline
e111369 Minor changes to CSS
2bdd236 Deleted _land-nav.scss
0bda307 Reworked lang-nav, site-nav/CSS update
165de39 Added .nojekyll file
ffeb959 BIG BILINGUAL UPDATE

# ^ above commits aren't recognized.

d24fa3d Preparing for bilingual update
bbcb7a3 Adjusted nav__item padding #3
216213e Adjusted nav__item padding #2
8bfea5d Adjusted nav__item padding
问题:我需要采取哪些步骤来解决这个问题?另外,我可以提供什么额外的信息来帮助你回答这个问题。 更新:为什么我要使用这样一个不寻常的设置?
我的开发库保存着未编译的Jekyll源代码。我不能只是将其部署到GitHub上,因为GitHub Pages会在没有插件的情况下进行构建。我需要在本地构建网站以使用插件。然而,我仍然希望在GitHub上保留未编译和编译后的代码。
我不知道如何从一个本地存储库中处理这个问题。这只是一个肮脏的解决方法。

你在 dev 仓库中将 origin 远程设置为了什么?运行 git remote -v 命令。如果它显示了另一个本地仓库的路径,则需要将其 origin 设置为 GitHub 上的仓库,请参见 下面的答案 - user456814
1个回答

2
看起来你可能使用dev分支从另一个本地存储库克隆了该repo,该存储库包含master分支。如果是这种情况,则dev repo将其origin设置为具有master的本地repo的路径。

更改origin

你想要做的是将origin设置为GitHub上的远程repo,而不是其他本地repo。您可以在dev repo中使用以下命令来修复它:
git remote rm origin
git remote add origin <url-to-remote-repo>

你也可以使用git remote set-url命令来更改在你的dev存储库中别名origin指向的位置。
另一种选择是从master存储库进行push。如果你的dev存储库将其origin设置为本地的master存储库,那么当你从dev存储库推送时,这意味着它已经将其更改推送到本地的master存储库。因此,你可以像下面这样从master存储库推送两个分支:
git push origin master dev

不寻常的设置

然而,你将一个仓库命名为 master,另一个仓库命名为 dev 的设置是不寻常的。通常人们会将这两个分支放在同一个仓库中,这样可以避免你目前遇到的问题,并且一般情况下使你的工作流更加简单。


你的回答听起来很有道理。我确实从本地仓库克隆了。这确实是一个不寻常的设置。我会在我的问题中更新我的使用原因。到目前为止谢谢。我会尝试你的解决方案。 - kleinfreund
谢谢你的回答。它帮助我解决了我的问题。听听您对我的“不寻常设置”的看法会很好。我已经更新了一些关于它的信息到我的问题中。 - kleinfreund
@kleinfreund 把这个问题单独提出来,你应该能够得到更多其他人的帮助。 - user456814
你可能是对的,但这更是一个普遍性问题,与特定的编程问题无关,因此属于离题。我会先找到更好的解决方案。;) - kleinfreund
@kleinfreund...这可能适合[programmers.se]。另请参阅:我的git问题应该放在哪里? - amon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接