2012-03-06 48 views
1

嗯,我有我自己的git服務器,我用它在一些項目中工作。當拉和新版本的代碼時Git問題

所有客戶端都使用smartgit在windows中工作(v2.1 & 3)。

但是我注意到一些「問題」

  1. 當有人推新的代碼一堆你做拉(預期)你retrive新的代碼,但你的本地版本不會自動轉到新一。

    這是真的,因爲

    • 我需要找到被修改什麼文件,使我當地的復位,並推進到新的
    • 當推只新增1個文件的IMPOSIBLE問題推進到新版本
  2. 我就是發現其他情況下,當我們2人的工作......我們會說我們有: foo.txt的和跳回到bar.txt

    因此,如果我正在使用bar.txt並對其進行修改。 我推它到服務器

    所以,1分鐘後我的朋友編輯foo.txt(沒有先拉動變化)。當他想要推送數據時,git會給出錯誤,因爲服務器有新的更改(但沒有該文件)

    接下來會發生什麼?

從理論上講,喲必須能夠推動它,或者......先拉動然後推動。 但我們有第一個問題,這些文件不會覆蓋到新版本,所以你什麼都不做。

而我們發現的唯一解決方案(對我們來說太糟糕了)是複製所有項目。 進行拉動,覆蓋所有文件。並複製我們想要推送的修改。

這就是我們現在的方法,但非常緩慢,惱人的...

,並採取了混帳的一切美好的事物。

我們在這裏做錯了什麼?

+2

肯定有一些錯誤的過程。提取新代碼應該將工作副本更新爲最新的結果。如果你嘗試沒有smartgit並使用正常的git客戶端呢?你看到同樣的問題嗎? – 2012-03-06 09:35:15

+0

嗯好吧... git gui只是很好的工作。所以它似乎是一個聰明的git問題。 注意:無論如何,您需要指定git gui命令,以便在您推送到服務器時使用控制檯 – nax 2012-03-06 09:44:56

+0

,smart git提供「配置主分支」選項並說它保留您的本地同步器與遙控器......也許就是這樣。但我不能測試,直到其他人推一些東西 – nax 2012-03-06 09:52:14

回答

2

那麼在Greg Hewgill的幫助下,我終於修好了它。

問題是smartgit,而不是git。

當你拉它給人以「保持跟蹤」

這種選擇給3個可能的答案選項。

  • 跳過:什麼也不做
  • 配置:追蹤高手在線分支獲取所有與你的本地倉庫的變化。
  • 而另外一個我不記得

所以這個問題是因爲我點擊跳過所有的時間:\

+0

好的反饋___ – CharlesB 2012-03-08 09:45:31