簡體   English   中英

GIT:從兩台台式機和筆記本電腦以及一個中央存儲庫(服務器共享文件夾)同步工作的工作流

[英]GIT: Workflow to sync work from two desktop and laptop and a central repo (server shared folder)

我創建了一個中央存儲庫(協議:文件),我想用它來保持我在工作筆記本電腦和工作台式機上所做的工作保持同步。 我能夠從 repo 推送和獲取文件,但我不清楚如何合並。 據我了解,在文件進入中央倉庫后,每台計算機都會有一個本地主/頭和一個遠程主/頭。 本地 master/head 被認為是遠程的一個分支,所以每次當我提交和推送一個新分支時,中央倉庫中都會出現一個。 這是顯示我如何創建上述結構的鏈接使用 GIT4Windows、共享文件夾和兩台計算機 - 此工作流程是否正確?

我以為我已經完成了,我打算稍后開始工作(今天是“稍后”),今天我意識到我忽略了一些方面。

考慮這種情況:
- 在筆記本電腦上創建了一個新模塊/功能
- 在桌面上創建了一個新模塊/功能
-每台計算機將其更改推送到中央存儲庫
- 現在每台計算機都可以檢查另一台計算機的新模塊並將其合並到本地主機中,兩台計算機同步,但中央存儲庫只有兩個分支(筆記本電腦一個和台式機一個)。

如果第三方想要訪問中央回購會發生什么? 這將是令人困惑的,當 repo 被克隆時,用戶會獲得一個 origin/master 和兩個分支,一個用於台式機,一個用於筆記本電腦。

合並中央倉庫中的兩個分支的工作流程是什么? 這是使用此設置的正確方法嗎?

似乎有一些輕微的誤解,所以讓我們嘗試清除它們:

據我了解,在文件進入中央倉庫后,每台計算機都會有一個本地主/頭和一個遠程主/頭。

兩個存儲庫都應該有一個master分支,正確。 head與所有這些無關,我認為您濫用了這個詞。

本地 master/head 被認為是遠程的一個分支,所以每次當我提交和推送一個新分支時,中央倉庫中都會出現一個。

本地 master 是本地分支。 它正在跟蹤遠程主服務器,是的,但它們是兩個不同的分支。 跟蹤意味着這個分支將從 X 拉取並推送到 X ,但它們仍然是兩個可以獨立發展的分支。 我特別是你的發言弄得a new branch shows up in the central repo ,因為當你從主推主再沒有新的分支出現時,主人已經存在。 不過,一些新的提交出現在 master 上。

考慮這種情況: - 在筆記本電腦上創建了一個新模塊/功能 - 在台式機上創建了一個新模塊/功能 - 每台計算機將其更改推送到中央存儲庫 - 現在每台計算機都可以檢查另一台計算機的新模塊並合並它在本地主機中,兩台計算機同步,但中央存儲庫只有兩個分支(筆記本電腦和台式機)。

如果第三方想要訪問中央回購會發生什么? 這將是令人困惑的,當 repo 被克隆時,用戶會獲得一個 origin/master 和兩個分支,一個用於台式機,一個用於筆記本電腦。

您錯過了工作流程中的一個重要步驟,即合並。 git 存在不同的工作流程,但它們幾乎共享一個真實的事實:只有一個分支收集所有更改,可能從功能分支合並。 不過,直接在 master 上工作並沒有錯。 由於 - 再次 - 從技術上講,您的本地 master 和 remote master 是兩個分支,您可以直接在本地 master 上工作,並且當您准備好“發布”您的代碼時,推送到遠程。 您可能需要先拉取以獲取尚未收到的新提交,但它有效。 現在你當然可以在不同的分支工作。 一些 git 工作流為每個功能推薦一個分支(GitHub 的 pull-requests 使用此模型工作),或者為每台計算機或開發人員推薦一個分支。 但是每隔一段時間,您需要收集在不同分支中所做的所有更改並將它們放在一個分支中,通常是 master,這意味着您需要將更改合並到 master。 何時以及如何取決於您。 通常,人們會在開發分支上工作一段時間,直到某個功能穩定並可以工作,然后再合並。 在這種情況下,master 將始終包含穩定的軟件,而您的開發分支包含尚未完成的功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM