Linux下的Git學(xué)習(xí)

GIT的學(xué)習(xí)筆記

這是我初學(xué)GIT時(shí)記錄下的筆記匾竿,很多地方都記錄的不詳細(xì)(畢竟我只是怕忘記了又要去查才簡(jiǎn)要記錄了一點(diǎn))企量,并不足以參考查排,若想學(xué)習(xí)Git彭雾,請(qǐng)移步到下面網(wǎng)址:

淺顯易懂完整的GIT學(xué)習(xí)教程在這里
廖雪峰的官方網(wǎng)站-Git教程

Git的概念

簡(jiǎn)單來(lái)說(shuō),Git的工作流程很簡(jiǎn)單串稀,我們把整個(gè)過(guò)程中文件的轉(zhuǎn)移分為3個(gè)區(qū)域:工作區(qū)除抛,暫存區(qū),分支母截。

工作區(qū)就是我們對(duì)文件進(jìn)行操作的地方到忽,比如你在本地GIt倉(cāng)庫(kù)修改文件,編寫代碼的文件存儲(chǔ)空間。現(xiàn)在你的文件改好了喘漏,想把它提交到Git倉(cāng)庫(kù)中护蝶,先要把它提交到暫存區(qū),最后再提交到分支翩迈。默認(rèn)的分支為master持灰,也可以自己創(chuàng)建分支。這樣文件就被保存到Git倉(cāng)庫(kù)里了负饲。


image

本地Git倉(cāng)庫(kù)

進(jìn)入一個(gè)文件夾堤魁, git init 新建一個(gè)git倉(cāng)庫(kù)a

git add <filename> 將文件添加到到暫存區(qū)

git commit -m 'xxx' 將文件提交到分支,參數(shù)-m后面寫上對(duì)本次提交的說(shuō)明返十,最好寫上

git status 顯示倉(cāng)庫(kù)當(dāng)前狀態(tài)

git diff 查看各版本文件的不同妥泉,顯示的格式為Unix通用的diff格式

git log 顯示時(shí)間最近到最遠(yuǎn)的提交版本的詳細(xì)信息,加上參數(shù) --pretty-- oneline 顯示簡(jiǎn)要信息洞坑,其中有版本號(hào)

在Git中盲链,HEAD 表示當(dāng)前版本,上一版本為 HEAD^检诗,上上一版本為 HEAD^HEAD~2匈仗,以此類推。

git reset --hard HEAD 將文件重置為上一個(gè)版本逢慌,也可通過(guò)版本好重置: git reset --hard 版本號(hào) 版本號(hào)只需打出足夠辨識(shí)的前幾位

git reflog 顯示出每一歷史命令

git diff HEAD -- <filename> 查看最新版本庫(kù)與工作區(qū)文件的區(qū)別

git checkout -- <filename> 撤銷文件在工作區(qū)的修改(尚未提交到分支)回到最近一次addcommit是的狀態(tài)

git reset Head <filename> 撤銷暫存區(qū)修改悠轩,放回工作區(qū)

git rm <filename> 從版本中刪除文件,要commit

連接遠(yuǎn)程庫(kù)

我這里以Github為例

創(chuàng)建SSH key(本地庫(kù)與遠(yuǎn)程庫(kù)關(guān)聯(lián)的密鑰)

在shell中輸入ssh-keygen -t rsa -C 'youremail@example.com',再在github用戶功能下攻泼,添加進(jìn)去密鑰火架,建議添加id+rsa.pub的內(nèi)容

關(guān)聯(lián)github上的git倉(cāng)庫(kù),先創(chuàng)建一個(gè)倉(cāng)庫(kù)忙菠,然后在本地倉(cāng)庫(kù)執(zhí)行命令:
git remote add origin git@github.com:<github賬戶>/<倉(cāng)庫(kù)名>.git 這樣就關(guān)聯(lián)成功了

git push -u origin master 把本地庫(kù)的master推送到github的遠(yuǎn)程庫(kù)上何鸡,第一次推送加上參數(shù)-u,還會(huì)把本地的maste分支和遠(yuǎn)程的master分支關(guān)聯(lián)起來(lái)牛欢,以后就可以只用 git push origin master 推送就行了

git clone git@github.com:<github賬戶>/<遠(yuǎn)程庫(kù)名>.git 將遠(yuǎn)程庫(kù)克隆到本地

分支

分支讓我們跟方便的管理項(xiàng)目骡男,比如一個(gè)項(xiàng)目正式的發(fā)布版本在master分支上,那我們不可能在master上直接改傍睹,出差錯(cuò)了怎么辦隔盛。一般都會(huì)創(chuàng)建一個(gè)新分支,比如分支branch1拾稳,作為項(xiàng)目發(fā)布前的主分支吮炕。項(xiàng)目組的工作人員在沒(méi)人創(chuàng)建一個(gè)分支Mybranch,以branch1為模板访得,各自寫自己負(fù)責(zé)的代碼龙亲,在合并到branch1上,測(cè)試通過(guò)后,再把branch1合并到master上鳄炉。

git checkout -b <分支名> 創(chuàng)建并切換分支杜耙,相當(dāng)于兩條命令:git branch xx ;git checkout xxx

git branch 查看當(dāng)前所有分支 ,*會(huì)出現(xiàn)在當(dāng)前所在分支前

git merge xx 將xx分支合并到當(dāng)前分支上(這樣會(huì)采用Fast forward 模式迎膜,這種模式刪除分支后會(huì)丟掉分支信息)

git merge --no-ff -m 'xxx' 分支名 用--no-ff 參數(shù)禁用fast froward

git branch -d xx 刪除xx分支 若加上參數(shù)-D表示強(qiáng)行刪除

如果master和別的分支都分別有新的提交泥技,git無(wú)法快速合并浆兰,只能試圖將各自的修改合并起來(lái)磕仅,但可能會(huì)引起沖突,必須手動(dòng)解決沖突再提交簸呈。

git log --graph 顯示分支合并圖

git stash 保存當(dāng)前未提交的改動(dòng)榕订。如果你得為你的項(xiàng)目新加一個(gè)功能,在你的分支上代碼寫了一半了蜕便,結(jié)果項(xiàng)目中發(fā)現(xiàn)了一個(gè)bug,你必須馬上解決劫恒。可你又無(wú)法提交你現(xiàn)在改動(dòng)的項(xiàng)目(因?yàn)檫€未完成)轿腺,這個(gè)時(shí)候你可已選擇保存它两嘴,回到未改動(dòng)前的版本,解決了bug再回來(lái)繼續(xù)寫完它族壳。

git satsh list 顯示保存的工作現(xiàn)場(chǎng)

git satsh apply 恢復(fù)憔辫,但是恢復(fù)后stash內(nèi)容并不刪除,需要用git satsh drop來(lái)刪除

git satsh pop 恢復(fù)工作現(xiàn)場(chǎng)的同時(shí)把stash的內(nèi)容也刪除了

git remote -v查看遠(yuǎn)程庫(kù)信息仿荆,參數(shù)-V 顯示更詳細(xì)的信息

git checkout -b dev origin/dev 創(chuàng)建遠(yuǎn)程的dev分支到本地

git pull 得到當(dāng)前分支的最新提交

如果git pull提示“no tracking information”贰您,則說(shuō)明本地分支和遠(yuǎn)程分支的鏈接關(guān)系沒(méi)有創(chuàng)建,用命令git branch --set-upstream branch-name origin/branch-name

標(biāo)簽

Git的標(biāo)簽雖然是版本庫(kù)的快照拢操,但其實(shí)它就是指向某個(gè)commit的指針锦亦,方便人們查找

切換到需要打標(biāo)簽的分支上,git tag <branch-name>打上標(biāo)簽令境,like:git tag v1m

默認(rèn)標(biāo)簽打在最新提交的commit上杠园,若想打在之前的commit上,就要找到那個(gè)commit的id舔庶,然后
git tag <tagname> <commit id>

git tag 查看所有標(biāo)簽 標(biāo)簽按字母順序排序抛蚁,而非創(chuàng)立的時(shí)間順序

git show <tagname> 查看某一標(biāo)簽的具體信息

git tag -a <tagname> -m 'xx' 創(chuàng)建帶說(shuō)明的標(biāo)簽

git tag -d <tagname> 刪除(本地)標(biāo)簽

git push origin <tagname> 推送某個(gè)標(biāo)簽到遠(yuǎn)程

git push origin --tags 推送全部尚未推送到遠(yuǎn)程的本地標(biāo)簽

若要?jiǎng)h除已推送到遠(yuǎn)程的標(biāo)簽,先刪除本地標(biāo)簽栖茉,再刪除遠(yuǎn)程標(biāo)簽篮绿,刪除遠(yuǎn)程庫(kù)上的標(biāo)簽:
git push origin :refs/tags/<tagname>

注意事項(xiàng)

git rm --cache submodule_name 刪除子模組

git branch --set-upstream-to=origin/dev dev 關(guān)聯(lián)遠(yuǎn)程分支

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市吕漂,隨后出現(xiàn)的幾起案子亲配,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吼虎,死亡現(xiàn)場(chǎng)離奇詭異犬钢,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)思灰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門玷犹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人洒疚,你說(shuō)我怎么就攤上這事歹颓。” “怎么了油湖?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵巍扛,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我乏德,道長(zhǎng)撤奸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任喊括,我火速辦了婚禮胧瓜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘郑什。我一直安慰自己府喳,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布蹦误。 她就那樣靜靜地躺著劫拢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪强胰。 梳的紋絲不亂的頭發(fā)上舱沧,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音偶洋,去河邊找鬼熟吏。 笑死,一個(gè)胖子當(dāng)著我的面吹牛玄窝,可吹牛的內(nèi)容都是我干的牵寺。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼恩脂,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼帽氓!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起俩块,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤黎休,失蹤者是張志新(化名)和其女友劉穎浓领,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體势腮,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡联贩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了捎拯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泪幌。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖署照,靈堂內(nèi)的尸體忽然破棺而出祸泪,到底是詐尸還是另有隱情,我是刑警寧澤藤树,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布浴滴,位于F島的核電站拓萌,受9級(jí)特大地震影響岁钓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜微王,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一屡限、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧炕倘,春花似錦钧大、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至涨醋,卻和暖如春瓜饥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背浴骂。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工乓土, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人溯警。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓趣苏,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親梯轻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子食磕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

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