通常,在开发项目时,我们会从 master 分支创建一个功能分支,并将更改提交到我们的功能分支,并向 master 分支提出拉取请求。
如果开发工作要跨越更长的时间,如何防止功能分支从主分支过时?
在这种情况下如何防止从master拉取时发生冲突?
答案 0 :(得分:2)
如果您在功能分支上进行了提交,并且您的团队碰巧也在主分支上提交了一些内容,那么您别无选择,只能将最新更改拉到主分支,然后从功能分支中提取您可以:< /p>
git merge master
或
git rebase master -i
如果您没有使用 rebase 的经验,那么我建议先将 master 合并到您的功能分支中。这将整合 master 的所有更改。它还会在您的功能分支上创建一个额外的合并提交。
答案 1 :(得分:2)
假设您正在处理跟踪远程主分支的功能分支。如果您的团队成员向远程主分支添加了一个新提交,并且您想将该提交添加到您的功能分支,那么您需要按照以下步骤操作以使您的功能分支保持最新。
第 1 步:检查是否有新的提交给 master。
git fetch
或
git fetch -p
fetch 命令将为您提供有关远程存储库中更改的信息(例如添加了新分支等等)。 -p
会给你同样的东西,除了它会提供有关团队成员出于任何充分理由删除的远程分支的信息。永远记住 fetch 不会在本地存储库中做任何更改。它只显示有关远程存储库中所做更改的信息。
第 2 步:检查您的功能分支状态(不一定)
git status
它会告诉你你在 master 后面/后面有多少提交。
第 3 步:如果您的功能分支落后于一次或多次提交,则将远程 master 分支重新定位到您的功能分支中
git rebase origin/master
你也可以这样做
git rebase
由于您正在跟踪远程主分支,因此它将直接重新设置原点/主分支。但我会建议您使用第一种方法,明确说明我需要将源/主库重新设置为我当前的本地存储库。
在我看来,这是使您的功能分支保持最新的最佳方式。
<块引用>从不将 origin/master 合并到您的 git merge
中的功能分支 local repository
,因为它会在您的本地存储库中添加一个额外的合并提交,然后您的功能分支将具有本地的两个提交是您的功能分支提交,另一个是合并提交。因此,当您将同一个分支推送到远程时,它将添加两个提交而不是一个提交。通常,这不会提供完整的提交历史记录。