2017-09-01 63 views
0

我在我的企業中使用GitLab作爲存儲庫,我試圖調查分支管理中的一些標準。我看過this,這是關於Bitbucket分支結構的建議。bitbucket分支結構提供什麼優勢?

我想知道它提供了哪些優點,比較簡單的結構,如主分支和其他分支來自它。

據我所知,該標準是原產地服務器內的文件夾結構,您可以在其中找到:master,hotfix,feature,bugfix和release文件夾,其中每個文件夾都有關聯的分支。

它是正確的嗎? 你能否爲我提供更多的信息來更好地理解它?

+0

bugfix/foo只是分支的名稱。這不是一個文件夾或類似的東西。使用這種命名約定可以更容易地找出分支的用途,就這些。他們仍然像其他分支一樣分支。 –

+0

@JBNizet謝謝!很高興知道。 – Maik

回答

1

讓我來解釋一下文件夾分支之間的區別。

A 文件夾只是一個文件夾,一個目錄。它可以在任何分支。它包含項目文件,子目錄等。

另一方面,分支用於允許多個人在同一個項目上工作而不會互相干擾。假設兩個人在一個項目的不同領域工作,但共享一些文件。他們所做的是,他們都打開自己的分支,例如branch_joebranch_lidi。現在不是推到master,而是推到他自己的分支。通過這樣做master(通常用於主項目)會完好無損。在他們完成整個項目的一些子問題後,他們將分支與master合併。這些變化已經被應用,合併發生,一切都很好。

但爲什麼他們不能推到master第一?那麼,因爲他們正在改變相同的文件,例如foo.c,就會出現問題。假設Lidi首先更改foo.c並推送到master。現在喬也想推,但他不能,因爲他不在最新的分支master上。他首先需要拉動,但現在在分支master上有更新版本的foo.c。如果他沒有更改foo.c,他的本地版本將成功覆蓋,因爲git會知道他的本地版本來自之前的提交。但是因爲他在他的機器上更換了foo.c,git變得困惑。不確定是否覆蓋Joe的本地文件,不能複製Lidi提交的文件或要執行的操作。在這種情況下,它會將文件合併到一些臨時文件中,並使用>>>>><<<<這樣的行,Joe必須手動編輯文件以選擇他想要的更改。正如你所看到的,這很耗費時間。

但是,如果他們每個人都在自己的分支上工作,Lidi會將新的foo.c推到branch_lidi。現在Joe想推他的foo.c,他會將它推到branch_joe,並且由於分支不重疊,Lidi的提交不會打擾Joe的foo.c,他會毫不費力地將他的分支推送給他的分支。他們完成工作後,將分支合併到master。合併後,他們也可以刪除他們的分支,如果他們不再需要它們的話。

希望這足以說明問題,我沒有失去你。

+0

謝謝,很好的解釋,但它不是關於如何結構git分支。儘管如此,我發現它適合Git的初學者。 – Maik

+0

哦,對不起,但是,我更加解釋了爲什麼要使用它們。結構是肯定的,相當先進的git的東西(我的意思是正確地構造它們)。沒問題壽! – campovski

1

我一直在谷歌搜索更多,我發現this post

非常容易理解如何正確使用git和分支名稱約定。

希望能幫到別人。