我在這里閱讀了一些細節
Git推送說明
但是我仍然不太明白如果在“推送”之后代碼不在遠程分支中,代碼實際上在哪里。
我的場景是,我有一個名為“Sprint-1”的本地 sprint 分支,取自同一個遠程分支。該遠程分支是從“主”分支復制的。
使用 VS2022,我在本地進行更改,暫存,然后選擇“提交暫存并推送”。在 DevOps 中,我創建了一個 PULL REQUEST。我的理解是,該更改必須位于某個地方,尚未合并,等待管理員批準。如果尚未合并,DevOps 中的變化在哪里?
因此,只有當該拉取請求獲得批準并且我在 devops 中單擊 COMPLETED 時才會合并,對嗎?還是我的假設錯了?
謝謝
uj5u.com熱心網友回復:
tl;dr:您的作業位于 DevOps 存盤庫副本上的一個名為 Sprint-1 的分支中。
我的場景是,我有一個名為“Sprint-1”的本地 sprint 分支,取自同一個遠程分支。該遠程分支是從“主”分支復制的。
將分支視為“副本”是不對的,并且會混淆您的想法。相反,分支只是提交上的一個標簽。
例如,假設您的主分支有三個提交:A、B 和 C。
A - B - C [main]
主分支只是一個指向提交 C 的標簽“main”。
現在你讓你的 Sprint-1 分支脫離主分支。怎么了?Git 添加了一個新標簽“Sprint-1”,也指向 C。
$ git branch Sprint-1
A - B - C [main]
[Sprint-1]
而已。
使用 VS2022,我在本地進行更改,暫存,然后選擇“提交暫存并推送”。在 DevOps 中,我創建了一個 PULL REQUEST。我的理解是,該更改必須位于某個地方,尚未合并,等待管理員批準。如果尚未合并,DevOps 中的變化在哪里?
你有一個完整的存盤庫副本,DevOps 也有一個完整的存盤庫副本。推送時,您將更改上傳到存盤庫的 DevOps 副本。默認情況下,此 repo 被稱為“origin”,如“您從中克隆存盤庫的原始存盤庫”。
推送會將您的提交上傳到 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/531307.html
標籤:混帐天蓝色的devops
上一篇:將git分叉到新存盤庫但仍然能夠合并存盤庫并將更改推送到一個存盤庫的最佳方法?
下一篇:以編程方式將當前分支插入命令
