詳解git submodule update獲取不到最新提交的代碼
今天遇到了一個(gè)git submodule update獲取不到最新代碼的問(wèn)題,鬧了半天原來(lái)是自己對(duì)git submodule理解不到位引起的。解決了后,感覺(jué)雖然沒(méi)有什么高深的地方,但是不清楚的時(shí)候還是需要費(fèi)時(shí)間去查找問(wèn)題,所以還是在此記錄如下。
1.問(wèn)題描述
同事在共同使用的一個(gè)工程里修改了代碼,這個(gè)工程在我本地的工程中是作為submodule來(lái)使用的,但是我在本地執(zhí)行以下命令卻獲取不到最新提交的代碼。
git submodule update --init --recursive
2.問(wèn)題原因
git submodule在工程中維護(hù)了一個(gè)文件.gitmodules文件,里邊記錄了子工程在當(dāng)前父工程下的存放路徑path和子工程的git路徑url。同時(shí),在父工程下的.git目錄中,還有個(gè)modules子目錄如下所示。
在這個(gè)modules中存放的就是父工程相關(guān)的子工程的路徑。進(jìn)入子工程后,可以看到里邊有個(gè)叫做FETCH_HEAD的文件:
查看該文件的內(nèi)容如下:
zhuwsh@zhuwsh-TM1705:~/work_space/autonomousDriving/.git/modules/src/utils/dw_xxx_center$ cat FETCH_HEAD
31ecb3458596f22134588460eefb9efa4bd6df23 branch 'master' of https://gitlab.xxx.com/xxx/dw_xxx_center
此時(shí)可以發(fā)現(xiàn),這里的commit id和git上最新提交的commitid不一樣,這里的commit id還是之前某一次的提交id。
這個(gè)其實(shí)要說(shuō)明的是,git submodule update獲取代碼的時(shí)候是和子工程的git路徑和這里的commit id有關(guān)聯(lián)的,獲取的就是對(duì)應(yīng)的git路徑下截止這個(gè)commit id的所有代碼,之后的代碼是不會(huì)獲取到的。
明白了這個(gè)原理后,就知道怎么來(lái)修改了。
3.解決方法
既然git遠(yuǎn)端服務(wù)器代碼已經(jīng)修改過(guò)了,那么本地每次執(zhí)行了git submodule update --init --recursive命令后自然需要在自工程對(duì)應(yīng)的路徑下執(zhí)行g(shù)it pull命令,執(zhí)行完后服務(wù)器端的最新代碼就更新到本地了。這個(gè)操作做完后再執(zhí)行g(shù)it submodule update命令,此時(shí)就可以看到上邊說(shuō)的FETCH_HEAD文件中的commit id發(fā)生了變化,已經(jīng)變?yōu)楫?dāng)前最新的commit id了。
zhuwsh@zhuwsh-TM1705:~/work_space/autonomousDriving/.git/modules/src/utils/dw_xxx_center$ cat FETCH_HEAD
ab214ead574d51755f4faabad4045de6486b49c2 branch 'master' of https://gitlab.xxx.com/xxx/dw_xxx_center
總結(jié)一下就是,在使用git submodule update --init --recursive獲取了自工程代碼后,還需要執(zhí)行下面兩條命令:
git pull git submodule update
到此這篇關(guān)于詳解git submodule update獲取不到最新提交的代碼的文章就介紹到這了,更多相關(guān)git submodule update最新提交內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Github?Copilot的申請(qǐng)以及在Pycharm的配置與使用詳解
- 使用Git向GitHub上傳更新內(nèi)容
- 配置Git并從GitHub上克隆項(xiàng)目
- 使用git處理github中提交有沖突的pull request的問(wèn)題
- 使用Git工具實(shí)現(xiàn)上傳本地項(xiàng)目到GitHub的方法
- 詳解git submodule HEAD detached 的問(wèn)題
- 詳解git submodule使用以及注意事項(xiàng)
- git-github 子模塊倉(cāng)庫(kù)更新(git submodule)及git中submodule子模塊的添加、使用和刪除操作
相關(guān)文章
學(xué)習(xí)哪門(mén)編程語(yǔ)言最有前途,最好賺錢(qián),需求量高
近期有很多同學(xué)想學(xué)習(xí)編程,不知道選擇哪種語(yǔ)言比較好,這里簡(jiǎn)單的給大家介紹一下,其實(shí)看個(gè)人發(fā)展,無(wú)論選擇哪個(gè)只要努力都是賺錢(qián)的2017-08-08比特幣上的數(shù)獨(dú)游戲合約的實(shí)現(xiàn)代碼
這篇文章主要介紹了比特幣上的數(shù)獨(dú)游戲合約的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01不同的編程語(yǔ)言輸出 “Hello World” 代碼
對(duì)很多人來(lái)說(shuō),每當(dāng)學(xué)習(xí)一門(mén)新的編程語(yǔ)言,寫(xiě)下的第一行代碼可能都是“Hello,World!“。因此,”Hello,World!" 已經(jīng)成為一段經(jīng)典程序。在成長(zhǎng)中,程序員通常會(huì)使用多種編程語(yǔ)言,大部分程序員甚至實(shí)現(xiàn)過(guò)十幾種”Hello,World!”版本。2022-12-12如何配置openai的返回Stream數(shù)據(jù)并轉(zhuǎn)發(fā)到h5頁(yè)面按markdown格式流式輸出(最新推薦)
這篇文章主要介紹了如何配置openai的返回Stream數(shù)據(jù)并轉(zhuǎn)發(fā)到h5頁(yè)面按markdown格式流式輸出,本文通過(guò)示例代碼演示如何使用OpenAI?API來(lái)實(shí)現(xiàn)流式輸出并分段加載,需要的朋友可以參考下2023-05-05