我可以在Git中将一个存储库的更改推送到另一个存储库?

时间:2014-12-19 03:15:51

标签: git github bitbucket

我目前正在开展一个项目,我的雇主给了我对项目主存储库的写访问权限,在那里他合并了我认为工作的存储库。我指定了一个特定的分支。

现在他希望我做一些更改并将它们推送到此存储库。我之前没有和Git合作过大型项目。是否有可能我只是在我正在工作的存储库中进行更改并继续将其推送到主存储库并且Git将继续合并它们?这是如何工作的?

2 个答案:

答案 0 :(得分:2)

这是可能的,但你真的需要了解Git和分布式版本控制是如何工作的。 Git使用了几种常见的工作流程,您应该咨询您的雇主以了解他们如何使用它。这是一个基本教程:https://www.atlassian.com/git/tutorials/comparing-workflows/

答案 1 :(得分:1)

Git推动不合并任何东西;它只是将对象传输到远程存储库并更新分支头。它基本上是一种具有修订意识的文件同步形式。

所有编辑都在本地进行,因此Git就是这样:你在本地仓库中完成所有提交准备,合并等工作。上游存储库甚至无法完成大部分内容,因为它们“裸露”:它们没有工作树。如果您要登录服务器并进入上游Git存储库,您将无法进行任何变基,合并或任何类型的排序。

我猜老板已将主存储库设置为本地存储库的“远程”。看一下.git/config文件。

如果一切设置正确,您应该能够提交到本地分支,然后进行推送以使上游分支看起来像本地分支。

如果其他人在您之前将某些内容推送到分支机构,您可以将其更改与git pull --rebase集成,修复所有冲突并重试。合并都是在本地完成的。

当您推送的新更改基于与上游分支头匹配的相同父提交时,您的推送将成功:即,没有比您正在使用的基线更新的上游。在这种情况下,您的更改是“快速更改”。

Git检测并阻止非快进更改(意味着上游存储库中的分支上存在更新的东西,如果推送了您的分支版本,将会被破坏)。因此,当您的更改准备好发布时,尝试git push没有任何害处。当它不起作用时,你必须拉动整合,然后再试一次;上游没有做任何整合。