3 回答

TA貢獻1780條經驗 獲得超5個贊
當您推送到非裸倉庫時,會發(fā)生這種情況。裸倉庫是僅由.git
目錄組成的倉庫。非裸倉庫也包括結帳。通常,您不應推送到非裸倉庫。實際上,在git的未來版本中,將禁止這樣做。如果您推送到非裸倉庫,則該倉庫的HEAD將與索引和工作副本不同步。
如果要創(chuàng)建人們要推送到的存儲庫,則應使用git init --bare
(git init --bare --shared
如果有多個用戶帳戶需要訪問它)git clone --bare
來創(chuàng)建它,或者要通過克隆現(xiàn)有存儲庫來創(chuàng)建它。

TA貢獻1852條經驗 獲得超7個贊
簡而言之,您的遠程存儲庫不再是光禿禿的存儲庫,而是您推動了遠程結帳分支。
請參閱“ 如何發(fā)布Git存儲庫 ”:
裸倉庫是沒有簽出的代碼工作副本的倉庫。它僅包含git數(shù)據(jù)庫。
作為一般規(guī)則,您永遠不應將其包含在工作副本中包含更改的存儲庫中。
為了確保不會發(fā)生這種情況,我們將服務器存儲庫設置為裸存儲庫-它沒有工作副本
從這里:
請注意,“推送”的目標通常是一個裸倉庫(即沒有自己的工作樹)。
您還可以推送到具有已簽出工作樹的存儲庫,但是推送不會更新工作樹。
如果您推送到的分支是當前已簽出的分支,則可能導致意外結果。
如果定義了分離的工作樹(例如,可以對應于Web服務器的DocumentRoot),則需要:
有
post-receive
你的遠程倉庫掛鉤(如一個這里所描述),運行“git checkout -f
”和忽略警告消息(
git config receive.denycurrentbranch ignore
)
在您的遠程存儲庫中檢查git config core.worktree
和的值git config core.bare

TA貢獻1812條經驗 獲得超5個贊
我從混亂的倉庫中克隆了一個新的裸倉庫,以防萬一,然后將其替換為克隆的裸倉庫,從而使倉庫成為裸倉庫。
我是git的新手,當我設置代表時,我忘記使用--bare選項。感謝你的幫助!
從那以后,我讀了O'Reilly的git書,現(xiàn)在是總git轉換了。
- 3 回答
- 0 關注
- 901 瀏覽
添加回答
舉報