编辑
让我来解释一下,我想合并两个同名但不同远程地址的git仓库。
也就是说,在git中我有一个叫做repo_name的仓库,其中有一个分支名为repo_name_a,并在另一个分支上添加了一个分支,名为repo_name_b。
现在,我该如何将它们合并呢?
git clone https://github.com/master_repo/master_repo
,可将该repo复制到您的本地计算机。然后再创建一个新的分支, git checkout -b test_repo 也是正确的。
但是,在您的新分支中工作时,您会多次运行 git add <文件名称>
和 git commit
,然后想要更新远程存储库的测试分支的历史记录时,使用 git push origin test_repo
。
这意味着将我的内容推送到test_repo分支的原点。
如果您独自一人在存储库中工作,则可以在本地机器上将更改合并到主分支,最简单的方法是:
git checkout master
git merge test_repo
您可能不会遇到合并冲突,但如果遇到,您需要解决它们。然后,从本地主分支开始,您可以使用 git push origin master
来更新远程分支。
如果您正在与协作者合作的项目上工作,则可能希望使用github网站界面从test_repo分支创建一个“拉取请求”到主分支。您的协作者随后可以审查您的更改并提出改进建议,并最终负责将您的分支合并到主分支中。如果你正在个人项目中工作,你也可以这样做。创建一个拉取请求,其中包含要求被合并到主分支中的更改的高级描述,然后你可以在 web 界面上将拉取请求合并到主分支。这是一种更加安全、更好的方法,因为这最终是使用 Git 协作工作的方式,而且它留下了一个良好的描述性历史记录,说明所有合并到主分支的操作都完成了什么。
如果你选择这样做,在分支合并后,你可以远程删除它并在本地运行
git remote prune origin
来删除你的本地分支(以及所有已从远程删除的本地分支)。
git checkout test_repo
和git merge master
时,我本来以为它们会合并,但实际上却提示already upto date
,尽管它们明显处于不同的状态。 - spartak