Git常用命令整理
在平時(shí)工作中润讥,Git的使用已經(jīng)是一種趨勢(shì)魄咕,所以在這里自己整理了一下常用的命令鞋拟。如果有興趣的話骂维,可以去看看廖大的講解,非常詳細(xì)贺纲。個(gè)人建議完完整整過(guò)一遍比較好——廖大Git教程
Git的安裝
對(duì)于Git的安裝航闺,有很多方式,這里有官方文檔猴誊,可以去看一下Git的安裝
Git常用命令
- 基本命令
git config --global user.name "用戶名" // 設(shè)置全局范圍的用戶名
git config --global user.emil "郵箱" // 設(shè)置全局范圍的郵箱
git config --global --unset user.name // 取消全局范圍的用戶名
git config --global --unset user.email // 取消全局范圍的郵箱
注意
git config
命令的--global
參數(shù)潦刃,用了這個(gè)參數(shù),表示你這臺(tái)機(jī)器上所有的Git倉(cāng)庫(kù)都會(huì)使用這個(gè)配置懈叹,當(dāng)然也可以對(duì)某個(gè)倉(cāng)庫(kù)指定不同的用戶名和Email地址乖杠。
git init // 創(chuàng)建版本庫(kù),即當(dāng)前目錄作為git倉(cāng)庫(kù)
git config user.name "用戶名" // 對(duì)當(dāng)前倉(cāng)庫(kù)指定用戶名
git config user.emai "郵箱" // 對(duì)當(dāng)前倉(cāng)庫(kù)指定郵箱
git config -l // 查看當(dāng)前目錄的git config
在對(duì)某一倉(cāng)庫(kù)指定用戶名和郵箱時(shí)项阴,如果和全局范圍的用戶名、郵箱沖突笆包,請(qǐng)取消設(shè)置全局范圍
- 遠(yuǎn)程倉(cāng)庫(kù)
ssh-keygen -t rsa -C "youremail@example.com" // 創(chuàng)建SSH Key
本地Git倉(cāng)庫(kù)和GitHub倉(cāng)庫(kù)之間的傳輸是通過(guò)SSH加密的环揽,所以要?jiǎng)?chuàng)建SSH Key,并將其添加到GitHub上庵佣,這樣你便擁有遠(yuǎn)程庫(kù)了歉胶。
git clone // 克隆代碼到本地
git remote -v // 顯示可以抓取和推送的origin的地址,沒(méi)有推送權(quán)限的話就無(wú)法看到push的地址
git remote remove origin // 取消本地庫(kù)與遠(yuǎn)程庫(kù)的關(guān)聯(lián)
要克隆一個(gè)倉(cāng)庫(kù)巴粪,首先必須知道倉(cāng)庫(kù)的地址通今,然后使用
git clone
命令克隆。Git支持多種協(xié)議肛根,包括
https
辫塌,但通過(guò)ssh
支持的原生git
協(xié)議速度最快。
git status // 查看本地庫(kù)的狀態(tài),即距離上次提交是否有文件被修改過(guò)
git diff // 查看修改內(nèi)容
git add 文件名 // 添加文件
git commit -m "說(shuō)明" //提交并標(biāo)注說(shuō)明
git push origin master // 推送到遠(yuǎn)程庫(kù)的主分支上
注:每次修改芭届,如果不
add
到暫存區(qū)储矩,那就不會(huì)加入到commit
中感耙。
- 文件管理
git checkout -- 文件名 // 讓這個(gè)文件回到最近一次git commit或git add時(shí)的狀態(tài)
這是對(duì)本地文件的修改,即工作區(qū)的修改
git log // 顯示從最近到最遠(yuǎn)的提交日志
git reset --hard HEAD^// 回到過(guò)去的命令持隧,用HEAD表示當(dāng)前版本即硼,上一個(gè)版本就是HEAD^,上上一個(gè)版本就是HEAD^^屡拨,一般git log命令后只酥,會(huì)顯示commit id,可用命令 git reset --hard 3628164 回到某次提交時(shí)的狀態(tài)
git reflog // 查看命令歷史洁仗,注意是命令
這些命令可以讓我們回到代碼的某個(gè)狀態(tài)层皱,加入代碼出現(xiàn)了意外,可以利用這些命令回到過(guò)去赠潦,前提是你備份了(commit)叫胖。
所以commit很重要!
- 分支管理
git branch // 查看本地分支她奥,當(dāng)前分支前面會(huì)標(biāo)有一個(gè)*號(hào)
git branch -a // 查看所有分支 (包括遠(yuǎn)程庫(kù)上的分支)
git branch dev // 創(chuàng)建分支dev瓮增,注:這是本地分支,不是遠(yuǎn)程庫(kù)分支
git checkout dev // 切換到dev這條分支上
git checkout -b dev // 這是創(chuàng)建和切換到分支dev
git merge dev // 合并dev分支 注:要合并dev分支哩俭,你必須得不在這個(gè)分支上才能將其合并绷跑。例如要在主分支上合并dev分支,那就先切到主分支凡资,然后使用這個(gè)命令
git branch -d dev // 刪除dev分支
git log --graph // 查看分支合并圖
git push origin branch-name // 推送時(shí)砸捏,要指定本地分支,這樣隙赁,Git就會(huì)把該分支推送到遠(yuǎn)程庫(kù)對(duì)應(yīng)的遠(yuǎn)程分支上垦藏。如果沒(méi)有,則會(huì)在遠(yuǎn)程庫(kù)新建分支與之對(duì)應(yīng)伞访。origin可以理解為遠(yuǎn)程庫(kù)的根目錄
git pull // 將遠(yuǎn)程庫(kù)上某分支的代碼拉到本地工作區(qū)掂骏。至于是哪個(gè)分支,取決于本地切換到哪個(gè)分支了厚掷。
git branch --set-upstream branch-name origin/branch-name // 創(chuàng)建本地分支和遠(yuǎn)程分支的鏈接關(guān)系
git push origin :branch-name // 刪除遠(yuǎn)程庫(kù)中分支
git cherry-pick 2555c6e // 將別的分支上的commit合并到這個(gè)分支上 如果有沖突處理沖突 之后使用git add . git cherry-pick --continue繼續(xù)提交 最后push到遠(yuǎn)程庫(kù)即可
分支一塊可以說(shuō)是Git的核心所在弟灼,我只是將我遇到的簡(jiǎn)單整理下,還有很多不曾了解的冒黑。如果有什么錯(cuò)誤田绑,請(qǐng)務(wù)必指出,不能誤人誤己抡爹。