微信小程序多人开发-版本管理
?最近在做微信小程序開發(fā)的時(shí)候,琢磨了一下開發(fā)工具提供的版本管理的使用方法,太細(xì)的東西還有些不懂。但是對(duì)于團(tuán)隊(duì)多人開發(fā)一個(gè)項(xiàng)目,可以達(dá)到基本的需求,不用再抽出一個(gè)人來每天手動(dòng)合代碼了。為了讓自己以后再用上不會(huì)迷糊,所以記錄一下,如果你近期也想學(xué)習(xí)一下的話,希望下面的內(nèi)容可以給你提供參考。
目錄
目錄
一、具體步驟
二、一些tips
1.遠(yuǎn)程代碼管理
2.網(wǎng)絡(luò)很慢,一直拉取不下來代碼的時(shí)候怎么辦?
?3.步驟概括
?4.head
?5.將head重置到xxx
6.檢出xxx分支
7.本地倉庫的分支和遠(yuǎn)程倉庫的分支進(jìn)行同步時(shí)用合并還是變基
8.合并沖突問題
9.明明只修改了一點(diǎn)點(diǎn)東西,成員拉取時(shí)卻拉取了很多個(gè)文件
一、具體步驟
????????搜了不少的博文的,這個(gè)寫得比較詳細(xì),可以跟著它的步驟走:參考鏈接
二、一些tips
????????跟著上面那個(gè)參考鏈接可以實(shí)現(xiàn)合并代碼和提交新版本,這里我主要寫一些總結(jié)和可能遇到的問題。
1.遠(yuǎn)程代碼管理
????????版本管理可以用github當(dāng)遠(yuǎn)程倉庫,也可以用其他的,這里使用的是微信開發(fā)者工具提供的一個(gè)遠(yuǎn)程代碼管理,可以通過這個(gè)鏈接進(jìn)入:遠(yuǎn)程代碼管理。
-
頁面如下:
- 點(diǎn)擊個(gè)人設(shè)置-賬戶,可以修改自己的git賬號(hào)和密碼,這個(gè)是自己設(shè)定的,可以隨時(shí)更改,密碼忘了也沒關(guān)系,它可以直接修改為新密碼。
- 上面填寫的賬戶和密碼用在這里,用來綁定賬戶。如果修改了賬戶密碼,記得在開發(fā)工具里也修改一下,否則提交和拉取時(shí)會(huì)出現(xiàn)認(rèn)證失敗的提示。
2.網(wǎng)絡(luò)很慢,一直拉取不下來代碼的時(shí)候怎么辦?
?????????如果實(shí)在拉取不下來,軟件轉(zhuǎn)了很久都沒反應(yīng),可以在代碼管理里對(duì)應(yīng)項(xiàng)目選擇對(duì)應(yīng)的分支,點(diǎn)擊下載,可以一次性把項(xiàng)目最新的源代碼下下來。就是后面使用軟件的版本管理的時(shí)候需要重新配置一遍。
?3.步驟概括
- 初始化git倉庫(本項(xiàng)目第一次用代碼管理時(shí)需要)
????????在小窗口里的設(shè)置-網(wǎng)絡(luò)和認(rèn)證里填寫用戶賬戶和密碼,在設(shè)置-遠(yuǎn)程里創(chuàng)建遠(yuǎn)程倉庫的名字和鏈接地址。
- 獲取最新版本代碼
????????點(diǎn)擊抓取,點(diǎn)擊拉取,合并選擇合并就好。
- 推送新版本
????????先抓取,看看遠(yuǎn)程倉庫里有沒有其他成員提交了新的版本而自己還沒有合并的,如果有,點(diǎn)合并。(直接點(diǎn)拉取也行:拉取=抓取+合并)。每次提交前一定要這樣做,否則容易出問題。
????????然后全選工作區(qū)里的文件,填寫標(biāo)題和詳細(xì)信息,(主要寫一下修改了什么東西,方便其他成員查看),然后點(diǎn)擊提交,點(diǎn)擊推送。沒有問題的話會(huì)顯示推送成功。這樣你改的新版本就會(huì)在遠(yuǎn)程倉庫里,其他成員可以點(diǎn)擊抓取-拉取獲取最新代碼。
?4.head
? ? ? ? 選中每條版本記錄時(shí)右鍵,有個(gè)將head重置到xxxx,head是干啥的?
? ? ? ? head在哪,就代表你最近一次上傳的代碼版本是啥,軟件系統(tǒng)會(huì)自動(dòng)識(shí)別判斷你刪除更新了什么內(nèi)容,(比對(duì):head的那個(gè)版本和你現(xiàn)在本地里的代碼)工作區(qū)里會(huì)放它通過一些神秘的能力生成的代碼更改記錄,可以通過提交進(jìn)行版本記錄。(假設(shè)有成員已經(jīng)在該分支上上傳了一個(gè)版本,你沒有先拉取遠(yuǎn)程,直接提交,然后點(diǎn)推送,它就會(huì)推不上去,因?yàn)槟愕谋镜胤种瑫r(shí)出現(xiàn)了滯后和超前,這時(shí)候只能重置head,(選不保存工作區(qū)修改,重做一遍你的工作,如果選擇了保存工作區(qū)修改,就需要找到上個(gè)成員修改的東西,然后取消掉你對(duì)那幾個(gè)文件的勾選,不然會(huì)把另一個(gè)成員剛修改的東西又改回來,提交以后把那幾個(gè)文件的修改丟棄掉))
????????我猜你可能有點(diǎn)懵,不過沒關(guān)系,舉個(gè)例子~
????????假設(shè)一個(gè)團(tuán)隊(duì)里有小A和小B兩個(gè)人,然后他們現(xiàn)在的代碼都是最新的,有一天,老板和小A說我覺得你這個(gè)test1頁面的邊框加個(gè)陰影會(huì)好看點(diǎn),小A說好的,很快就把test1.css文件改了,然后按照常規(guī)點(diǎn)提交、點(diǎn)推送到了遠(yuǎn)程倉庫里,很快啊,沒用幾分鐘;過了幾分鐘,老板又私聊和小B說,我覺得你這個(gè)test2頁面的邊框加個(gè)陰影會(huì)好點(diǎn)的,小B說好的。但是這時(shí)候小B忘了先點(diǎn)拉取合并代碼了,他覺得小A應(yīng)該沒有提交新版本,所以直接點(diǎn)提交,然后推送,結(jié)果一個(gè)紅框就出現(xiàn)了,小B突然哇的一聲哭了出來。
????????為啥提交不了?因?yàn)橄到y(tǒng)是個(gè)大笨蛋,它只知道把多出來的加到遠(yuǎn)程倉庫里,不知道不一樣的地方怎么處理。我們稱小B的本地倉庫這個(gè)分支同時(shí)出現(xiàn)了滯后(它沒有小A推送過的那個(gè)版本記錄)、超前(它有遠(yuǎn)程倉庫對(duì)應(yīng)分支里沒有的東西)。
?推送失敗的情況
????????系統(tǒng)說,你要是下面這樣的話,我就會(huì)處理了。現(xiàn)在的情況我不懂,你找小A吧。
??推送成功的情況
? ? ? 于是小B去找小A,小A和他說,你現(xiàn)在只能回退你的本地倉庫分支了,把本地倉庫分支的記錄改得和遠(yuǎn)程倉庫一樣。怎么做呢?在遠(yuǎn)程倉庫里找到小A提交的版本6.0那條記錄,右鍵重置head到xxxx,但是有個(gè)彈出框問小B,要不要保存工作區(qū)修改呢?(你還要不要留下修改了test文件的記錄信息啊)
????????如果選保存工作區(qū)修改的話,軟件系統(tǒng)會(huì)比對(duì)版本6.0和小B電腦里現(xiàn)在的代碼,發(fā)現(xiàn)test1.css從加了陰影的變成了不加陰影的,就會(huì)記錄上對(duì)這個(gè)文件的修改記錄,實(shí)際上小B根本沒想取消test1.css的陰影,但是軟件系統(tǒng)不知道,它只知道比對(duì)。如果全選工作區(qū)的修改記錄,提交上去,版本7.0test2的陰影確實(shí)加上了,但是test1的陰影沒了。小A就會(huì)質(zhì)問小B,我剛改的東西怎么又改回去了?!然后小B就被小A打了一頓。
會(huì)讓小B被小A打的版本圖?
? ????????那如果選不保存工作區(qū)修改呢?可以,這樣小B電腦的代碼就變的和小A電腦的代碼一模一樣了,小B需要對(duì)test2.css再次進(jìn)行修改,然后再提交,推送自己的新版本。
?5.將head重置到xxx
????????重置操作后不用再點(diǎn)擊拉取合并代碼,它會(huì)自動(dòng)修改本地代碼。選不保留工作區(qū)的修改,則直接進(jìn)行覆蓋操作;選保留工作區(qū)修改,則本地的代碼不會(huì)變化,工作區(qū)修改通過比對(duì)兩次代碼生成修改記錄。
6.檢出xxx分支
????????在本地分支里右鍵選檢出分支,將會(huì)把head移到哪個(gè)分支上,會(huì)直接用該分支最新版本的代碼覆蓋當(dāng)前代碼。
????????在遠(yuǎn)程分支里右鍵選本地檢出分支,會(huì)在本地倉庫里建一個(gè)新分支,初始內(nèi)容和選中的那個(gè)遠(yuǎn)程分支一樣,將會(huì)把head移到那個(gè)新分支上。
7.本地倉庫的分支和遠(yuǎn)程倉庫的分支進(jìn)行同步時(shí)用合并還是變基
????????我看其他博文里說,主分支用合并––會(huì)增加一個(gè)版本記錄修改更新該用戶的代碼到最近一次的時(shí)候;
????????自己用的分支用變基(--no-ff)–會(huì)比對(duì)修改記錄,直接修改你的提交歷史,這樣歷史記錄會(huì)很干凈,但是無法知道這次合并修改了哪些內(nèi)容是變基。
????????還沒測試過,不知道用變基到底是什么情況,不敢亂動(dòng)現(xiàn)在的項(xiàng)目,所以現(xiàn)在都用的合并。
8.合并沖突問題
????????最近遇到的,俺改了.json文件還有component文件提交上去,其他成員合并時(shí)會(huì)出現(xiàn)沖突現(xiàn)象,大概是系統(tǒng)偷懶,覺得這個(gè)太重要了,不給俺們自動(dòng)合并。但問題不大,手動(dòng)抉擇一下就可。和github挺像。
9.明明只修改了一點(diǎn)點(diǎn)東西,成員拉取時(shí)卻拉取了很多個(gè)文件
? ? ? ?考慮是否是使用了云函數(shù)的問題,如果你使用的是云端部署node modules的話,可以把下載云函數(shù)時(shí)一并下下來的node modules文件夾刪除掉(不會(huì)影響實(shí)際運(yùn)行),并且和團(tuán)隊(duì)成員商量好,誰都別在本地代碼里出現(xiàn)node modules文件夾,這樣就能大幅度提高拉取速度,特別是在你和幾個(gè)組員分工寫不同云函數(shù)的階段。(當(dāng)然如果你用了的是本地的node.js部署依賴的話,不知道刪了會(huì)不會(huì)有影響)
這也是俺現(xiàn)階段琢磨出來的,不一樣真的對(duì)。若寫的哪里有問題,歡迎在討論區(qū)交流呀~
總結(jié)
以上是生活随笔為你收集整理的微信小程序多人开发-版本管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端开发问题记录
- 下一篇: Android下载文件