Git常用命令

收集、記錄环疼、整理一些 Git 相關(guān)使用技巧蹋嵌。

git config

查看配置信息

  • 命令參數(shù) --list芽隆,簡(jiǎn)寫(xiě) -l
  • 格式:git config [–local|–global|–system] -l
//查看倉(cāng)庫(kù)級(jí)的 config
git config --local -l
//查看全局級(jí)的 config
git config --global -l
//查看系統(tǒng)級(jí)的 config
git config --system -l
//查看當(dāng)前生效的配置
git config -l

打開(kāi)編輯器(修改)

  • 命令參數(shù) --edit -e
  • 格式:git config [–local|–global|–system] -e

:語(yǔ)法相同询微,唯一區(qū)別是該命令會(huì)使用默認(rèn)編輯器打開(kāi)配置文件玄叠。

添加配置

  • 命令參數(shù) --add
  • 格式:git config [–local|–global|–system] --add section.key value
# 
git config --add core.email "sss213018@163.com"
# core.email=sss213018@163.com

git push 提交到遠(yuǎn)程倉(cāng)庫(kù)

  • 默認(rèn)當(dāng)前分支 git push
  • 指定分支 git push origin master
    • git push <remote> <place>
    • 該命令可翻譯為:切換到本地倉(cāng)庫(kù)中的“master”分支,獲取所有的提交拓提,再到遠(yuǎn)程倉(cāng)庫(kù)“origin”中找到“master”分支,將遠(yuǎn)程倉(cāng)庫(kù)中沒(méi)有的提交記錄都添加上去隧膘。
  • 指定不同分支 git push origin master:newBranch
    • git push origin <source>:<destination>
    • 該命令可翻譯為:將本地倉(cāng)庫(kù)中的“master”分支合并到遠(yuǎn)程的newBranch分支代态,如果該newBranch分支不存在遠(yuǎn)程,則會(huì)以此名稱(chēng)創(chuàng)建疹吃。

git fetch 拉取遠(yuǎn)程到本地

整體用法與git push類(lèi)似蹦疑,只是方向相反罷了。

  • git fetch :下載所有的提交記錄到各個(gè)遠(yuǎn)程分支
  • git fetch origin foo :下載遠(yuǎn)程foo分支的提交記錄到本地o/foo分支萨驶,它不會(huì)更新你的本地的非遠(yuǎn)程分支, 只是下載提交記錄歉摧。
  • git fetch origin <source>:<destination>source現(xiàn)在指的是遠(yuǎn)程倉(cāng)庫(kù)中的位置,而destination才是要放置提交的本地倉(cāng)庫(kù)的位置腔呜。

git merge 分支合并

  • 快進(jìn)模式:直接把master指向dev的當(dāng)前提交
    git merge dev //把dev合并到當(dāng)前分支
  • 保留信息整體合并--no-ff:
    git merge --no-ff -m "merge with no-ff" dev
  • 合并提交:
    git log --oneline -3 //查看最近 3 次
    git cherry-pick 6432f50 //把記錄 6432f50 合并到當(dāng)前分支

git pull 拉取并合并

git pull 相當(dāng)于是 fetch 后跟 merge 的縮寫(xiě)叁温。你可以理解為用同樣的參數(shù)執(zhí)行 git fetch测摔,然后再 merge 你所抓取到的提交記錄丘喻。

  • git pull origin foo :相當(dāng)于 git fetch origin foo; git merge o/foo
  • git pull origin master:foo :它先在本地創(chuàng)建了一個(gè)叫 foo的分支,從遠(yuǎn)程倉(cāng)庫(kù)中的 master 分支中下載提交記錄策泣,并合并到 foo谤草,然后再 merge 到我們的當(dāng)前檢出的分支 bar上跟束。

git tag 打標(biāo)簽

  • 輕量標(biāo)簽:git tag v1.0
    • 輕量標(biāo)簽本質(zhì)上是將提交校驗(yàn)和存儲(chǔ)到一個(gè)文件中——沒(méi)有保存任何其他信息。 創(chuàng)建輕量標(biāo)簽丑孩,不需要使用 -a冀宴、-s 或 -m 選項(xiàng),只需要提供標(biāo)簽名字
  • 附注標(biāo)簽:git tag -a v1.0 -m "my version 1.0"
  • 后期打標(biāo)簽: git tag -a v1.0 9fceb02 //指定某次提交
    • git log --oneline -3 //查看提交歷史與hash值 e3890bc
  • 推送到遠(yuǎn)程origin
    • git push origin v1.0git push origin --tags

git checkout 檢出温学、替換

檢出:分支切換略贮、文件恢復(fù):

  • 創(chuàng)建切換分支:git checkout -b xx 等同于 1. git branch xx 2. git checkout xx
  • 恢復(fù)狀態(tài): git checkout ./
  • git checkout 文件名

替換覆蓋:達(dá)到合并指定文件夾或文件到分支的效果:

  • 場(chǎng)景:如當(dāng)前在master分支,合并dev分支下的test文件夾中所有文件到master
  • 示例:git checkout dev src/pages/test // git checkout 分支 文件路徑

tips:該操作是直接替換并不是合并,實(shí)際操作時(shí)可以再新建一個(gè)分支避免丟失別人別人的改動(dòng)記錄刨肃。

delete 刪除分支

  • 查看所有分支:git branch -a
  • 刪除本地分支:git branch -d xx
  • 刪除遠(yuǎn)程分支:git push origin --delete xx

set-url 更改遠(yuǎn)程地址

  • 綁定 ssh 地址:git remote set-url origin git@git.xx.com
  • push 所有 commit 和 branch:git push -u origin --all // -u 可以不加
  • push 所有 tag:git push -u origin --tags

-u 的作用
遠(yuǎn)程庫(kù)有可能并沒(méi)有mybranch1分支:
git push -u origin mybranch1 相當(dāng)于
git push origin mybranch1 + git branch --set-upstream-to=origin/mybranch1 mybranch1

git stash 提交特定文件古拴、恢復(fù)錯(cuò)誤的存儲(chǔ)

  • 作用:用于想要保存當(dāng)前的修改,但是想回到之前最后一次提交的干凈的工作倉(cāng)庫(kù)時(shí)進(jìn)行的操作,git stash將本地的修改保存起來(lái)真友,并且將當(dāng)前代碼切換到HEAD提交上黄痪。
  • 場(chǎng)景:①開(kāi)發(fā)到一半,同步遠(yuǎn)端代碼、②工作流被打斷,需要先做別的需求盔然、③提交特定文件桅打、④恢復(fù)被錯(cuò)誤clear/drop的存儲(chǔ)。
  • git stash:等同于 git stash save 愈案,存儲(chǔ)修改并且將git的工作狀態(tài)切回到HEAD上一次合法提交上
  • git stash pop:移除單個(gè)存儲(chǔ)單元挺尾,和git stash save的作用相反。
  • git stash list:查看修改列表
  • git stash show:展示存儲(chǔ)單元和最新提交的diff結(jié)果
  • git stash apply:用于重新存儲(chǔ)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末站绪,一起剝皮案震驚了整個(gè)濱河市遭铺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌恢准,老刑警劉巖魂挂,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異馁筐,居然都是意外死亡涂召,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)敏沉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)果正,“玉大人,你說(shuō)我怎么就攤上這事盟迟∏镉荆” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵队萤,是天一觀的道長(zhǎng)轮锥。 經(jīng)常有香客問(wèn)我,道長(zhǎng)要尔,這世上最難降的妖魔是什么舍杜? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮赵辕,結(jié)果婚禮上既绩,老公的妹妹穿的比我還像新娘。我一直安慰自己还惠,他們只是感情好饲握,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般救欧。 火紅的嫁衣襯著肌膚如雪衰粹。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,488評(píng)論 1 302
  • 那天笆怠,我揣著相機(jī)與錄音铝耻,去河邊找鬼。 笑死蹬刷,一個(gè)胖子當(dāng)著我的面吹牛瓢捉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播办成,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼泡态,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了迂卢?” 一聲冷哼從身側(cè)響起某弦,我...
    開(kāi)封第一講書(shū)人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎而克,沒(méi)想到半個(gè)月后刀崖,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拍摇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了馆截。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片充活。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蜡娶,靈堂內(nèi)的尸體忽然破棺而出混卵,到底是詐尸還是另有隱情,我是刑警寧澤窖张,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布幕随,位于F島的核電站,受9級(jí)特大地震影響宿接,放射性物質(zhì)發(fā)生泄漏赘淮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一睦霎、第九天 我趴在偏房一處隱蔽的房頂上張望梢卸。 院中可真熱鬧,春花似錦副女、人聲如沸蛤高。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)戴陡。三九已至塞绿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間恤批,已是汗流浹背异吻。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留开皿,地道東北人涧黄。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像赋荆,于是被迫代替她去往敵國(guó)和親笋妥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

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

  • Git簡(jiǎn)介 Git是Linux之父Linus的第二個(gè)偉大的作品窄潭,它最早是在Linux上開(kāi)發(fā)的春宣,被用來(lái)管理Linux...
    Windy_816閱讀 27,153評(píng)論 1 37
  • 配置 首先是配置帳號(hào)信息 ssh -T git@github.com#登陸github 修改項(xiàng)目中的個(gè)人信息 1 ...
    rochuan閱讀 722評(píng)論 1 1
  • 一、 Git 常用命令速查 git branch 查看本地所有分支 git status 查看當(dāng)前狀態(tài) git c...
    LOVE_晴天閱讀 2,324評(píng)論 0 10
  • 配置 首先是配置帳號(hào)信息ssh -T git@github.com # 登陸 github 修改項(xiàng)目中的個(gè)人信息 ...
    guanguans閱讀 736評(píng)論 0 3
  • git branch 查看本地所有分支 git status 查看當(dāng)前狀態(tài) git commit 提交 git b...
    猿萬(wàn)閱讀 5,056評(píng)論 1 45