2013-06-02 94 views
2

更新git問題我有我的git存儲庫超過1年,我一直在推動它,一切都很好。從拉(ssh)和克隆(http)

這裏是流量: (本地開發通過SSH) - >(上HostGator的混帳回購協議) - >(客戶端通過HTTP上HostGator的克隆)

我做很多的提交,並從我的本地開發推到git repo,並且一旦我認爲功能完成時,我通過發佈標準git pull origin master來更新客戶端。

直到今天,我注意到一個有趣的問題。問題在於即使我的​​本地開發人員進行了更改,但當我拉到客戶端時,它並沒有更新任何內容。我做了一些測試發現這種模式。

1)通過http clone: I git clone http://.../project.git new_project_by_http,並且做了git log,它顯示了最近一次提交是在幾天前。

2)通過SSH遠程: 我創建一個新的目錄(new_project_ssh)git init,和git remote add origin ssh://....。我做了一個git log和我的本地開發人員的最新提交。

有人知道爲什麼這兩種方法有區別嗎?我試過尋找問題,但沒有得到任何運氣。

+0

如果你之前沒有取/拉任何東西,你會如何登錄第二個例子?遙控器是否在您的機器上,或者您在某個地方託管它?在第一種情況下,在後面的聯繫管理員中描述服務器設置(git/apache)。 –

+0

在第二個示例中,我使用了之前的相同憑據。 – excel28

回答

0

這兩個協議之間沒有區別:使用https或ssh來源的git pull會給你,確切地說的結果相同。

唯一的區別是在本地客戶端回購當前狀態:

  • 無論你是在錯誤的分支,是拉一個未更新
  • 或者你是沒有分支可言,這稱爲分離式HEAD:請參閱「Why did git detach my head?」。
+0

是的,我完全同意從http或ssh的git pull應該給我同樣的結果。我沒有任何分支,只是頭。如果我做「git branch -a」,只有「master」出現。沒有其他分支。 – excel28