2014-09-22 65 views
1

之前我使用Wincvs Sourcetree,它有一個很好的功能,我無法在Sourcetree中找到。Sourcetree Git - 簽出文件禁用修改

我想以這種方式設置它,首先我必須先檢出一個文件,然後才能對其進行修改(因此文件在結帳前只能讀取)。那麼每個想編輯這個文件的人都會得到一個通知,告訴其他人(用真實的名字)正在編輯這個文件。

現在(使用Sourcetree)它就像我在我的IDE中編輯文件,我在Sourcetree(我可以提交和推送的地方)看到更改的文件,但沒有檢查其他人是否正在修改相同的文件。

還有一個問題,它是否能夠以某種方式檢索更改後的文件?當我從服務器上獲取Sourcetreee試圖合併已更改的文件,但我希望它們從服務器上刪除(不合並)。我已經看到,可以通過這種方式將項目「刪除」並從服務器中取出,但我希望更改後的文件覆蓋我的本地文件。

感謝任何信息

+0

由於git本質上是分散的,所以我認爲不可能通知你正在製作一個特定文件的人 – 2014-09-22 09:43:47

回答

0

鎖定文件是根本不可能使用Git,因爲Git是分佈式的,而不是中央,不像CVS或顛覆(這有沒有關係SourceTree,因爲SourceTree只是一個Git客戶端)。如果其他人已經更改了文件(或更具體地說,樹),則在您推送提交時將執行該檢查。當另一個開發人員推送另一個提交時,您的推送被拒絕,您必須從其他開發人員處提取併合並提交(順便說一句,您應該多閱讀一下Git基礎知識)。

如果你想覆蓋本地文件,那麼你可以獲取分支,並重置你的本地分支到遠程分支(git reset --hard會覆蓋你所有的本地修改)。

+0

是的,它似乎真的不可能用git(在SO上發現了一些其他主題)。我想我只需要時間去適應它,因爲在wincvs中「更多」組織的事情。現在我正在同一個項目上工作兩個不同的工作站(因爲我的第一個項目是git)。而且我總是希望讓他們保持同步(當我改變某個電臺上的某個電臺時,我會推動它,並在稍後的另一個電臺上工作)。現在我經常在試圖從服務器拉出來時發生衝突,這很煩人(然後我刪除一個文件並再次拉出)。謝謝 – rimes 2014-09-22 09:59:50

+0

這不應該發生,如果你是唯一一個使用這個倉庫的人。你應該檢查一下,如果你在Git倉庫中有一些自動生成的文件,這可能會導致這些衝突。如果是這樣,將它從存儲庫中刪除並將它們添加到.gitignore文件會更好。 – dunni 2014-09-22 11:04:03

+0

這是第一個問題,但後來我把所有的.class文件(和我發現的其他擴展是自動生成的)設置爲忽略列表,但仍然得到一個XML文件的錯誤(這是一個Android應用程序我得到了Manifest.xml的錯誤)。但我會密切留意,正如我所說的,我需要一些時間來適應git的不同概念(與Wincvs相比) – rimes 2014-09-22 11:13:17