GitHub for Windows无法看到仓库中的更改

9
我使用GitHub for Windows(GfW)创建了一个代码库,添加了3个提交并进行了同步。这些提交在GitHub网站和我的应用程序中都可见。之后,我的兄弟fork了我的项目以便开始协作。他使用GfW成功地克隆了它。
接着,我在本地进行了更改,并使用“同步”按钮进行了推送。这些更改出现在了网页和我的历史记录中,但是我的兄弟在他的GfW中看不到它们。即使按下“同步”按钮也是如此。
我们犯了什么错误?我也将他添加为我的项目设置中的协作者,但没有改变任何东西。我想我可能误解了一些基本原则。

你的兄弟需要将他的 fork 与你的主分支同步。https://help.github.com/articles/syncing-a-fork/ - JP Hellemons
5个回答

20

好的,这里涉及到四个代码库:

  • 你的github代码库
  • 你在本地克隆的github项目
  • 你兄弟的github分支
  • 你兄弟在本地克隆的他的分支

我自己已经有一段时间没有使用GfW了,但我猜测Sync只在上面列出的最后两个项目之间同步。我不知道是否有GUI支持,但同步fork的文档对您可能有用。

猜测,鉴于这份文档,GitHub for Windows不支持与原始项目同步:

GitHub for Windows不支持多个Git远程,并且它只能与起点远程一起工作。如果您希望推送和拉取其他远程,请使用应用程序附带的命令行客户端。

你的兄弟将实际上拥有两个远程: 他的分支(通常命名为"origin")和你的原始项目(通常命名为"upstream")。


谢谢。我的兄弟有没有办法在本地克隆我的Github项目,而不仅仅是fork? - bowl
1
@bowl:是的,他可以使用git clone XYZ,其中XYZ是github上显示的项目URL。但是你应该考虑一下这是否真的是你想要的。可能你实际上想要三个分支——一个“主分支”,一个供你工作的分支,以及一个供他工作的分支。这取决于你的需求。如果你愿意让他推送到你的repo,只需要一个github repo可能是最简单的方法... - Jon Skeet
是的,我们只是想掌握DVCS,我选择了Git。我认为对于初学者来说,最简单的方法是最好的。我认为GfW现在可能不是最好的接口。我们将使用Surjah建议的SourceTree。 - bowl
@bowl:我自己使用SourceTree和命令行...我还在逐渐熟悉它,但是... - Jon Skeet
1
@bowl:不,我并没有打击你的积极性 - 我喜欢SourceTree。不过也要注意学习命令行哦... - Jon Skeet
显示剩余2条评论

3

有一些使用两个派生项目的方法,但这很快就会变得混乱。你最好只使用一个github项目并将其克隆到两台机器上。

你的兄弟可以简单地克隆你的原始项目并在他的机器上进行更改。

然后,当你推送到github时,他可以拉取,因为他正在查看与你推送到的相同的远程存储库,他将获得更改。

你需要给你的兄弟权限以便于协作,这样你也可以获取他所做的更改。


1

我已经和GitHub一起工作了3个月,关于GitHub和源代码控制有一个完整的世界。

也许你已经知道这个,但我想分享一些我在这个页面学到的东西。

GitHub只是仓库的托管服务。

但是,还有其他东西... Git

Git是一个接口,为用户提供控制和管理仓库所需的所有功能。换句话说:

Git是源代码控制,用于记录源代码的工具管理。Git是工具,而GitHub是项目的服务。

到目前为止,你一直在使用GitHub,好吧,我建议你也使用Git。尤其是在你现在遇到的问题上。


你们两个都没有犯错。也许是你的兄弟忽略了一些东西。

Git 中有两个非常常见的命令。

> git fetch //Bring all the changes from the remote server 
> git pull //Fetch down new data  from remote server

我相信这是你兄弟的问题。你的仓库是最新的,但由于某种原因,你兄弟的不是。这是因为他必须在特定时间将新更改(在你的仓库中进行)带到他的仓库中。如果您使用Git命令行,则可以使用以下命令(您也可以使用其他工具,如Visual Studio、Eclipse、TortoiseGit、Git Bash、Git Gui)。我知道命令行有时很复杂,但它也可以在没有其他人能够帮助时帮助您。
这是我给你的提示。实际上,几天前我在Stackoverflow上看到一个问题,解决方法是创建一个“镜像仓库”,它是如何工作的?好吧,每当该人在repo1(本地仓库)中提交时,自动将更改发送到repo2(镜像仓库...是的,您将把它放在你兄弟的电脑上)。但是,我找不到它了。我承诺会继续寻找那个问题,并尽快与您分享。
也许这不是你问题的确切答案。 祝你有美好的一天!

1

您的兄弟需要同步他对您的仓库的分支。

Github上这里有关所需操作的文档。


1
我建议使用Sourcetree,这是一款非常用户友好且重要的免费Git Windows客户端。

谢谢,我们将切换到SourceTree。它看起来更全面。 - bowl

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