Git常用操作命令收集:
(1)遠(yuǎn)程倉(cāng)庫(kù)相關(guān)命令
檢出倉(cāng)庫(kù):$?git?clone?git://github.com/jquery/jquery.git
查看遠(yuǎn)程倉(cāng)庫(kù):$?git?remote -v
添加遠(yuǎn)程倉(cāng)庫(kù):$?git?remote add [name] [url]
刪除遠(yuǎn)程倉(cāng)庫(kù):$git?remote rm [name]
修改遠(yuǎn)程倉(cāng)庫(kù):$?git?remote set-url --push[name][newUrl]
拉取遠(yuǎn)程倉(cāng)庫(kù):$?git?pull [remoteName] [localBranchName]
推送遠(yuǎn)程倉(cāng)庫(kù):$git push[remoteName] [localBranchName]
(2)分支(branch)操作相關(guān)命令
查看本地分支:$git?branch
查看遠(yuǎn)程分支:$?git?branch -r
創(chuàng)建本地分支:$?git?branch [name] ----注意新分支創(chuàng)建后不會(huì)自動(dòng)切換為當(dāng)前分支
切換分支:$?git?checkout [name]
創(chuàng)建新分支并立即切換到新分支:$?git?checkout -b [name]
刪除分支:$?git?branch -d [name] ---- -d選項(xiàng)只能刪除已經(jīng)參與了合并的分支,對(duì)于未有合并的分支是無(wú)法刪除的。如果想強(qiáng)制刪除一個(gè)分支,可以使用-D選項(xiàng)
合并分支:$?git?merge [name] ----將名稱(chēng)為[name]的分支與當(dāng)前分支合并
創(chuàng)建遠(yuǎn)程分支(本地分支push到遠(yuǎn)程):$?git push?origin [name]
刪除遠(yuǎn)程分支:$git push?origin :heads/[name]
如果想把本地的某個(gè)分支test提交到遠(yuǎn)程倉(cāng)庫(kù),并作為遠(yuǎn)程倉(cāng)庫(kù)的master分支,或者作為另外一個(gè)名叫test的分支,那么可以這么做。
$?git push?origin test:master???????? // 提交本地test分支作為遠(yuǎn)程的master分支//好像只寫(xiě)這一句,遠(yuǎn)程的github就會(huì)自動(dòng)創(chuàng)建一個(gè)test分支
$?git push?origin test:test????????????? // 提交本地test分支作為遠(yuǎn)程的test分支
如果想刪除遠(yuǎn)程的分支呢?類(lèi)似于上面,如果:左邊的分支為空,那么將刪除:右邊的遠(yuǎn)程的分支。
$git push?origin :test????????????? // 剛提交到遠(yuǎn)程的test將被刪除,但是本地還會(huì)保存的,不用擔(dān)心
push方法1:
比如新建了一個(gè)叫dev的分支,而github網(wǎng)站上還沒(méi)有,可以直接:
git push -u origin dev
這樣一個(gè)新分支就創(chuàng)建好了。
push方法2
提交到github的分支有多個(gè),提交時(shí)可以用這樣的格式:
git push -u origin local:remote
比如:git push -u origin master:master
表明將本地的master分支(冒號(hào)前)push到github的master分支(冒號(hào)后)。
如果左邊不寫(xiě)為空,將會(huì)刪除遠(yuǎn)程的右邊分支。
git命令拉取指定分支的代碼到本地
如果本地分支已經(jīng)關(guān)聯(lián)遠(yuǎn)程的主版本,直接pull即可
否則,可用 git pull origin 遠(yuǎn)程主分支名:本地分支名 進(jìn)行拉取
(3)版本(tag)操作相關(guān)命令
查看版本:$git?tag
創(chuàng)建版本:$git?tag [name]
刪除版本:$git?tag -d [name]
查看遠(yuǎn)程版本:$git?tag -r
創(chuàng)建遠(yuǎn)程版本(本地版本push到遠(yuǎn)程):$git push?origin [name]
刪除遠(yuǎn)程版本:$git push?origin :refs/tags/[name]
(4)子模塊(submodule)相關(guān)操作命令
添加子模塊:$?git?submodule add [url] [path]
如:$?git?submodule addgit://github.com/soberh/ui-libs.gitsrc/main/webapp/ui-libs
初始化子模塊:$git?submodule init ----只在首次檢出倉(cāng)庫(kù)時(shí)運(yùn)行一次就行
更新子模塊:$git?submodule update ----每次更新或切換分支后都需要運(yùn)行一下
刪除子模塊:(分4步走哦)
1)$git?rm --cached [path]
2) 編輯“.gitmodules”文件,將子模塊的相關(guān)配置節(jié)點(diǎn)刪除掉
3) 編輯“.git/config”文件,將子模塊的相關(guān)配置節(jié)點(diǎn)刪除掉
4) 手動(dòng)刪除子模塊殘留的目錄
(5)忽略一些文件、文件夾不提交
在倉(cāng)庫(kù)根目錄下創(chuàng)建名稱(chēng)為“.gitignore”的文件,寫(xiě)入不需要的文件夾名或文件,每個(gè)元素占一行即可,如
target
bin*.db
因?yàn)?gitignore只能忽略那些原來(lái)沒(méi)有被track的文件,如果某些文件已經(jīng)納入版本管理中,則修改.gitignore不會(huì)生效。解決辦法就是先把本地緩存刪除(改成未track狀態(tài)),然后再提交”:
git rm -r --cached .
git add .
git commit -m "update .gitignore"