【问题标题】:Git pull from from other repo and push changes to current repoGit 从其他 repo 中提取并将更改推送到当前 repo
【发布时间】:2019-01-21 04:25:05
【问题描述】:

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

【问题讨论】:

  • 请进一步定义您的术语。什么是 Repo1 和 RepoX?两个都是遥控器?我希望从你的第一句话开始,但是......就在那之后,你期望 RepoX 以某种方式从你的 pull 中获取内容......如果 RepoX 是一个遥控器,它不会被你的 pull 更新。您刚刚加入了当地的一个分支机构。
  • Repo1 和 RepoX 都是远程分支,我从 Repo1 拉取内容到本地,现在我需要将内容推送到 repoX
  • 你能添加类似“git log --oneline --decorate --graph --all”之类的输出吗?
  • 我确定您只是误解了这些消息。没有什么要提交的,因为git pull 合并了上游。

标签: git git-branch git-remote


【解决方案1】:

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


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

注意:每个遥控器都有自己的分支。两个遥控器之间的首选同步方法可能是 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]

如果您真的在谈论分支,那么情况会简单得多,具体取决于您的需要。您可以将branch1 合并到branch2 中或对其进行rebase。

合并

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

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

变基

如果您希望将特定提交也拉入您的分支,那么您需要使用 rebase。

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

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

【讨论】:

猜你喜欢
  • 2014-12-21
  • 2017-05-15
  • 1970-01-01
  • 1970-01-01
  • 2012-09-29
  • 1970-01-01
  • 2015-06-25
  • 2018-04-25
  • 2019-09-18
相关资源
最近更新 更多