2016-03-31 54 views
1

我有兩個的Git分支,A和B.我使用Git部署從服務器1到服務器更改2.混帳不響應分支修改

科A的文件集數。分支B有一個額外的目錄(foo),其中包含更多文件,並且對額外目錄之外的其中一個文件(bar)進行更改。我有本地分支和遠程分支源/ A。分支B和分支起點/ B也一樣。

在服務器1上,如果我檢出分支A,我在bar中看到原始內容,並且沒有看到額外的目錄foo。如果我簽出分支B欄更改和額外目錄,則會出現foo。

太好了。服務器1工作。

問題出在服務器2上。如果我簽出分支條更改,但額外的目錄條不會像在服務器1上那樣消失。在服務器2上,如果我更改爲分支B條,也會更改額外的目錄,foo仍然存在。總而言之,當我通過git部署到服務器2時,只會發生文件內的更改,並且不會發生文件的添加/刪除操作。

這是git的正常行爲還是應該當我檢出分支A時文件消失?

感謝

+0

是否對服務器1上的所有更改進行了提交和推送?你有沒有在服務器2上執行git pull? –

+0

我做了一次抓取和結帳,但是當我在結賬分支B後做了一次拉取後,我得到:$ git pull 當前分支沒有跟蹤信息。 請指定您想要合併的分支。 詳見混帳式(1) 混帳拉 如果要設置這個分支跟蹤信息你可以這樣做: 混帳分支--set-上游到原點=/ b – splunge

+0

您使用了「部署」這個詞:根據我的經驗,很多時候人們說「部署[在服務器上]」,他們暗示服務器上的存儲庫是用'--bare'創建的,而且有一個post-receive鉤子,在服務器上做一些特殊的事情。然而,你接着說話,就好像你登錄到服務器並在那裏做普通的工作樹命令,就好像它不是一個''''''''''''''版本庫。所以,我不確定你的實際設置是什麼。如果您顯示了創建這些存儲庫並且您現在正在使用的全部命令序列,則可能會有所幫助。 – torek

回答

1

的問題是在服務器上。如果我籤分支桿的變化,但額外的目錄,酒吧不消失,因爲它在服務器1

這是究竟如何git的行爲,一旦你簽出分支工作目錄的內容更新與分支的內容。

這是分支背後的全部觀點。您可以處理不同的內容。

你還怎麼接受它?每次簽出不同的分支時,它會檢出整個存儲庫中的所有文件?

它只檢查給定分支的內容並更新工作目錄。

+0

我不明白你的意思。 git是否根據不同的分支去除和添加文件,或者只是改變文件的內容?我期望它根據特定分支的提交狀態添加和刪除文件。 – splunge

+0

閱讀此內容,一旦你做錯了解釋,它會給你一個更好的圖片。 http://stackoverflow.com/questions/34519665/how-to-move-head-back-to-a-previous-location/34519716#34519716 – CodeWizard

+0

https://git-scm.com/book/no-nb/ v1/Git-Branching-What-a-Branch-is – CodeWizard