我最近在 git 中执行了以下操作:
git checkout a
git pull
(这下载了一些添加到另一个分支的新代码b
)git merge master
git checkout master
- 此时我希望
master
包含在 2) 中下载的更改,但它们不存在。我又跑了git pull
一次,拿走了改变的东西。
是否git pull
仅将更改获取并合并到当前分支(我已签出)?如果是,是否有 git 命令将下载的更改合并到每个/特定的分支中?
git pull 是否仅将更改提取并合并到当前分支(我已签出)?
是的。
如果是,是否有 git 命令将下载的更改合并到每个/特定的分支中?
不,没有。
您可以做的一件事(或多或少实用,取决于您的特定设置)是为稳定的别名制作自制别名,但功能分支仍需要在需要时单独更新。
dev
假设和master
分支稳定的示例
git config --global alias.upd8 '!git stash && git checkout master && git pull && git checkout dev && git pull'
那么当您需要更新稳定的本地分支时,只需
git upd8
(由于命令与 链接&&
,bash 只会在没有返回错误代码的情况下继续,所以它不会更进一步,例如当前情况不是“可存储的”或者如果其中一个合并有问题。)
Does git pull fetch and merge the changes only into the current branch (which I'm checked out into)?
- 是的。可以将 --all 选项与git pull命令一起使用,但这只会更新有关所有分支的信息。它不会在所有分支上提取代码。
If yes, is there a git command to merge the downloaded changed into every/specific branches?
-- 不可以。要将代码拉入特定分支,您需要显式检出该分支,然后使用git pull命令。
git
Git 的文档对此非常清楚。
将来自远程存储库的更改合并到当前分支中。在其默认模式下,git pull 是 git fetch 后跟 git merge FETCH_HEAD 的简写。
更准确地说, git pull 使用给定的参数运行 git fetch 并调用 git merge 以将检索到的分支头合并到当前分支中。使用 --rebase,它运行 git rebase 而不是 git merge。
您可以使用 --all 获取所有遥控器。
- 全部
获取所有遥控器。
请注意,它是“获取”,而不是“拉”、“合并”或“集成”。
hub-sync
您可以尝试使用 GitHub 的hub。它的hub-sync命令同步本地分支。
从上游获取 git 对象并更新本地分支。概要
集线器同步 [--color]
- 如果本地分支过时,则快进;
- 如果本地分支包含未推送的工作,请发出警告;
- 如果分支似乎已合并并且其上游分支已被删除,请将其删除。
如果本地分支没有任何上游配置,但在远程有同名分支,则将其视为其上游分支。