2016-12-05 120 views
0

我是Git中的新成員,並且存在一些無法解決的問題。 在我的服務器上安裝了MS WIN服務器(本地局域網),並且每個開發者都克隆了這個回購站。我們使用SmartGit作爲GUI。 在服務器(中央倉庫)上沒有開發或更改文件。 當一些開發人員更改某些文件並提交&推送它們時,它看起來一切正常。 但是在中央倉庫(在服務器上),這些更改不適用於任何文件。相反,如果我想將所提交的更改發送到服務器,則必須「丟棄」服務器上的更改(意味着服務器的副本)。另外對於其他開發人員,只有在「丟棄」之後才能看到更改。在遠程提交和推送時放棄本地git更改

我不知道這個行爲是否正常,但對我來說有點奇怪。

每個開發人員都定義了本地回購以及中央回購,但是在中央回購中我沒有定義開發人員的存儲庫。 (可以是一個問題???)

我試過git reset --hardgit clean -df以及對服務器的git bash的其他類似的命令,但沒有什麼幫助。

任何線索,如果掛鉤可以幫助automaticaly丟棄本地更改服務器時,新提交&推?或者任何其他解決方案...?謝謝!

+0

這是有點不清楚你提到的某些陳述。首先:注意開發者不會創建「自己的倉庫」,而是克隆共享倉庫。此外,他們在本地克隆中設置了正確的上游存儲庫,以便實際上推送到遠程存儲庫實際上被推上了。同時注意不要混淆不同分支機構的更改。總的來說,在處理你使用的GUI的論壇中提出你的問題可能更有意義,因爲看起來你並不是在解決git問題,而是在討論GUI問題。 – arkascha

+0

對於所有人來說,使用普通命令行客戶端首先感受'git'可能是有意義的。命令行客戶端(通常不是特定於某個特定軟件)的_huge_優勢在於,您可以確切知道您實際執行的操作,實際發生的操作以及實際結果。在你和真實邏輯之間沒有GUI或前端,這往往使事情變得更加複雜,並引入新的混淆來源。 – arkascha

回答

1

人們推入的中央存儲庫應該設置爲裸存儲庫,而不需要任何工作樹。否則你不能e。 G。推送到檢出分支。 Git會阻止這一點。如果您還想在某個中央位置上使用當前代碼,則應該有一個額外的存儲庫,該存儲庫可以從該中央存儲庫中進行克隆,並將一些掛鉤安裝到中央存儲庫,以便觸發另一個存儲庫以獲取最新更改或類似內容。

0

請嘗試以下步驟並驗證一個接一個:

  1. 正如arkascha和吸血鬼建議,最好是直接使用git命令行(GIT的bash),每個開發者只需要使用git clone <central repo path>克隆回購到本地計算機(這個很重要)
  2. 每一個開發者在本地計算機上修改,然後提交更改
  3. 推到中央回購,請仔細檢查之前,如果再mote回購是git remote -v的中央回購。如果是,則推送更改。
+0

感謝所有提示... – Tommy301

0

感謝所有的提示...

當我開始使用Git工作不到兩個月前,我研究過一個可用的書籍,教程以及YouTube頻道。我認爲裸回購對我來說不是解決方案,因爲我喜歡使用git存儲庫作爲服務器上的備份副本。當我安裝回購協議並且沒有找到其中的文件副本時,我認爲(如少經驗)這是一種錯誤的方式,所以我使用了定期回購。

今天,我爲服務器上的中央倉庫配置裸倉庫,然後爲每個開發人員配置備份副本和存儲庫的常規倉庫。現在它像魅力一樣工作。本地回購等待大約3分鐘以檢測中央回購的變化。

再次感謝您的提示。

PS 桂界面工作得很好,而且那裏沒有問題。

相關問題