今天把vim的配置文件以及插件托管在github上,其中vim插件采用的是gitsubmodule托管。其中g(shù)itsubmoduleaddgit://github.com/xuhdev/SingleCompile.gitbundle/SingleCompile之后`gitstatus'了以下,結(jié)果出現(xiàn)了這樣的提示:....#modified:bundle/SingleCompile(untrackedcontent)#nochangesaddedtocommit(use"gitadd"and/or"gitcommit-a")然后看了Howtogetridofgitsubmodulesuntr...,按照上面的方法在SingleCompile子模塊中寫了.gitignore忽略掉未跟蹤文件,然后提交SingleCompile(為后面的失敗埋下了伏筆)。之后為了測(cè)試能否恢復(fù)我的vim配置。就在另一臺(tái)機(jī)上gitclonehttp://github.com/xuelangZF/vim_backup.git~/.vimcd~/.vimgitsubmoduleinitgitsubmoduleupdate結(jié)果SingleCompile插件果真無法clone,錯(cuò)誤提示fatal:referenceisnotatree:38ae49037e1e8c31484cac973941328be318e6aa原因是我在本地提交了SingleCompile(最后一步提交的hash值為38ae49037e1e8c31484cac973941328be318e6aa),但沒有push到SingleCompile的官網(wǎng)上,因此自然無法從官網(wǎng)得到38ae49這個(gè)分支。然后我嘗試:1.在github備份倉庫里面刪除SingleCompile:rm-rfbundle/SingleCompilegitrm-rbundle/SingleCompilegitadd.gitcommit-m"..."gitpushorigin_vim另外刪除了.gitmodules和.git/config中相關(guān)的配置節(jié)點(diǎn),之后重新用gitsubmoduleaddgit://github.com/xuhdev/SingleCompile.gitbundle/SingleCompile添加子模塊,結(jié)果git恢復(fù)了我之前刪除的版本:38ae49037e1e8c31484cac973941328be318e6aa。2.不死心的我又嘗試撤銷對(duì)SingleCompile提交gitrevertHEAD結(jié)果update的時(shí)候還是不行,這次無法獲得樹26460a12eb87948430f34fa0bb15fc264f368aac(這個(gè)是我撤銷提交的提交校驗(yàn)碼,囧..)問題:有沒有辦法讓SingleCompile正常鏈接到官方版本,而不是我的本地提交。2013.4.811:32參考了HowdoIremoveaGitsubmodule,發(fā)現(xiàn)還要:rm-rf.git/modules/$submodulepath,不然重新添加子模塊實(shí)際上是從.git/modules/$submodulepath復(fù)制過去的。(stackoverflow上采納的正確答案竟然都沒有說明這一點(diǎn),真是坑人)。不過不知道有沒有辦法將我本地對(duì)插件的更改也放在這個(gè)項(xiàng)目里(不是合并到子模塊插件作者的分支),并且能正常的clone,然后update下來。
github 子模塊更改后,update整個(gè)項(xiàng)目失敗
皈依舞
2019-04-06 16:57:39