2013-04-22 174 views
0

我有一個裸露的回購網絡驅動器和兩個客戶端克隆php項目到他們自己的PC。 所有這些都由TortoiseGIT操作。檢測到更改爲GIT裸回購

假設客戶端A和客戶端B具有相同的修訂副本。

  1. 對index.php做一些修改。
  2. 承諾自己的回購,然後推到裸回購。

但是,在客戶端B項目文件夾中,更改後的文件仍作爲更新(帶有刻度的綠色圖標)。

無論如何,客戶B會有通知或實時更改TortoiseGIT的覆蓋圖標嗎?

爲什麼我想這樣做,因爲我們的客戶端在開始工作之前需要執行git fetch命令並查看日誌。

他們可以在開始工作之前進行git合併,而不是稍後解決衝突。

+0

它看起來像你會讓克隆表現得好像他們在同一個目錄中(就像每個人都在同一個結賬中工作一樣)。這是不推薦的(對於任何VCS),準備就緒時獲取/提取最新更改是最好的方法。 – 2013-04-22 07:18:01

+0

你應該對其他客戶端進行「git pull」。你可以看看'git hooks'的一些方法來自動化這個/到一定程度/但(a)我不認爲它通常在Windows上使用,(b)它對檢出分支有限制。 – sehe 2013-04-22 07:18:08

回答

2

GIT是一個分佈式版本控制系統。這意味着每個本地存儲庫都可以 - 也可以 - 獨立工作。只有在執行提取時,拉或推纔會聯繫另一個存儲庫。

本地存儲庫不關心任何配置的遠程存儲庫的實際狀態,除非通過提取或拉取明確告知。 GIT沒有辦法實現你想要做的事情。
您可以通過掛鉤(在裸倉庫中)和腳本(在每個開發人員機器中)的組合來實現此目的,但我會建議您不要這樣做。


BTW:對於最集中的版本控制系統,如SVN例如,這個工程一樣的:你以前的工作拷貝知道該服務器有一個改變的版本做一個更新。

+0

感謝您的回答,所以GIT和SVN無法做到這一點,TFS如何?或者任何VCS支持這個功能? – Cheung 2013-04-22 07:36:23

+0

@SilverNight:我不知道。但是,TFS支持鎖定一個文件,即能夠編輯一個文件,您必須首先檢查它。如果另一個用戶已經簽出該文件並將其鎖定,則您的結帳將失敗。但是這隻能防止用戶同時在同一個文件上工作。它並不妨礙處理陳舊的數據。在開始工作之前,只要養成更新本地副本的習慣。這就是其他人也可以工作的方式:) – 2013-04-22 07:39:51