Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如何使用远程分支更新当前功能分支?_Git - Fatal编程技术网

Git 如何使用远程分支更新当前功能分支?

Git 如何使用远程分支更新当前功能分支?,git,Git,通常,在开发项目中,我们从主分支创建一个功能分支,将更改提交到功能分支,并向主分支提出请求 如果开发工作应该持续更长的时间,如何防止功能分支从主分支过时 在这种情况下,如何防止从主分支提取时发生冲突?如果您在功能分支上进行了提交,并且您的团队碰巧也在主分支上提交了一些内容,那么您别无选择,只能将最新的更改提取到主分支,然后从功能分支提取,您可以: git merge master 或 git rebase master -i 如果您没有使用rebase的经验,那么我建议您首先使用rebase

通常,在开发项目中,我们从主分支创建一个功能分支,将更改提交到功能分支,并向主分支提出请求

如果开发工作应该持续更长的时间,如何防止功能分支从主分支过时


在这种情况下,如何防止从主分支提取时发生冲突?

如果您在功能分支上进行了提交,并且您的团队碰巧也在主分支上提交了一些内容,那么您别无选择,只能将最新的更改提取到主分支,然后从功能分支提取,您可以:

git merge master

git rebase master -i

如果您没有使用rebase的经验,那么我建议您首先使用rebase,并将主功能合并到您的功能分支中。这将集成master的所有更改。它还将在您的功能分支上创建一个额外的合并提交。

假设您正在处理跟踪远程主分支的功能分支。如果您的团队成员向远程主分支添加了一个新的提交,并且您希望将该提交添加到您的功能分支,那么您需要遵循以下步骤以使您的功能分支保持最新

步骤1:检查是否有新的提交给主机

git fetch

fetch命令将为您提供有关远程存储库中更改的信息(如添加的新分支等)
-p
将为您提供相同的信息,但它将提供有关团队成员出于任何正当理由删除的远程分支的信息。请始终记住,fetch不会对本地存储库进行任何更改。它仅显示有关远程存储库中所做更改的信息

步骤2:检查您的功能分支状态(不一定)

它将向您显示您在master之后的提交次数

git fetch
步骤3:如果您的功能分支在一个或多个提交之后,则将远程主分支重新设置为您的功能分支

git rebase origin/master
你也可以这样做

git rebase
由于您正在跟踪远程主分支,因此它将直接重新设置源/主分支的基础。但是我建议您使用第一种方法,明确地说,我需要将origin/master重新设置为我当前的本地存储库

在我看来,这是使您的功能分支最新的最好方法

决不在您的
本地存储库中将源代码/主代码合并到您的功能分支
git merge
,因为它将在您的本地存储库中添加一个额外的合并提交,那么您的功能分支将在本地有两个提交,一个是您的功能分支提交,另一个是合并提交。因此,当您将同一个分支推送到远程时,它将添加两个提交,而不是一个提交。通常,这不会给出提交的干净历史记录


您需要了解两个工作流,一个是重设基础工作流,另一个是合并工作流。我从来没有使用git pull或git merge来更新我的功能分支,我认为这是一种标准的方法。我建议您学习Rebase工作流。
git rebase