一步一步來(lái)沙合,記全Git命令和用法

Git基本配置

Git配置使用git config分三種再愈,存放在不同位置

文件 作用
/etc/gitconfig 系統(tǒng)中對(duì)所有的用戶都適用的配置榜苫。git config --system ...
~/.gitconfig 用戶目錄下的配置文件只適用該用戶。git config --global ...
當(dāng)前項(xiàng)目下的.git/config 配置只對(duì)當(dāng)前項(xiàng)目有效翎冲。git config ...

首先要配置用戶名和郵箱垂睬。每次git提交都會(huì)使用這里配置的默認(rèn)信息

git config --global user.name "yourname"
git config --global user.email ...@example.com

配置默認(rèn)文本編輯器,例如emacs

git config --global core.editor emacs

配置解決差異沖突時(shí)使用哪種分析工具抗悍,例如vimdiff

git config --global merge.tool vimdiff

檢查已有配置

git config --list

高亮顯示一些配置

git config --global color.status auto    #查看狀態(tài)時(shí)高亮
git config --global color.branch auto     #分支名高亮
git config --global color.ui auto     #自動(dòng)高亮

配置別名來(lái)簡(jiǎn)化一些命令驹饺,例如checkout 簡(jiǎn)化為co,status簡(jiǎn)化為st

git config --global alias.co checkout
git config --global alias.st status

之后使用命令git checkout 時(shí)就可以簡(jiǎn)化為 git co

Git基本命令

環(huán)境配置好了后就可以使用了缴渊,常用的git命令就幾個(gè)不用擔(dān)心

創(chuàng)建git倉(cāng)庫(kù)--git inite

在項(xiàng)目根目錄下執(zhí)行g(shù)it inite命令(在跟目錄下右鍵Git Bash)逻淌,會(huì)在根目錄下創(chuàng)建隱藏.Git目錄,包含相關(guān)配置和信息

查看本地倉(cāng)庫(kù)的狀態(tài)--git status

使用git status或之前簡(jiǎn)化的git st疟暖,狀態(tài)有三種已修改,已暫存田柔,已修改俐巴。已修改是在工作目錄也就是項(xiàng)目里修改還有提交保存;已暫存是指用git add命令提交到要保存的清單(暫存區(qū)域)硬爆;已提交是暫存區(qū)的文件通過(guò)git commit提交到本地git倉(cāng)庫(kù)欣舵;
由于我們新建的倉(cāng)庫(kù),所有文件都沒(méi)保存提交缀磕,都是已修改狀態(tài)

提交修改到暫存區(qū)域--git add

通過(guò)上面提示可以知道用git add提交缘圈,它完整命令參數(shù)復(fù)雜,只說(shuō)最常見(jiàn)的兩種袜蚕。一種是添加某個(gè)文件糟把,例如app文件

git add app

提交目錄下所有文件

git add .

在看看現(xiàn)在狀態(tài)

已變成暫存狀態(tài),并且提示可以使用git rm --cached命令將文件從追蹤列表移除

提交到本地倉(cāng)庫(kù)--git commit

使用git commit將追蹤列表中文件提交

git commit -m "提交說(shuō)明"         #形式1:通過(guò)-m提交簡(jiǎn)短信息
git commit              #形式2:會(huì)跳轉(zhuǎn)編輯器牲剃,在提交信息有一定格式或文字較多時(shí)用

現(xiàn)在工作區(qū)是干凈的

查看項(xiàng)目歷史記錄--git log

git log

下載遠(yuǎn)程項(xiàng)目--git clone

當(dāng)想下載網(wǎng)絡(luò)上別人的倉(cāng)庫(kù)時(shí)遣疯,可使用git clone "地址",例如下載我github上一個(gè)EmptyHand項(xiàng)目

git clone https://github.com/biloba123/EmptyHand.git

會(huì)在當(dāng)前目錄下新建一個(gè)EmptyHand文件存放

不同分支--git branch

在上面的操作都顯示master凿傅,因?yàn)槟J(rèn)創(chuàng)建一個(gè)master的主分支缠犀,不同分支互不影響,當(dāng)我們開(kāi)發(fā)新功能時(shí)一般會(huì)新建一個(gè)分支在上面操作聪舒,因?yàn)樾录庸δ芸赡軙?huì)有問(wèn)題最后砍掉這個(gè)功能辨液,只有測(cè)試通過(guò)沒(méi)有問(wèn)題再把它合并到master分支上。
例如現(xiàn)在開(kāi)發(fā)熱點(diǎn)功能箱残,新建一個(gè)hotspot分支

git branch hotspot

看到現(xiàn)在一共兩個(gè)分支滔迈,當(dāng)前處于master

切換分支--git checkout

checkout命令用于簽出一個(gè)分支或者一個(gè)路徑。常用于分支切換和恢復(fù)文件。列入切換到hotspot分支

git checkout hotspot

現(xiàn)在已經(jīng)在hotspot分支亡鼠,我們開(kāi)發(fā)啊開(kāi)發(fā)(幾天過(guò)去了...)赏殃,功能差不多實(shí)現(xiàn)了將代碼保存提交

然而,hotspot出現(xiàn)嚴(yán)重bug间涵,只放棄它

git checkout master    #切換回master
git branch -D hotspot     #刪除hotspot分支

checkout的另一個(gè)常用功能是將文件恢復(fù)到修改之前狀態(tài)仁热。比如今天去在ConnectHotspotFragment.java文件里加了好多好多代碼,然而寫(xiě)完發(fā)現(xiàn)完全不能用...勾哩,而且由于太亂之前代碼也不能用了抗蠢。。思劳。
別擔(dān)心通過(guò)下面命令可以恢復(fù)

git checkout -- ConnectHotspotFragment.java

合并分支--git merge

如果hotspot開(kāi)發(fā)完成沒(méi)bug迅矛,要將它合并到master分支上。首先提交hotspot代碼潜叛,切換到主分支秽褒,再執(zhí)行g(shù)it merge hotspot命令,如果沒(méi)沖突就能直接合并

解決沖突

合并并不能經(jīng)常一帆風(fēng)順威兜,比如我現(xiàn)在主要負(fù)責(zé)這個(gè)項(xiàng)目销斟,然后有另一個(gè)人協(xié)助我,我就把hotspot丟給他做椒舵,我也繼續(xù)在主分支上做蚂踊,但如果我們同時(shí)改了MainActivity,那在合并時(shí)

看到代碼里

兩個(gè)分支同時(shí)改了這里笔宿,所以git不知道該用誰(shuí)的犁钟,這時(shí)就要手動(dòng)合并

然后再git add和commit提交代碼即可

為版本打個(gè)標(biāo)簽--git tag

當(dāng)完成所有功能并通過(guò)測(cè)試時(shí),通常會(huì)為這個(gè)版本打個(gè)標(biāo)簽

git tag -a v1.0 -m "相關(guān)信息"

也可以通過(guò)" git tag -d 標(biāo)簽名 "來(lái)刪除tag泼橘,通過(guò)" git show 標(biāo)簽名"查看版本具體信息

幫助文檔--git help

當(dāng)你不知道某個(gè)命令怎么用時(shí)涝动,可以通過(guò) git help 來(lái)獲取其完整說(shuō)明。例如查看tag命令說(shuō)明

git help tag
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末侥加,一起剝皮案震驚了整個(gè)濱河市捧存,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌担败,老刑警劉巖昔穴,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異提前,居然都是意外死亡吗货,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)狈网,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)宙搬,“玉大人笨腥,你說(shuō)我怎么就攤上這事∮露猓” “怎么了脖母?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)闲孤。 經(jīng)常有香客問(wèn)我谆级,道長(zhǎng),這世上最難降的妖魔是什么讼积? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任肥照,我火速辦了婚禮,結(jié)果婚禮上勤众,老公的妹妹穿的比我還像新娘舆绎。我一直安慰自己,他們只是感情好们颜,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布吕朵。 她就那樣靜靜地躺著,像睡著了一般窥突。 火紅的嫁衣襯著肌膚如雪边锁。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,031評(píng)論 1 285
  • 那天波岛,我揣著相機(jī)與錄音,去河邊找鬼音半。 笑死则拷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的曹鸠。 我是一名探鬼主播煌茬,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼彻桃!你這毒婦竟也來(lái)了坛善?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤邻眷,失蹤者是張志新(化名)和其女友劉穎眠屎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體肆饶,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡改衩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了驯镊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片葫督。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡竭鞍,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出橄镜,到底是詐尸還是另有隱情偎快,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布洽胶,位于F島的核電站晒夹,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏妖异。R本人自食惡果不足惜惋戏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望他膳。 院中可真熱鬧响逢,春花似錦、人聲如沸棕孙。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蟀俊。三九已至钦铺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間肢预,已是汗流浹背矛洞。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留烫映,地道東北人沼本。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像锭沟,于是被迫代替她去往敵國(guó)和親抽兆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容