Git(一):基礎(chǔ)操作

Git, 作為一款先進的版本控制工具湖苞,已經(jīng)越來越多被大家才采用片部。但是由于其學習成本不小拱烁,阻攔的不少人,這里推薦廖學峰老師的Git入門教程博客

本博客是對廖雪峰老師博客中的Git命令的簡版概述崩哩,便于日常使用查詢

abstract.png

一巡球、Git 入門

1.1 Git 安裝

從官網(wǎng)下載安裝Git,然后執(zhí)行下述命令看是否輸出版本信息邓嘹,驗證Git是否安裝成功辕漂,

    git --version

1.2 Git 配置

配置用戶信息, 分別執(zhí)行下述命令吴超,設(shè)置您的全局用戶名和郵箱信息

    git config --global user.name "Aaron Zhu"
    git config --global user.email "tony@qq.com"

1.3 基本命令

  • 查看當前目錄 Git 版本庫狀態(tài)
    git status
  • 查看各版本的 commit message 、 commit id
    git log
  • 查看操作Git 的命令歷史記錄. 版本回退后鸯乃, git log命令顯示的是當前版本之前的版本信息和commit id鲸阻,無法查看當前版本之后版本的commit message、commit id缨睡。故可以使用如下命令鸟悴,查看之后版本的commit id
    git reflog
  • 比較工作區(qū)中文件的修改變化
    git diff a.java     // 比較 a.java 文件的改動

二、版本庫基本操作

2.1 創(chuàng)建版本庫

在項目文件夾(無須為空文件夾)下奖年,執(zhí)行下述命令創(chuàng)建版本庫细诸,執(zhí)行成功后會在該目錄下創(chuàng)建一個.git的隱形文件夾

    git init        // 創(chuàng)建 Git 版本庫

2.2 添加新文件、文件修改

使用命令git add <file>將新文件陋守、文件修改 添加到暫存區(qū)Stage震贵, 注意,可反復(fù)多次使用水评,添加多個文件猩系、修改

    git add main.c      // 添加 當前目錄下的 main.c 文件
    git add folder1/    // 添加 當前目錄下的 floder目錄中的所有文件(包含子目錄文件)
    git add *             // 添加 當前目錄下的 所有文件 (包含子目錄文件)

2.3 文件刪除

刪除文件操作,對于Git而言中燥,本質(zhì)上也是一種文件修改寇甸。所以在磁盤刪除文件后,可以使用git add命令添加刪除文件的修改到 Stage疗涉,同時Git也提供了下述命令用于添加 刪除操作的文件修改

    git rm text.c       // 添加 text.c 文件 刪除操作

2.4 提交

對于 Stage 中的新文件、文件修改,使用命令git commit -m <message>糖权,完成提交. Note: 版本的備注信息 message一般不建議省略企量,否則后期很難追溯

    git commit -m "Frist Commit"

三、文件修改的撤銷

對于某些 文件修改偏窝,我們可能并不想收恢,甚至不能提交上去武学,那么該如何撤銷呢?
文件修改的撤銷伦意,有兩種場景:

  • 工作區(qū)的文件修改火窒,即,欲撤銷的文件修改未 add到 暫存區(qū)Stage中
  • 暫存區(qū)的文件修改驮肉,即熏矿,欲撤銷的文件修改已經(jīng)被 add到 暫存區(qū)Stage中

3.1 工作區(qū)中文件修改的撤銷

工作區(qū)中文件修改的撤銷 ,即离钝, 此修改發(fā)生在工作區(qū)中票编,但是未被添加到暫存區(qū)Stage中

對于工作區(qū)的未添加的文件修改, 可以使用下述命令進行撤銷卵渴。其撤銷結(jié)果有 2 種情況:

  • 如果該 未添加的文件修改 是在 git add 后修改的慧域,即之前修改了若干次加入Stage后 ,然后又發(fā)生了修改浪读,則撤銷后昔榴,恢復(fù)為Stage中的版本
  • 如果該 未添加的文件修改 過程中,從未添加到Stage中碘橘,則恢復(fù)為版本庫中的版本

即:該文件的撤銷結(jié)果互订,為最近一次 git add 或 git commit 的文件狀態(tài)。即痘拆,該狀態(tài)之后發(fā)生了任何未添加的修改都將被撤銷

    git checkout  -- filename.c     // 丟棄 filename.c 文件 在 工作區(qū) 的修改

Note: 該用法中(工作區(qū)中文件修改的撤銷)仰禽,命令中的 -- 不可省略,否則意為 切換分支

3.2 暫存區(qū)中文件修改的撤銷

暫存區(qū)中文件修改的撤銷, 即纺蛆,文件修改吐葵,被意外的add到了暫存區(qū)
使用下述命令,將暫存區(qū)的文件修改犹撒,重新放回工作區(qū)折联,同時暫存區(qū)清空。執(zhí)行后可以看到识颊,文件狀態(tài)為被修改诚镰,且未被添加到暫存區(qū)。此時祥款,工作區(qū)中的文件修改清笨,你可以繼續(xù)編輯、添加刃跛、提交抠艾,也可以繼續(xù)撤銷,對于工作區(qū)中文件修改的撤銷桨昙,請參考上文

    git reset HEAD main.js      // 撤銷 暫存區(qū)中 main.js 文件件修改检号,重新放回工作區(qū)腌歉,清空暫存區(qū)

四、版本回滾

4.1 回退到之前

在Git中齐苛,用HEAD表示當前版本翘盖,也就是最新的提交版本。上一個版本就是HEAD^ 凹蜂,上上一個版本就是HEAD^^ 馍驯,以此類推……當然往上100個版本寫100個^比較容易數(shù)不過來,所以寫成HEAD~100

git reset 命令 回退到之前的版本

    git reset --hard HEAD^     // 回退到上一個版本
    git reset --hard HEAD^^   // 回退到上一個版本
    git reset --hard xxxx         // xxxx 為之前版本的commit id的前幾位 

4.2 回退到之后

代碼回退到之前的版本后玛痊,如果想繼續(xù)回退到之后的版本汰瘫,則無法使用上文HEAD標識回退到未來的版本,但可以使用commit id的方法進行回退

    git reset --hard commitId  // 回退到之后的 commit id 版本
    git reset --hard 1c23bc    // 回退到 commit id 為 1c23bc ... xxxx 的版本擂煞;commit id 數(shù)字串較長混弥,一般取前6位即可區(qū)分,如果不夠对省,可以再多取幾位
  • 如果git bash窗口未關(guān)閉剑逃,可以通過窗口記錄,找到并使用之后版本的 commit id進行回退
  • 如果git bash窗口重新打開了官辽,也可以使用下述命令找到你 操作Git 的命令歷史記錄,從而找到之后版本的commit id
    git reflog

五粟瞬、標簽

在Git中同仆,不同版本的代碼是以commit id作為版本號進行區(qū)分的,但是由于commit id是Git計算生成裙品,不便記憶俗批。故可在指定版本上添加上自定義標簽,便于使用(相當于給某個版本代碼市怎,取個易于記憶的別名岁忘,方便日后取用)。

5.1 添加標簽

  • 可以使用如下命令給當前所在版本添加標簽
    git tag tagName      // 在當前版本添加標簽 tagName
    git tag v1.0        //  在當前的版本区匠,添加標簽 v1.0
  • 如果想給之前的某個版本添加標簽干像,無須回退到該版本,只需在上述命令后添加該版本的commit id即可
    git tag tagName commitId    // 在指定commit id的版本上添加標簽 tagName    
    git tag v0.8 3cbd33         // 向commit id為3cbd33的版本添加標簽 v0.8
  • 像提交版本添加備注信息便于日后追溯一樣驰弄,在添加標簽時麻汰,同樣也可以添加關(guān)于該標簽的注釋信息
    git tag -a tagName -m <message>                     // 在當前的版本上添加標簽 tagName,備注信息為message
    git tag -a v1.1 -m "version 1.0 Final"              // 在當前版本上添加標簽 v1.1戚篙,備注信息為version 1.0 Final
    
    git tag -a tagName -m <message> commitId            // 在指定commit id的版本上添加標簽 tagName五鲫,備注信息為message
    git tag -a v0.3 -m "version 0.8 SNAPSHOT" 2caf9b    // 在commit id為 2caf9b 的版本上添加標簽 v0.3 tagName,備注信息為version 0.8 SNAPSHOT

5.2 查看標簽

  • 使用下述命令查看目前已經(jīng)添加的所有的標簽名
    git tag     // 顯示所有添加的標簽名
  • 使用下述命令查看指定標簽版本的信息,包括commit id岔擂、時間 ...
    git show tagname       // 查看指定標簽名的版本信息
    git show v0.8         // 查看標簽v0.8的版本信息
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載位喂,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者浪耘。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市塑崖,隨后出現(xiàn)的幾起案子七冲,更是在濱河造成了極大的恐慌,老刑警劉巖弃舒,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件癞埠,死亡現(xiàn)場離奇詭異,居然都是意外死亡聋呢,警方通過查閱死者的電腦和手機苗踪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來削锰,“玉大人通铲,你說我怎么就攤上這事∑鞣罚” “怎么了颅夺?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蛹稍。 經(jīng)常有香客問我吧黄,道長,這世上最難降的妖魔是什么唆姐? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任拗慨,我火速辦了婚禮,結(jié)果婚禮上奉芦,老公的妹妹穿的比我還像新娘赵抢。我一直安慰自己,他們只是感情好声功,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布烦却。 她就那樣靜靜地躺著,像睡著了一般先巴。 火紅的嫁衣襯著肌膚如雪其爵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天伸蚯,我揣著相機與錄音醋闭,去河邊找鬼。 笑死朝卒,一個胖子當著我的面吹牛证逻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼囚企,長吁一口氣:“原來是場噩夢啊……” “哼丈咐!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起龙宏,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤棵逊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后银酗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辆影,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年黍特,在試婚紗的時候發(fā)現(xiàn)自己被綠了蛙讥。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡灭衷,死狀恐怖次慢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情翔曲,我是刑警寧澤迫像,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站瞳遍,受9級特大地震影響闻妓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜掠械,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一纷闺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧份蝴,春花似錦、人聲如沸氓轰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽署鸡。三九已至案糙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間靴庆,已是汗流浹背时捌。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留炉抒,地道東北人奢讨。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像焰薄,于是被迫代替她去往敵國和親拿诸。 傳聞我的和親對象是個殘疾皇子扒袖,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

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

  • 大綱: 一、前言 二亩码、概述 三季率、在Windows上安裝Git 四、創(chuàng)建本地倉庫 五描沟、本地倉庫管理詳解 六飒泻、總結(jié) 注...
    首席架構(gòu)師閱讀 365評論 1 3
  • 以下筆記主要參考gitgot,大致了解git使用和原理吏廉。 第一部分我們從個人的視角去研究如何用好Git泞遗,并且揭示G...
    carolwhite閱讀 2,381評論 0 1
  • Git教程 一、Git簡介 1.1. Git的誕生1.2.集中式的vs分布式 二迟蜜、安裝Git 三刹孔、創(chuàng)建版本庫 四、...
    曹淵說創(chuàng)業(yè)閱讀 947評論 0 2
  • Add & Commit git init 初始化一個 Git 倉庫(repository)娜睛,即把當前所在目錄變成...
    冬絮閱讀 4,832評論 0 9
  • 每日一圖 圖(單反)/少帥 曾經(jīng)獨自漂泊流浪髓霞, 不知是否停留在下一個遠方? 追尋兒時簡單的夢想畦戒, 多少苦痛一杯酒就...
    J少帥閱讀 140評論 0 0