假设有两个仓库 Foo 和 Bar。我想把 Bar 合并到 Foo 中,但是只想合并到一个名为 baz
的独立分支中。
git switch -c baz
<= 在这里创建 baz 分支并切换到该分支。
假设有两个仓库 Foo 和 Bar。我想把 Bar 合并到 Foo 中,但是只想合并到一个名为 baz
的独立分支中。
git switch -c baz
<= 在这里创建 baz 分支并切换到该分支。
你无法将一个 仓库 合并到一个 分支 中。你可以将另一个仓库的一个 分支 合并到本地仓库中的一个 分支。假设你有两个仓库,foo
和 bar
都位于当前目录中:
$ ls
foo bar
切换到 foo
代码库:
$ cd foo
将bar
存储库添加为远程并获取它:
$ git remote add bar ../bar
$ git remote update
在“foo”代码库中,基于当前所在的分支创建一个新的名为“baz”的分支:git checkout -b baz
。$ git switch -c baz
合并bar
仓库的分支 somebranch
到当前分支:
$ git merge --allow-unrelated-histories bar/somebranch
在 Git 版本 2.9 之前,不需要使用 --allow-unrelated-histories
。
git checkout --orphan baz
,然后在合并之前执行 git rm -rf .
。 - nomadoda使用“真实”命令进行更新:
从您的仓库目录开始,确保您的工作副本是干净的(没有更改、添加或删除文件)。
创建一个新分支:
git checkout -b <my-branch>
添加第二个远程主机,然后提取它:
git remote add <repo-name> git@github.com:xxx/<repo-name>.git
git remote update
将它们的一个分支合并到您当前的分支中:
git merge <repo-name>/<their-branch>
如果您不知道要选择哪个<their-branch>
,那就选择master
如果您确定要接受所有远程更改并避免冲突(覆盖您的更改),则可以在最后一步为git merge
指定 -X theirs
选项。
如果您想将其添加到子目录中,则应该使用git子模块
--allow-unrelated-histories
(详情请参见:https://dev59.com/ploU5IYBdhLWcg3wAjYs#37938036)。 - Jordy流行的rien333评论了被接受的答案,并要求提供带有填充示例的命令。
例如,我正在使用LLM聊天模板Big-AGI,并且有自己的Github存储库,它不是一个分支,而是一个副本。几周后,我想要集成最新的更改。
首先,我需要确保在GitHub上设置了SSH密钥。
使用以下命令验证SSH密钥是否正确设置:
ssh -T git@github.com
// Hi andrewschreiber! You've successfully authenticated, but GitHub does not provide shell access.
完成后,我在终端中导航到我的代码库并输入
git checkout -b update-from-boilerplate1
git remote add big-agi https://github.com/enricoros/big-agi
git remote update
git merge --allow-unrelated-histories big-agi/main
// Solve any merge conflicts
git checkout main
git merge update-from-boilerplate1
hub
命令,您可以执行hub merge <github-pr-url-from-the-browser-omg>
。但是在此之前,您需要执行git remote add upstream <the repo url>.git
。我不知道远程名称是否需要为upstream。 - Devin Rhode