Git Commit stage和Push and Visual Studio,实际发生了什么? &g



我在这里读了一些细节

Git Push说明

但是我仍然不太明白代码实际上在哪里,如果不是在'PUSH'之后的远程分支中。

我的场景是,我有一个名为"sprint -1"的本地sprint分支,它来自同一个远程分支。该远程分支是从"主"分支复制的。

使用VS2022,我在本地进行了更改,分阶段,然后选择"提交分阶段和推送"。在DevOps中,我创建了一个PULL REQUEST。我的理解是,更改必须坐在某个地方,尚未合并,等待管理员的批准。如果它还没有合并,DevOps中的变化在哪里?

所以只有当拉请求被批准并且我在devops中单击COMPLETED时,它才会合并,对吧?还是我的假设错了?

感谢

tl;dr:您的工作在DevOps的存储库副本上的一个名为Sprint-1的分支中。

我的场景是,我有一个名为"sprint -1"的本地sprint分支,来自同一个远程分支。该远程分支是从"主"分支复制的。

将分支视为"copy">是不对的,并且会混淆您的思维。相反,分支只是提交上的一个标签。

例如,假设你的主分支有三个提交:A、B和c。

A - B - C [main]

主分支只是一个标签"main">

现在你让你的Sprint-1分支脱离main。会发生什么呢?Git添加了一个新标签"Sprint-1">

$ git branch Sprint-1
A - B - C [main]
[Sprint-1]


使用VS2022,我在本地进行了更改,分阶段,然后选择"提交分阶段和推送"。在DevOps中,我创建了一个PULL REQUEST。我的理解是,更改必须坐在某个地方,尚未合并,等待管理员的批准。如果它还没有合并,DevOps中的变化在哪里?

您拥有存储库的完整副本,并且DevOps也拥有存储库的完整副本。当您推送时,您将更改上传到存储库的DevOps副本。默认情况下,这个回购被称为"origin"。如"您克隆您的存储库的原始存储库"。

push将提交上传到DevOps。您的更改位于DevOps的存储库副本中的一个名为Sprint-1的分支中。

让我们在创建分支之后回到我们的示例存储库。我们还将包括repo的devops副本的样子。

devops
A - B - C [main]
local
A - B - C [main]
[Sprint-1]

为了说明,我们将分别提交和推送。你还应该养成分别承诺和推动的习惯。想想"承诺";保存你的工作和"推送";如将你的作品强加给与他人分享你的作品;在你准备好分享你的工作之前不要强迫别人。

本地提交。

devops
A - B - C [main]
local
$ git commit -a
A - B - C [main]

1 [Sprint-1]

然后将您的更改推送给devops。这也会推送新的分支标签。

devops
A - B - C [main]

1 [Sprint-1]
local
$ git push
A - B - C [main]

1 [Sprint-1]

就是这样。当PR被接受时,合并分支,然后删除。

devops
A - B - C -- M [main]
 /
1
local
A - B - C [main]

1 [Sprint-1]

然后你拉(下载)合并的代码到你自己的仓库…

devops
A - B - C -- M [main]
 /
1
local
$ git pull
A - B - C - M [main]
 /
1 [Sprint-1]

并删除你的本地分支。

devops
A - B - C -- M [main]
 /
1
local
$ git branch -d Sprint-1
A - B - C - M [main]
 /
1

相关内容

最新更新