Git,TFS 拉取请求工作流程

Git,TFS 拉取请求工作流程

这是我在观看此视频后尝试的工作流程Git/TFS 视频

所以我从我的开发分支创建一个分支

$ git checkout -b my-feature-branch development

然后我进行更改、暂存、提交并将更改推送到 TFS 服务器。

现在,当我转到 TFS Web 界面时,服务器上有一个“my-feature-branch”。

我点击“新拉取请求”并创建 PR 进入开发阶段,然后接受此 PR。此过程会删除 TFS 服务器上的“my-feature-branch”,但它仍保留在我的本地计算机上。

目前一切都很顺利。

回到我的本地机器,切换出功能分支:

git checkout development

删除本地分支

  git branch -d my-feature-branch

warning: deleting branch 'my-feature-branch' that has been merged to
         'refs/remotes/origin/test-pr', but not yet merged to HEAD. Deleted branch my-feature-branch (was d525adc).

获取最新信息 -

git pull -p

有时,我可能在删除之前进行拉取,删除失败,我必须强制删除它。

git branch -D my-feature-branch

我的工作流程错了吗?我应该在删除之前进行某种合并吗?为什么 git 在拉取后不知道功能分支已作为拉取请求合并,并让我删除而不出现错误?

答案1

为什么 git 不知道功能分支在拉取之后已经作为拉取请求合并,并且让我删除而不会出现错误?

从您提供的信息很难知道,但这里有两个猜测:

  1. 您确定在删除本地功能分支之前拉取了吗?如果没有,那么主分支当然不会有新的提交。

  2. 您如何合并功能分支?使用常规合并还是压缩合并?常规合并将功能分支提交合并到主分支,这样 Git 就知道它们都在那里。另一方面,压缩合并则合并所有内容来自功能分支,但通过创建新的提交来实现,并且 Git 不会跟踪新的压缩提交是从功能分支提交生成的事实,因此它不认为功能分支已合并。

(我强烈推荐不是使用压缩合并。保留原始提交(如标准合并一样)有助于使 Git 更好地工作。

相关内容