我正在使用一个Git仓库,该仓库的主分支为空,有多个分支。当我执行git pull命令时,它似乎只会拉取主分支的内容,而不会应用于其他分支。
我发现自己需要在每个分支上执行git checkout branch; git pull
才能推送。是否有一个命令或开关可以使用,以此 Pull 并应用所有分支和主分支的更改?
我正在使用一个Git仓库,该仓库的主分支为空,有多个分支。当我执行git pull命令时,它似乎只会拉取主分支的内容,而不会应用于其他分支。
我发现自己需要在每个分支上执行git checkout branch; git pull
才能推送。是否有一个命令或开关可以使用,以此 Pull 并应用所有分支和主分支的更改?
我认为没有可用的命令或开关,因为git pull
所做的是从远程获取更改(如git fetch
),然后将更改合并到您当前的分支(git merge origin/master
或其他您当前分支跟踪的分支)。问题不在于第一部分(实际上,git fetch
会获取所有远程分支的更改),而在于合并 - 当您有合并冲突时应该怎么办?您只能在工作副本上进行合并,而不能在git对象上进行合并。当您开始合并时,您需要中止它或解决所有冲突并创建合并提交。
你的问题不在于 git pull
,而是在于 git push
。尝试设置 git 只推送到当前分支正在跟踪的分支(如果适用):
git config --global push.default tracking
同时,你可以随时推送,但如果分支无法快进,你会收到拒绝通知。这些通常是你不太关心的分支。
上述配置将在未指定要推送什么内容时提供更加明智的行为。