Git从其他仓库中拉出,并将更改推送到当前仓库

时间:2018-08-14 10:27:06

标签: git git-branch git-remote

我正在尝试从pull Repo1的内容,并将这些内容推到RepoX

下面是我到目前为止使用的命令,

git remote add Repo1 [repo1 url]
git pull Repo1 feature/branceName

使用上述命令,我可以成功地将内容从Repo1拉到RepoX

问题出在这里,当我查询git status时,它显示以下消息:

On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

Git没有显示我从Repo1中提取的内容。如何将内容推送到RepoX

1 个答案:

答案 0 :(得分:0)

如果您指的是远程而不是分支,请考虑一下示例所示。


将两个遥控器都添加到您的存储库

注意:每个遥控器都有自己的分支。在两个遥控器之间进行同步的首选方法可能是Fork,而不是手动完成此工作。

git remote add Repo1 [repo1 url]
git remote add Repo2 [repo2 url]

从一个遥控器签出分支

git checkout Repo1/master

这意味着您从本地的一个远程中拉出更改。

将分支推送到另一个遥控器

git push Repo2/master

如果两个遥控器上的历史记录都不一样,那么不幸的是,您将需要强行推入。

git push -f Repo2/master

替代解决方案

作为一种替代方法,您可以将git config设置为始终从一个远程站点拉出,然后再推送到另一个远程站点。请注意,这是否完全有意义,但是可以确定存在此选项。

一旦添加了两个遥控器,主遥控器将自动设置为推和拉。您可以使用以下命令覆盖推送配置:

git remote set-url --push Repo2 [repo2 url]

如果您真的在谈论分支,那么情况要简单得多,具体取决于您的需求。您可以将branch1合并为branch2或对其进行重新设置。

合并

git checkout branch1
git pull
git checkout branch2
git pull
git merge branch1

这将从两个远程分支中提取所有更改,并将branch1合并到branch2中。这是通过包含所有更改的合并提交完成的。

变基

如果您还希望将特定提交提交到分支中,则需要使用rebase。

git checkout branch1
git pull
git checkout branch2
git pull
git rebase branch1

与其进行合并提交,不包括合并所有从b1到b2的提交。