将git分支连接到GitHub分叉

8

我是通过终端而非GitHub使用git的,现在想知道如何在两者之间建立连接。

我有一个checkout,通过运行以下命令在终端中创建了一个分支:git checkout -b newbranchname

据我所知,GitHub将此称为"forking"。如何将我电脑上的分支连接到GitHub上的checkout的fork中?

(提前感谢您的帮助。我的背景是1.5年的subversion经验。)

2个回答

11

您有些混淆了。

首先,SVN中的checkout与Git中的checkout不同。在SVN中被称为checkout的内容在Git中被称为clone。您不是要检出一个代码库,而是要克隆它。"Checking out"的意思是切换到一个特定的分支,这或多或少与svn switch相同,但是您还可以在同一步骤中创建一个新分支(这就是-b的作用)。

因此,我假设您已经在本地使用了git,现在在github上创建了一个项目,并想将更改推送到github存储库。

fork是从github上现有第三方repo复制出来的。您可以点击“fork”按钮获取自己的该代码库的副本,以便您进行自己的更改。其他人随后可以将您所做的任何更改合并到他自己的代码库中。

要将您的github代码库与本地代码库关联,您需要在本地执行以下操作:

git remote add origin git@github.com:<username>/<repo>.git

推送您的更改:

git push origin master

您可以在这里找到git的一些很好的文档: http://git-scm.com/documentation


你的回答更偏向于帮助SVN用户,比我的回答更好。+1 - VonC

3

a/ 不,那不是分叉。
您已在本地存储库中创建了一个分支。
您可以将其推送到您的GitHub存储库中,它将作为一个分支存在。

GitHub手册页面:

要将本地分支推送到已建立的远程分支,您只需要使用

git push REMOTENAME BRANCHNAME 

如果您不想在远程分支上使用相同的名称,可以使用
git push REMOTENAME LOCALBRANCHNAME:REMOTEBRANCHNAME.

b/ 一个 fork 是在 GitHub 上的仓库克隆(你可以在本地桌面上再次克隆)

c/ 如果你想要比较 GitHub 上不同 fork 之间的分支(因为,再次强调,fork 只存在于 GitHub 上;在你的一侧,你只是克隆了远程仓库),你可以!
(好吧... 从两天前开始,也就是 2010 年 7 月 15 日起):
跨仓库比较视图:比较跨仓库的分支的能力。


记住,使用分布式版本控制系统(DVCS),你有一个额外的分支维度:发布(从/向远程仓库推送/拉取)。
创建一个分支并不意味着让所有人在GitHub上都能看到它。 它只是在你自己的本地仓库中创建。发布部分由你决定。

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