Git(二)指令

常用指令
  • git init:初始化一個倉庫
  • git clone <url>: 克隆一個倉庫
//會在當(dāng)前目錄下創(chuàng)建一個libgit2的目錄毫捣,并在這個目錄下初始化一個.git文件夾
//從遠(yuǎn)程倉庫拉取下的所有數(shù)據(jù)都放入.git文件夾域携,然后從中讀取最新版本的文件的拷貝
git clone https://github.com/libgit2/libgit2
  • git clone <url> <name>:在本地重新定義倉庫的名稱
 git clone https://github.com/libgit2/libgit2 mylibgit
  • git status: 查看你的文件狀態(tài)
    image.png

    上圖中可以看出readme 文件還未被git 跟蹤饿悬,是Untracked 狀態(tài),提示使用git add readme 使其暫存(以后被commited)
git add README //暫存
git status
image.png

上圖是已暫存的狀態(tài)

  • git status -s / git status --short:狀態(tài)簡覽


    image.png
 - ?? 未被跟蹤的文件
 - M :已修改的文件
 - A : 已暫存的文件
 - AM: 已暫存但是又被修改的文件
  • git diff: 查看尚未暫存的文件更新了哪些部分,比較的是工作區(qū)和暫存區(qū)的差異妒峦,也就是修改后還未暫存的內(nèi)容

  • git diff --staged/ git diff --cached:比較的是已暫存的和最后一次提交的差異,也就是已暫存的將要添加到下次提交里的內(nèi)容
    例如:有一個third 文件,已經(jīng)暫存的內(nèi)容是:“第三個文件”师倔,修改的內(nèi)容是“第一次修改”,該文件的狀態(tài)是 AM悔叽,就是已經(jīng)暫存莱衩,但是又做了修改

    image.png

    git diff:說明工作區(qū)和暫存區(qū)的差別是 添加了"第一次修改"
    image.png

    git diff --staged/ git diff --cached:說明暫存區(qū)和上一次提交的差別是“第三個文件”
    image.png

  • git commit -a :跳過add 過程,自動把所有跟蹤過的文件提交娇澎,未跟蹤過的不行

    image.png

  • git rm:移除文件笨蚁,必須從已跟蹤過的文件清單中移除(就是被git 所知曉的文件)

    image.png

  • git rm --cached "文件名或者目錄":刪除git 倉庫中的文件,但是保留工作區(qū)趟庄,意思是磁盤上保存括细,但是git 不跟蹤,適用于沒有來得及用gitignore 就提交的大量無用文件

git add 文件名 暫存
git commit -m '提交記錄' 提交
git commit -am 暫存+提交
git branch 分支名創(chuàng)建分支
git checkout 分支名切換分支
git checkout -b 分支名:創(chuàng)建并切換分支
git merge 分支名 合并分支
git remote add origin 地址添加遠(yuǎn)程庫地址
git push origin 分支推送到遠(yuǎn)程倉庫
git fetch:從服務(wù)器抓取本地沒有的數(shù)據(jù)戚啥,但是不會修改工作目錄中的內(nèi)容勒极,它只會獲取數(shù)據(jù)然后讓你自己合并
git pull:拉取,并合并虑鼎,修改工作目錄內(nèi)容

git 支持的協(xié)議

git 支持多種數(shù)據(jù)傳輸協(xié)議
https:// 協(xié)議辱匿,git://協(xié)議, ssh 協(xié)議 user@server:path/to/repo.git

提交歷史查看
  • git log
  • git log -p / git log --patch:它會顯示每次提交所引入的差異
  • git log -2/ 數(shù)字指定打印幾條log
  • git log --stat :每次提交的簡略統(tǒng)計(jì)信息
  • git log --pretty:個選項(xiàng)可以使用不同于默認(rèn)格式的方式展示提交歷史
  • git log --pretty=oneline:會將每個提交放在一行顯示,在瀏覽大量的提交時非常有用
pretty 子項(xiàng)
//以下三行格式基本一致炫彩,詳盡程度不一
git log --pretty=short
git log --pretty=full
git log --pretty=fuller
// git log --pretty=format:""
撤銷操作
  • git commit --amend: 會提交暫存中的信息匾七,如果上次提交之后沒有做任何改動,那么會修改提交信息
遠(yuǎn)程倉庫
  • git remote://查看遠(yuǎn)程倉庫江兢,一般是簡寫(默認(rèn)origin)
  • git remote -v://會列出所有的遠(yuǎn)程倉庫昨忆, 簡寫和地址
  • git remote add <shortname> <url>:shortname 就是遠(yuǎn)程倉庫的簡寫,可以指定杉允,之后可以使用簡寫代替遠(yuǎn)程倉庫 例如拉纫靥:git fetch <shortname>
  • git fetch <remote>:拉取遠(yuǎn)程倉庫席里,remote 為遠(yuǎn)程的簡寫,默認(rèn)origin
  • git push <remote> <branch>:推送到遠(yuǎn)程倉庫
  • git push origin master:將master 分支推送到origin 服務(wù)器
  • git remote show <remote>:查看遠(yuǎn)程倉庫
  • git remote rename:改寫遠(yuǎn)程倉庫的簡寫名稱(例如 git remote rename pb pual)
  • git remote remove/git remote rm :移除遠(yuǎn)程倉庫
  • git checkout -b <branch> <remote>/<branch>:創(chuàng)建一個本地分支branch 跟蹤遠(yuǎn)程分支 <remote>/<branch>
  • git checkout --track origin/main(遠(yuǎn)程分支名):創(chuàng)建并檢出一個本地分支 main拢驾,跟蹤遠(yuǎn)程引用 origin/main(以上的快捷方式)
  • git push origin --delete <branch>刪除遠(yuǎn)程分支
打標(biāo)簽

git 可以給倉庫歷史中的某一個提交打上標(biāo)簽奖磁,代表性的是人們用這個功能來標(biāo)記發(fā)布節(jié)點(diǎn)

  • git tag :列出所有標(biāo)簽
  • git tag -l /git tag -list: 同上,可以省略
  • git tag -l "v1.8.5*" :列出1.8.5系列版本
    標(biāo)簽分為輕量標(biāo)簽附注標(biāo)簽繁疤,輕量標(biāo)簽只是一個臨時的信息咖为,它只是某個特定提交的引用。附注標(biāo)簽是存儲在git 數(shù)據(jù)庫中的一個完整的對象
附注標(biāo)簽
  • git tag -a v1.4 -m "my version 1.4"
輕量標(biāo)簽
  • git tag -v1.4 -lw
補(bǔ)打標(biāo)簽

通過git log --pretty=oneline 查看所有的提交稠腊,在某一次提交補(bǔ)打標(biāo)簽 要找到對應(yīng)的校驗(yàn)和躁染,通過 git tag -a <校驗(yàn)和或者部分校驗(yàn)和> -m "內(nèi)容"

image.png

共享標(biāo)簽

默認(rèn)情況下,git push 并不會將標(biāo)簽傳送到遠(yuǎn)程倉庫上架忌,創(chuàng)建完成后必須顯示的推送標(biāo)簽

  • git push <remote> <tag>: git push origin v1.0 :推送一次標(biāo)簽
  • git push <remote> --tags: git push origin --tags:一次推送很多標(biāo)簽
刪除標(biāo)簽
  • git tag -d <tagname>:git tag -d v1.0 刪除本地1.0的標(biāo)簽
  • git tag -d <tagname> -lw :刪除輕量標(biāo)簽
    上述操作并不會刪除遠(yuǎn)程吞彤,需要
  • git push <remote>:refs/tags/<tagname>
    或者:
  • git push <remote> --delete <tagname>
檢出標(biāo)簽,如果你需要進(jìn)行更改,比如你要修復(fù)舊版本中的錯誤叹放,那么通常需要創(chuàng)建一個新分支:
  • git checkout -b version2 v2.0.0 ://Switched to a new branch 'version2'
分支

git branch:查看分支
git branch -v:查看每一個分支的最后一次提交
git branch -vv:列出所有的本地分支备畦,并且包含更多的信息(例如跟蹤的遠(yuǎn)程分支)
git branch --merged:查看與當(dāng)前分支合并過的分支
git branch --no-merged查看與當(dāng)前分支未合并過的分支
git branch -d刪除無用分支

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市许昨,隨后出現(xiàn)的幾起案子懂盐,更是在濱河造成了極大的恐慌,老刑警劉巖糕档,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件莉恼,死亡現(xiàn)場離奇詭異,居然都是意外死亡速那,警方通過查閱死者的電腦和手機(jī)俐银,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來端仰,“玉大人捶惜,你說我怎么就攤上這事±笊眨” “怎么了吱七?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鹤竭。 經(jīng)常有香客問我踊餐,道長,這世上最難降的妖魔是什么臀稚? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任吝岭,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘窜管。我一直安慰自己散劫,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布幕帆。 她就那樣靜靜地躺著获搏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蜓肆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天谋币,我揣著相機(jī)與錄音仗扬,去河邊找鬼。 笑死蕾额,一個胖子當(dāng)著我的面吹牛早芭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播诅蝶,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼退个,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了调炬?” 一聲冷哼從身側(cè)響起语盈,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎缰泡,沒想到半個月后刀荒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡棘钞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年缠借,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宜猜。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡泼返,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出姨拥,到底是詐尸還是另有隱情绅喉,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布叫乌,位于F島的核電站霹疫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏综芥。R本人自食惡果不足惜丽蝎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧屠阻,春花似錦红省、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至麻诀,卻和暖如春痕寓,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蝇闭。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工呻率, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人呻引。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓礼仗,卻偏偏與公主長得像,于是被迫代替她去往敵國和親逻悠。 傳聞我的和親對象是個殘疾皇子元践,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

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

  • 配置 git config --list顯示當(dāng)前 Git 配置 git config -e [--global]編...
    又語閱讀 118評論 0 0
  • Git基礎(chǔ) 通過上一篇Git:一文章,我們大體了解了創(chuàng)建倉庫童谒,提交代碼等相關(guān)流程单旁,本篇重點(diǎn)介紹git相關(guān)的基礎(chǔ)操作...
    恒源賓館閱讀 443評論 0 1
  • Git 常用基本命令 git clone url 開發(fā)的第一步就是 克隆遠(yuǎn)程倉庫到本地; git clone...
    _1633_閱讀 181評論 0 1
  • git 自定義簡寫 $ git config alias.st status 注意:除非特殊原因,最好不要設(shè)置別...
    ElvisSun閱讀 337評論 0 0
  • 如果你安裝了git還沒有添加ssh公鑰饥伊,請看上一篇:初遇git (一):讓git記住你的計(jì)算機(jī) 在這之前慎恒,要先明白...
    Simple_小楓閱讀 309評論 0 1