2011-05-02 58 views
8

我有點新手與混帳,並感到沮喪與我的回購是如何工作..或在這種情況下不工作..所以我把它從git集線器刪除,刪除了項目中的git文件夾,並計劃重新開始。修復一個破碎的git回購 - 如何有一個新的開始

現在,當我試圖建立一個新的回購協議,我得到了很多信息,如:

warning: You appear to be on a branch yet to be born. 
warning. Forcing checkout of HEAD 

當我嘗試運行第一個承諾我看到:

error: invalid object 8bcb4b5fd612e3ad55fb07e4bed087c55afd0861 
fatal: git-write-tree: error building trees 

我跑git fsck,看到我錯過了一堆blob。

我該如何擦拭石板並重試?

+0

但你有一個以前的存儲庫的備份,對不對? – CharlesB 2011-05-02 16:51:58

+0

不..但我不在乎這個特定的..我只是想從這一點開始回購.. – Zac 2011-05-02 17:06:55

回答

6

好吧,

  1. 有備份
  2. git的清潔-dfx。
  3. MV git的的/ tmp/ _git.backup
  4. 的git的init
  5. git的補充。
  6. git的承諾

注意clean一步,防止了很多以前未跟蹤的東西被添加到新的回購-m「營救行動之後重啓回購」。一個好的.gitignore可以很好地防止這種效應。

如果你願意,你可以手動遷移某些/所有舊配置,像

vim -d _git.backup/config .git/config 

(或簡單複製)

我不會進入有關的潛在影響明顯的細節遠程克隆/分支:)

有一些方法可以調和這樣的事情,但現在,這似乎回答你的問題。

+0

我能夠做一個第一次承諾..但在我的下一個承諾我得到這個: 從f41e77d09f58505d844256092f00e32ac5d944f3 至9d82c78f89021f60c7e9301646e5da49d75f58d5 生成包... 完成計數13個對象。 結果有10個對象。 錯誤:無法找到0111a2bb274758f23582dee28521504f48220768 致命的:無法獲取的類型的對象0111a2bb274758f23582dee28521504f48220768 錯誤:包對象有奇怪的錯誤 解開EOF死前包頭球攻門被充分閱讀 納克裁判/頭/主N/A(解包誤差) – Zac 2011-05-02 17:52:10

+0

請詳細解釋您已遵循的步驟以及順序。消息'從'似乎根本不是來自git commit。所以,也許你保持/複製了一個鉤子。也許,你做了一些不同的事情... – sehe 2011-05-02 18:12:13

+0

好..我跳過了1 ..因爲我已經刪除了eveyrthing。語法git clean -dfx不適用於我,所以我分離出這些標誌。git clean -d -f -x。然後它讓我第一次承諾。然後,我對文件進行了一些更改,並嘗試提交該文件,那就是當我收到錯誤時。在之前有一行正在更新'refs/heads/master'。我不明白爲什麼它仍然試圖找到哈希,因爲我認爲我已經抹去了所有重新開始。 – Zac 2011-05-02 18:25:31