git push
功能介紹
將本地倉庫中的內(nèi)容同步到遠(yuǎn)程倉庫
指令解析
git push
這個(gè)命令就上將本地倉庫中的文件同步到遠(yuǎn)程。是平時(shí)用到push最多的指令。它其實(shí)是一種簡寫方式。省略了遠(yuǎn)程倉庫的地址,本地分支。
git push -u origin master
這個(gè)命令是比較全的一條指令。意思是推送本地master分支到遠(yuǎn)程(origin)的master分支上。-u參數(shù)表示upstream,是“上游”的意思,意思是指定本地分支和遠(yuǎn)程分支的關(guān)聯(lián)關(guān)系。一旦設(shè)定以后就可以使用git push這種簡寫形式了。git就知道本地的分支要上傳到哪個(gè)遠(yuǎn)程倉庫,哪個(gè)分支。
git push -u origin master:master
這條命令比上一條更全一點(diǎn),作用沒有一點(diǎn)區(qū)別,就是上一條命令的完整形式。這條命令的兩個(gè)master表示的分別是本地和遠(yuǎn)程的分支。前者本地,后者遠(yuǎn)程。
git push --set-upstream origin master
看這條命令能很容易猜出它的作用。沒錯(cuò),它和前兩條命令的作用一致。感覺上就像是-u參數(shù)的完整寫法。假設(shè)你的本地分支還沒有和遠(yuǎn)程分支做關(guān)聯(lián)。那你執(zhí)行g(shù)it push命令時(shí)肯定會(huì)報(bào)錯(cuò)對(duì)不。那你看報(bào)錯(cuò)信息里,它就提醒你應(yīng)該執(zhí)行g(shù)it push --set-upstream origin/xxx master。在我不怎么熟悉git命令時(shí),我通常就這么干,先git push 然后復(fù)制報(bào)錯(cuò)信息再執(zhí)行一遍。
git push -f
這個(gè)命令的作用是強(qiáng)制推送本地倉庫到遠(yuǎn)程。完整寫法是:git push -force。有些場(chǎng)景下需要用到這個(gè)命令。比如,在多人開發(fā)時(shí),遠(yuǎn)程分支的版本很可能領(lǐng)先你本地版本。你只有將遠(yuǎn)程倉庫的代碼拉拉下來,然后合并,才能push(這才是正常工作流程)。那你不想合并遠(yuǎn)程代碼,就可以用-f強(qiáng)制推送。這樣你的git版本會(huì)覆蓋掉遠(yuǎn)程的git版本。注意,讓遠(yuǎn)程的代碼內(nèi)容被你的代碼覆蓋,所以你一定要確定有必要這么做,否則你的小伙伴可能正在提刀來的路上。再比如,你推送了一個(gè)不必要的commit。你在本地還能reset或者amend指令挽救,但是遠(yuǎn)程就很難這么操作,那么強(qiáng)制覆蓋就是一個(gè)不錯(cuò)的選擇。再次強(qiáng)調(diào),非必要?jiǎng)e這么做。
git push origin --delete master
這個(gè)命令的作用是刪除遠(yuǎn)程(origin)倉庫的master分支。這樣你就不必去github去自己手動(dòng)刪除了。
git push origin :master
注意這里的冒號(hào)----- : -------。記憶力沒那么差的同學(xué)應(yīng)該記得一份鐘前看到過上面的git push -u origin master:master命令。這兩條命令的區(qū)別就是少了-u參數(shù)和少了前面的master。少了-u無非就是不需要指定本地和遠(yuǎn)程的關(guān)聯(lián)。少了前面的master就有趣了,前面的master表示的是本地分支master,那這個(gè)命令就是推送本地空分支到遠(yuǎn)程master,達(dá)到的效果就是刪除遠(yuǎn)程的master分支。也就是和上一條命令效果一致。
git push --all
這個(gè)命令我一般不怎么用。作用是將本地所有分支都推送到遠(yuǎn)程倉庫。git push是將本地當(dāng)前所在的分支推送到遠(yuǎn)程嘛。這個(gè)就是推送所有分支,我還沒遇見這樣場(chǎng)景,可能我工作習(xí)慣單線程。文章來源:http://www.zghlxwxcb.cn/news/detail-630405.html
git push origin --tags
如果你給你的某個(gè)分支打上了標(biāo)簽。git tag v1.0.1 a23lijis3。然后你想同步到遠(yuǎn)程,所有你git push了一下。但是你到遠(yuǎn)程倉庫看的時(shí)候你會(huì)發(fā)現(xiàn)沒有這個(gè)tag。因?yàn)間it push是不會(huì)推送tag標(biāo)簽的。這個(gè)時(shí)候你要額外加上–tags指令。文章來源地址http://www.zghlxwxcb.cn/news/detail-630405.html
到了這里,關(guān)于git 進(jìn)階系列教程--push的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!