-
對不同的項(xiàng)目應(yīng)用不同的git賬戶進(jìn)行提交代兵。
git config --global user.name "Your_Username"
git config --global user.email "username@xxx.com"
加上global參數(shù)是應(yīng)用于全局切換乡括,之后所有項(xiàng)目提交都使用這個(gè)賬戶朝抖,去掉global則可以應(yīng)用于某個(gè)特定項(xiàng)目,可以達(dá)到到每個(gè)項(xiàng)目使用不同的賬戶提交的效果睬澡,并且省去每次切換全局賬戶的麻煩曙砂。
-
合并分支
-
解決合并分支時(shí)的沖突
報(bào)錯(cuò)如下:
<<<<<<< HEAD
測試沖突
=======
建立一個(gè)Dev分支,用于平時(shí)功能開發(fā)
>>>>>>> dev
解決方法:保留需要的部分火的,然后把注釋刪除壶愤,add之后,然后再commit
Git用<<<<<<<馏鹤,=======征椒,>>>>>>>標(biāo)記出不同分支的內(nèi)容,必須手動(dòng)解決沖突湃累,重點(diǎn)是先add 該文件
勃救,然后再commit,否則提交不了治力。如果是在master分支上進(jìn)行該操作蒙秒,那么只是master分支做了更改,dev分支相關(guān)文件保持原樣
-
git版本回退 也用于找回誤刪文件
不小心刪除項(xiàng)目文件宵统,首先git log查看最近的一次提交的commit id復(fù)制晕讲,然后Ctrl+C退出該模式
使用
git reset --hard commit id
,即可回退到之前版本-
cherry-pic的使用
在開發(fā)項(xiàng)目的時(shí)候马澈,在分支上做了一個(gè)多地部署的功能瓢省,然后需要把這個(gè)功能同步到master分支上,但是沒法使用merge功能痊班,因?yàn)榉种线€修改了其它蠻多文件勤婚,直接使用merge會合并所有修改部分,所以使用cherry-pic進(jìn)行提交
cherry-pic概念:cherry-pick操作過程相當(dāng)于將某次提交導(dǎo)出為補(bǔ)丁文件涤伐,然后在當(dāng)前HEAD上重放馒胆,形成無論內(nèi)容還是提交說明都一致的提交,提交的過程中可能形成沖突凝果,提交會生成一個(gè)新commit id祝迂,只是commit的描述和內(nèi)容與之前完全一樣
使用方法:git cherry-pick commit id
-
多人合作的代碼提交注意事項(xiàng)
先本地commit,此時(shí)版本肯定是領(lǐng)先的器净,直接push會覆蓋之前版本型雳,需要先pull,合并自己的提交和別人的提交掌动,如果有沖突需要解決沖突四啰,然后再commit宁玫,最后push
-
git stash 切換分支時(shí)的暫存
經(jīng)常有這樣的事情發(fā)生粗恢,當(dāng)你正在進(jìn)行項(xiàng)目中某一部分的工作,里面的東西處于一個(gè)比較雜亂的狀態(tài)欧瘪,而你想轉(zhuǎn)到其他分支上進(jìn)行一些工作眷射。問題是,你不想提交進(jìn)行了一半的工作,否則以后你無法回到這個(gè)工作點(diǎn)妖碉。解決這個(gè)問題的辦法就是git stash命令涌庭。
“‘儲藏”“可以獲取你工作目錄的中間狀態(tài)——也就是你修改過的被追蹤的文件和暫存的變更——并將它保存到一個(gè)未完結(jié)變更的堆棧中,隨時(shí)可以重新應(yīng)用欧宜。
TIP:
GitHub不能提交空文件夾 github本身不可以提交空文件夾坐榆。那么就需要使空文件夾不為空。
切換分支時(shí)冗茸,git會提示我們local提交比遠(yuǎn)程master分支超前
參考文章:
-
多人協(xié)作功能 Fork后項(xiàng)目的提交
-
創(chuàng)建者創(chuàng)建一個(gè)新項(xiàng)目
-
協(xié)作者fork到自己倉庫
-
git clone這個(gè)倉庫的地址 將代碼coloe到本地
-
建立與創(chuàng)建者倉庫的遠(yuǎn)程聯(lián)系 用于跟蹤創(chuàng)建者的更新 pull最新代碼
git remote add upstream "創(chuàng)建者的項(xiàng)目地址"
git remote -v
即可看到兩個(gè)遠(yuǎn)程地址席镀,upstream
用來pull創(chuàng)建者相關(guān)代碼,這樣可以保持與創(chuàng)建者代碼同步 -
commit本地代碼 并且push到自己倉庫
Q&A:
1. fork后的項(xiàng)目只能pull夏漱,無法push
應(yīng)該是缺少SSH Keys 遇到Permission denied是因?yàn)闆]有設(shè)置SSH
image.png
2. 使用可視化git工具commit到我fork的項(xiàng)目倉庫時(shí)報(bào)錯(cuò)如下
image.png
解決方案如下:
image.png