从其他存储库中提取 Git 并将更改推送到当前存储库



我正在尝试从Repo1pull内容并将这些内容推送到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

如果您指的是远程而不是分支,请考虑这是您的示例显示的内容。


将两个远程数据库添加到存储库

注:每个遥控器都有自己的分支。两个遥控器之间同步的首选方法可能是 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 配置设置为始终从一个远程拉取,并推送到另一个远程。请注意,确定这是否有意义,但可以注意此选项的存在。

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

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

如果您真的在谈论分支,那么情况要简单得多,具体取决于您的需求。您可以将分支 1 合并到分支 2 中或将其变基。

合并

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

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

变基

如果你想将特定的提交也拉到你的分支中,那么你需要使用变基。

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

这将包括从 b1 到 b2 的所有单独提交,而不是合并提交。

最新更新