當我嘗試'git push origin master'到我的外部磁盤上的遠程存儲庫時,出現了git警告,指出在缺省情況下git將在下一版本的git中拒絕結帳庫。在外部磁盤上,我已經檢查了項目,並且希望將我在計算機上執行的更改發送給這些重新發布。 'git push origin master'是不是正確的方法?我是否需要在外部磁盤上儲存倉庫上的「git pull ...」?所以我不能推動變化,只是拉動它們?只使用「裸」存儲庫是不同的?因此,如果我的外部磁盤上的存儲庫是裸倉庫,我可以對其進行更改?我是否理解正確?Git只推送裸露的存儲庫?
回答
您不應該推送到非裸倉庫,因爲推送只會更新倉庫的內部狀態,並且不會影響已簽出的文件的磁盤上副本。因此,如果您沒有首先更新(通過git checkout
)回購庫中的文件狀態的磁盤上副本,就可以在回購中開始工作時遇到問題。
仔細閱讀警告。新的默認禁止僅限於推送到非裸倉庫中的當前簽出分支。推送到非裸存儲庫中的任何其他分支完全可以。
原因是推送過程沒有直接訪問工作樹,因此索引和分支頭在工作樹下發生更改。當你隨後進入工作樹時,看起來工作樹已經取消了與真正在開發中的任何改變混合在一起的變化。這使得分離兩組變更非常困難。
推動其他分行沒有這樣的缺點。如果需要,您可以轉到該存儲庫並將這些更改合併到檢出的分支中。
直到我閱讀[git ready»推送到裸露的存儲庫]時,我才明白這個答案(http://gitready.com/advanced/2009/02/01/push-to-only-bare-repositories.html)和[所有關於「光禿禿的」回購 - 什麼,爲什麼,以及如何解決一個非裸露的推動](http://sitaramc.github.com/concepts/bare.html)(特別是「是啊是的,但爲什麼我需要一個裸露的回購?「部分)。然而,我現在呢! – 2011-05-03 15:26:23
我們有能力推入未檢出分支,然後使用post-receive hook合併原始barnch並更新分支嗎? – 2013-04-02 13:25:18
- 1. 推到裸Git存儲庫(遠程)導致它停止裸露
- 2. 從裸存儲庫推送到另一個裸存儲庫
- 3. 推送到空的裸Git存儲庫失敗
- 4. 如何推送到非裸Git存儲庫?
- 5. 裸露的存儲庫權限。
- 6. 何時使用裸露的Git存儲庫?
- 7. 驗證裸露的Git存儲庫是否有數據
- 8. 將Git工作目錄轉換爲裸露的存儲庫?
- 9. 撤消推到裸露的git回購
- 10. 在裸露和非裸露的Git倉庫中的區別
- 11. 如何將一個非裸露的git存儲庫製作成裸露的一個?
- 12. 沒有裸存儲庫的Git tfs
- 13. IBM Bluemix Git存儲庫推送請求
- 14. 鏡像git非裸存儲庫
- 15. 將多個Git存儲庫推送到一個存儲庫
- 16. 在裸露的git存儲庫中活動分支的意義是什麼?
- 17. Git裸和非裸存儲器
- 18. 推送到遠程存儲庫時出現git推送錯誤
- 19. 如何創建一個可推動的裸Git存儲庫,也推動文件?
- 20. 從git-svn克隆的遠程存儲庫更新裸Git存儲庫
- 21. 在主目錄中存儲裸Git存儲庫的公約?
- 22. 推送到裸Git回購分支
- 23. 找到推送到裸倉庫的git分支
- 24. Git推送錯誤:「origin似乎不是git存儲庫」
- 25. Git存儲庫大小和git推送大小
- 26. 如何檢查存儲庫是否裸露?
- 27. 跟蹤分支裸露的git - svn的
- 28. 推送到github存儲庫
- 29. 推送到裸Git倉庫時出現'receive.denyCurrentBranch'錯誤
- 30. git添加到裸露的回購
那麼,推回購併不完全是從回購拉? – 2010-01-27 18:54:08
成爲導師:正確;推動實際上是取回的對立面。 Pull =獲取併入當前分支。 – ebneter 2010-01-27 19:14:23
關鍵是拉也更新工作樹中的文件(「磁盤上」文件),既不推送也不提取。 – mipadi 2010-01-27 19:34:41