git學(xué)習(xí)總結(jié)

看了廖雪峰的git教程,很詳細(xì),并且小結(jié)很到位,在此自己再根據(jù)需要總結(jié)一下,方便今后操作查閱,詳情可看git教程
PS:緊記Git跟蹤并管理的是修改,而非文件。

1. 創(chuàng)建版本庫

git init --> 初始化一個Git倉庫

添加文件到git倉庫分2步:

  • git add <file>
  • git commit -m <message> ps:-m后面輸入的是本次提交的有意義說明
2.版本回退(后悔藥)

Git允許我們在版本的歷史之間穿梭 git reset --hard commit_id

  • 回到過去,使用 git log 查看 commit_id
  • 重返未來,使用 git reflog 查看commit_id
3.工作區(qū)、暫存區(qū)、版本庫的概念

Git和其他版本控制系統(tǒng)如SVN的一個不同之處就是有暫存區(qū)的概念。

  • 工作區(qū):電腦里能看到的目錄
  • 暫存區(qū): stage/index ,存放在 ".git目錄下" 下的index文件(.git/index)中,so,也可叫作索引(index)
  • 版本庫:工作區(qū)有個隱藏目錄.giit ,是Git的版本庫

修改提交及chexiu操作流程:
工作區(qū)-- git add <file> ---> 暫存區(qū) --git commit -m <meg> --> 版本庫
版本庫--版本回退(未推送到遠(yuǎn)程庫)-->暫存區(qū)--git reset head <file>-->工作區(qū)--git checkout -- file-->丟棄工作區(qū)的修改

簡言之,撤銷修改可分4種
1.沒有g(shù)it add時,用git checkout -- file

2.已經(jīng)git add時,先git reset HEAD <file>回退到1.,再按1.操作

3.已經(jīng)git commit時,用git reset回退版本

4.如已推送到遠(yuǎn)程庫,GG?

這里說說較為難理解的一個點----暫存區(qū)

  • 暫存區(qū)如概念所說是一個index文件

  • git init 初始化倉庫的時候會生成一個文件夾.git(普遍隱藏,可設(shè)置顯示隱藏文件夾),里面內(nèi)容如下


    git.jpg
    git-無暫存區(qū).jpg
  • 添加一個文本text1,并執(zhí)行git add . 操作,.git下多了個index文件,它就是一個暫存區(qū),也被成為索引 index

    出現(xiàn)暫存區(qū)文件index.jpg

  • 執(zhí)行git status,可見文件被修改,處于暫存區(qū)待提交commit狀態(tài)

    1.jpg

  • 此時再來看看暫存區(qū)的內(nèi)容git ls-files --stage

    2.jpg

  • 新增文件text2,并新增到暫存區(qū),再次查看暫存區(qū)內(nèi)容
    3.jpg
  • 這下便可理解,為何暫存區(qū)被稱為索引(index)-- 指向文件的索引
    而真正的文件是存儲在.git/objects目錄,這里不詳說,具體可查閱官方資料

  • 下面將所有文件提交,查看工作區(qū)、暫存區(qū)的狀態(tài),查看暫存區(qū)的內(nèi)容

    4.jpg

    由此可見commit后工作區(qū)沒有新增/修改的文件,暫存區(qū)也沒有待提交的文件,暫存區(qū)內(nèi)容不變,并不像我們感性上的被清空,如真的需要刪除暫存區(qū)的內(nèi)容,其實就是刪除index文件的內(nèi)容,存儲在.git/objects目錄下的真正文件是不會被刪除的,如想刪除真正的文件,操作git rm --cached <file>
    5.jpg

  • 在理解了暫存區(qū)的基礎(chǔ)上,我們就能很好的理解了以下命令


    6.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 大綱: 一、前言 二、概述 三、在Windows上安裝Git 四、創(chuàng)建本地倉庫 五、本地倉庫管理詳解 六、總結(jié) 注...
    首席架構(gòu)師閱讀 403評論 1 3
  • 簡介 Git是一個開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項目。 Git 與常用的版本控制工具 ...
    閩越布衣閱讀 2,872評論 0 18
  • 以下筆記主要參考gitgot,大致了解git使用和原理。 第一部分我們從個人的視角去研究如何用好Git,并且揭示G...
    carolwhite閱讀 2,523評論 0 1
  • git 使用筆記 git原理: 文件(blob)對象,樹(tree)對象,提交(commit)對象 tree對象 ...
    神刀閱讀 3,849評論 0 10
  • 一、基本概念: 注:對于git的分布式概念及其優(yōu)點,不重復(fù)說明,自己百度或谷歌。本文中涉及到指令前面有$的,在cm...
    大廠offer閱讀 1,558評論 0 3

友情鏈接更多精彩內(nèi)容