git:小知識點總結(jié)

說明 時間
首次發(fā)布 2018年10月14日
最近更新 2019年08月19日

撤銷更改

  • git checkout -- <文件> 丟棄工作區(qū)的改動
  • git reset HEAD <file> 把暫存區(qū)的修改撤銷掉(unstage)食拜,重新放回工作區(qū)
  • git reset --hard HEAD^ 從本地代碼庫強制回滾提交赐写,--soft可以把回滾的代碼放到暫存區(qū)砚著。上一個版本用HEAD^表示,上上一個版本就是HEAD^^虑灰,當(dāng)然往上100個版本寫100個^比較容易數(shù)不過來快骗,所以寫成HEAD~100
  • git reset --hard commit_id 強制回滾到指定提交院峡,可以是未來或過去的某次提交。
小結(jié):
  • HEAD指向的版本就是當(dāng)前版本系宜,因此,Git允許我們在版本的歷史之間穿梭发魄,使用命令git reset --hard commit_id盹牧。
  • 穿梭前,用git log可以查看提交歷史励幼,以便確定要回退到哪個版本汰寓。
  • 要重返未來,用git reflog查看命令歷史苹粟,以便確定要回到未來的哪個版本有滑。

分支的創(chuàng)建和合并

  • git checkout -b 分支名 創(chuàng)建并切換到該分支;相等于下面git branch 分支名 + git checkout 分支名兩個命令嵌削。

  • git branch 分支名 創(chuàng)建分支

    -r                    查看遠(yuǎn)程分支列表
    -a, --all             列出遠(yuǎn)程跟蹤及本地分支
    -d, --delete          刪除完全合并的分支
    -D                                    強行刪除
    --list                列出分支名
    -f, --force           強制創(chuàng)建毛好、移動/重命名望艺、刪除
    
  • git checkout 分支名 切換分支

  • git merge 合并指定分支到當(dāng)前分支,如git merge dev

    --no-ff           用普通模式合并肌访,合并后的歷史有分支找默,能看出來曾經(jīng)做過合并,而`fast forward`合并就看不出來曾經(jīng)做過合并吼驶。如`git merge --no-ff -m "merge with no-ff" dev`
    

比較文件差異

git diff    比較工作區(qū)與暫存區(qū)的區(qū)別
git diff --cache 比較暫存區(qū)與 HEAD 的文件差異

刪除未追綜文件

git clean -df
-f, --force           強制
-d                    刪除整個目錄

貯藏

git stash

git stash                 貯藏代碼
git stash save "備注"      貯藏代碼
git stash list             貯藏代碼的列表
git stash pop              將當(dāng)前stash中的內(nèi)容彈出(刪除貯藏)惩激,并應(yīng)用到當(dāng)前分支對應(yīng)的工作目錄上
git stash apply      將當(dāng)前stash的內(nèi)容應(yīng)用于當(dāng)前目錄铐达,stash內(nèi)容并不刪除艾扮,需要用git stash drop來刪除
git stash drop + 名    從堆棧中移除某個指定的stash
git stash clear    清除堆棧中的所有內(nèi)容
git stash show   查看堆棧中最新保存的stash和當(dāng)前目錄的差異
git stash branch  從最新的stash創(chuàng)建分支

推送分支

推送分支,就是把該分支上的所有本地提交推送到遠(yuǎn)程庫挽放。推送時酒请,要指定本地分支骡技,這樣,Git就會把該分支推送到遠(yuǎn)程庫對應(yīng)的遠(yuǎn)程分支上:

git push origin master

如果要推送其他分支蚌父,比如dev哮兰,就改成:

git push origin dev

如果沒有指定本地dev分支與遠(yuǎn)程origin/dev分支的鏈接,git pull就會失敗苟弛。解決方法:設(shè)置devorigin/dev的鏈接:

git branch --set-upstream-to=origin/dev dev
$ Branch 'dev' set up to track remote branch 'dev' from 'origin'.

再pull:

git pull
小結(jié)
  • 查看遠(yuǎn)程庫信息喝滞,使用git remote -v
  • 本地新建的分支如果不推送到遠(yuǎn)程膏秫,對其他人就是不可見的右遭;
  • 從本地推送分支,使用git push origin branch-name缤削,如果推送失敗窘哈,先用git pull抓取遠(yuǎn)程的新提交;
  • 在本地創(chuàng)建和遠(yuǎn)程分支對應(yīng)的分支亭敢,使用git checkout -b branch-name origin/branch-name滚婉,本地和遠(yuǎn)程分支的名稱最好一致;
  • 建立本地分支和遠(yuǎn)程分支的關(guān)聯(lián)帅刀,使用git branch --set-upstream branch-name origin/branch-name让腹;
  • 從遠(yuǎn)程抓取分支,使用git pull扣溺,如果有沖突骇窍,要先處理沖突。

變基(rebase)

git rebase -i commit_id ==>作用:1锥余、修改老舊的commit message腹纳,合并需要選擇 `s`表示壓縮;2、合并多個commit嘲恍;

修改提交的message

  • 修改最新的 message

    git commit --amend
    

    編輯完成后足画,輸入:wq保存變更退出,就 OK 了蛔钙。

  • 修改老舊的 message

    git rebase -i commit_id
    

    之后锌云,選擇 r,編輯保存即可吁脱。


git log 打印提交版本信息

--oneline       簡潔顯示:只顯示提交信息和commit號
--graph       圖形化查看分支合并情況
-nX                 顯示最近幾次的提交信息桑涎,X代表最近幾次的數(shù)字  

git status [<選項>] [--] <路徑規(guī)格>...

-s, --short           以簡潔的格式顯示狀態(tài)
-b, --branch          顯示分支信息
--show-stash          顯示貯藏區(qū)信息


寫在最后:可以查看另一篇文章git:常用命令

參考:

撤銷修改

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市兼贡,隨后出現(xiàn)的幾起案子攻冷,更是在濱河造成了極大的恐慌,老刑警劉巖遍希,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件等曼,死亡現(xiàn)場離奇詭異,居然都是意外死亡凿蒜,警方通過查閱死者的電腦和手機禁谦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來废封,“玉大人州泊,你說我怎么就攤上這事∑螅” “怎么了遥皂?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長刽漂。 經(jīng)常有香客問我演训,道長,這世上最難降的妖魔是什么贝咙? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任样悟,我火速辦了婚禮,結(jié)果婚禮上庭猩,老公的妹妹穿的比我還像新娘乌奇。我一直安慰自己,他們只是感情好眯娱,可當(dāng)我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著爬凑,像睡著了一般徙缴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天于样,我揣著相機與錄音疏叨,去河邊找鬼。 笑死穿剖,一個胖子當(dāng)著我的面吹牛蚤蔓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播糊余,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼秀又,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了贬芥?” 一聲冷哼從身側(cè)響起吐辙,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蘸劈,沒想到半個月后昏苏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡威沫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年贤惯,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片棒掠。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡孵构,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出句柠,到底是詐尸還是另有隱情浦译,我是刑警寧澤,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布溯职,位于F島的核電站精盅,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏谜酒。R本人自食惡果不足惜叹俏,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望僻族。 院中可真熱鬧粘驰,春花似錦、人聲如沸述么。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽度秘。三九已至顶伞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背唆貌。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工滑潘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人锨咙。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓语卤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親酪刀。 傳聞我的和親對象是個殘疾皇子粹舵,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,724評論 2 351

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

  • 原文: Dyanmic Proxy Classes 介紹 一個動態(tài)代理類是實現(xiàn)了多個接口存在于運行時的類,這樣蓖宦,一...
    半黑月缺閱讀 938評論 0 0
  • AOP 可以通過預(yù)編譯方式和 運行期動態(tài)代理 實現(xiàn)在不修改源代碼的情況下給程序動態(tài)統(tǒng)一添加功能的一種技術(shù). 用于:...
    來鴻去燕閱讀 641評論 0 0
  • Java代理和動態(tài)代理機制分析和應(yīng)用 概述 代理是一種常用的設(shè)計模式齐婴,其目的就是為其他對象提供一個代理以控制對某個...
    丸_子閱讀 3,016評論 6 57
  • 一、基本概念 1.什么是代理稠茂? 在闡述JDK動態(tài)代理之前柠偶,我們很有必要先來弄明白代理的概念。代理這個詞本身并不是計...
    小李彈花閱讀 16,435評論 2 40
  • 1睬关、代理概念 為某個對象提供一個代理诱担,以控制對這個對象的訪問。 代理類和委托類有共同的父類或父接口电爹,這樣在任何使用...
    孔垂云閱讀 7,621評論 4 54