我在一个代码库中有两个分支(release + dev),我经常在这两个分支上工作。但是,当我在分支之间切换时,我的项目会触发一个长时间的构建过程(大约30分钟左右),因此我宁愿避免频繁切换。为了在这两个分支上工作,我创建了2个库的副本,这很好用。
但是,当我想要合并更改时,我需要使release分支处于激活状态以拉取更改。然后我可以切回develop分支,执行合并和提交操作。但正如我上面写的那样,这次切换会导致长时间的重建。有没有另一种方法可以在不首先激活分支的情况下拉取分支?
我在一个代码库中有两个分支(release + dev),我经常在这两个分支上工作。但是,当我在分支之间切换时,我的项目会触发一个长时间的构建过程(大约30分钟左右),因此我宁愿避免频繁切换。为了在这两个分支上工作,我创建了2个库的副本,这很好用。
但是,当我想要合并更改时,我需要使release分支处于激活状态以拉取更改。然后我可以切回develop分支,执行合并和提交操作。但正如我上面写的那样,这次切换会导致长时间的重建。有没有另一种方法可以在不首先激活分支的情况下拉取分支?
git merge <branch_to_merge>
。我有误解你的意思吗? - Gauthiergit fetch <dev_remote> <branch>
release
仓库中有一个更新的dev
分支,尽管您不需要将其检出。请注意,更新的dev
分支的名称包含:远程名称、斜杠,然后是分支名称。这是一个远程分支,在gitk
中显示为两种颜色,并且可以使用git branch -a
查看为remotes/<remote_name>/<branch>
。release
分支中:git merge <dev_remote>/<branch>
cd <release_repo> # you are on the release branch
git pull <dev_remote> <branch_name_in_dev_remote>
dev_remote
分支上的代码将被获取并合并到你目前所检出的 release
仓库分支中。
同样,您需要使用 release
中的新合并提交更新您的 dev
存储库:
cd <dev_repo> # you are on the dev branch
git pull <release_remote> <branch_name_to_pull>
dev
仓库中的本地release
分支,请将目标本地分支添加到fetch
命令中:git fetch <rel_repo> <remote_release_branch>:release
。这将会更新你的本地引用。但是如果你不想无论如何都检出它,我不知道你会怎么做。 - Gauthier我最终得到了另一个仓库的副本,专门用于合并。由于此文件夹中没有构建正在进行,因此我可以轻松地在分支之间切换。完成所有合并并推送后,我可以将它们拉入各自的工作文件夹中。
master
吗?这不是git
的问题,而是两个分支中代码显然存在很大差异的问题。 - chepner