Git:将 fork 合并到主仓库作为一个新分支

13 浏览
0 Comments

Git:将 fork 合并到主仓库作为一个新分支

在git中,是否可能将一个分支的主分支合并到主要仓库,但只作为一个新的分支?这样就不会真正替换任何内容,而且由于它在一个单独的分支中,回退更加容易。

0
0 Comments

问题的出现原因:提问者对于在Git中使用:符号的用法不太了解,想要了解这个符号的作用和用法。

解决方法:提问者可以参考git-scm.com/book/ch9-5.html中关于refspecs的内容,了解refspecs的定义和如何指定它们。此外,可以使用任何分支名称来替代"copy_of_master",或者指定新refspec的完整路径。

在Git中,分支只是一个refspec,因此你可以将任何refspec推送到其他refspec。例如:

git checkout master
git push origin master:copy_of_master

在这个例子中,"copy_of_master"是主仓库中的一个分支名称吗?我以前从未遇到过使用:符号的情况。你能解释一下它的作用吗?

是的,对于你的目的来说,它只是一个分支名称。你可以将其替换为任何你喜欢的分支名称,或者指定新refspec的完整路径。可以参考git-scm.com/book/ch9-5.html(尤其是关于推送refspecs的部分)了解关于refspecs是什么以及如何指定它们的更多细节。

0
0 Comments

问题:如何将fork的分支合并到主仓库作为一个新分支?

原因:在合并fork的分支到主仓库时,需要将fork的master分支获取到主仓库作为一个独立的分支。

解决方法:可以通过以下步骤完成合并。

1. 进入主仓库的master分支。

cd /path/to/master

2. 使用git fetch命令将fork的master分支获取到主仓库作为一个新的分支。将路径/path/to/fork和分支名master:fork替换为实际的路径和分支名。

git fetch /path/to/fork master:fork

3. 这样就将fork的master分支合并到了主仓库的fork分支中。

4. 最后,使用git push命令将合并后的分支推送到远程仓库。

git push origin fork

需要注意的是,所有操作都是在主仓库中进行,而不是在fork中进行。

此外,其实不需要手动创建mybranch分支,fetch命令会自动创建该分支。另外,技术上说,并不是真正的合并,而是仅仅进行了fetch操作。Fetch操作不会对工作目录进行任何修改,也不会修改分支,它只是获取对象并创建/修改指向它们的引用。不理解push命令的目的是什么。

0
0 Comments

在使用Git进行版本控制时,有时会遇到将fork的代码合并到主仓库中作为一个新分支的需求。下面将介绍这个问题出现的原因以及解决方法。

原因:

通常情况下,当我们在GitHub上fork一个仓库时,我们会将原仓库复制到自己的GitHub账户下,以便进行自己的修改和开发工作。然而,当我们希望将我们的修改和工作合并回原仓库时,我们需要将我们的fork代码合并到原仓库的主分支中作为一个新的分支。这样可以保持原仓库的主分支干净,并将我们的修改作为一个独立的分支进行管理。

解决方法:

要将fork的代码合并到原仓库的主分支中作为一个新分支,我们可以按照以下步骤操作:

1. 首先,将fork仓库添加为远程仓库。可以使用以下命令将fork仓库添加为一个远程仓库:

git remote add upstream 

2. 然后,使用以下命令创建一个新分支,并将远程仓库的代码拉取到本地:

git checkout -b <新分支名> upstream/master

在上述命令中,`<新分支名>`是你想要创建的新分支的名称,`upstream/master`是远程仓库的主分支。

3. 现在,你已经创建了一个新分支并拉取了远程仓库的代码。接下来,你可以在这个新分支上进行你的修改和开发工作。

4. 当你完成了你的修改和开发工作后,你可以使用以下命令将你的代码推送到远程仓库:

git push origin <新分支名>

在上述命令中,`<新分支名>`是你之前创建的新分支的名称。

5. 最后,你可以在GitHub上打开原仓库,并提起一个新的合并请求(Pull Request)。在合并请求中,选择你刚才推送的新分支作为要合并的分支,然后提交合并请求。

这样,你的fork代码将作为一个新分支出现在原仓库中,并且你的修改和开发工作将被合并到原仓库的主分支中。

通过上述步骤,我们可以将fork的代码合并到原仓库的主分支中作为一个新分支。这样可以保持原仓库的主分支干净,并将我们的修改作为一个独立的分支进行管理。

0