
Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)
Git的安裝
sudo apt install git
Git工作流程

Git 工作區(qū)、暫存區(qū)和版本庫
- 工作區(qū):就是你在電腦里能看到的目錄。
- 暫存區(qū):英文叫stage, 或index。一般存放在 ".git目錄下" 下的index文件(.git/index)中,所以我們把暫存區(qū)有時(shí)也叫作索引(index)。
-
版本庫:工作區(qū)有一個(gè)隱藏目錄.git,這個(gè)不算工作區(qū),而是Git的版本庫。
Git版本庫
- 版本庫介紹
版本庫又名倉庫,英文名repository,你可以簡(jiǎn)單理解成一個(gè)目錄,這個(gè)目錄里面的所有文件都可以被Git管理起來,每個(gè)文件的修改、刪除,Git都能跟蹤,以便任何時(shí)刻都可以追蹤歷史,或者在將來某個(gè)時(shí)刻可以“還原”。 - 版本庫創(chuàng)建和初始化
創(chuàng)建倉庫目錄 - repository
初始化倉庫 - git init - 將文件添加到倉庫(暫存區(qū),可多次添加)
新建一個(gè)readme.md文件
添加文件到倉庫 - git add readme.md - 提交文件到倉庫(版本庫)
git commit -m "提示信息..."
Git Clone
使用 git clone 從現(xiàn)有 Git 倉庫中拷貝項(xiàng)目(類似 svn checkout)
git clone <倉庫地址> <本地目錄名稱(無設(shè)置則默認(rèn)為項(xiàng)目同名目錄)>
Git Status
查看Git倉庫的狀態(tài)
Git Diff
可查詢更改詳情信息
Git Reset
用法
git reset <file>
從緩存區(qū)移除特定文件,但不改變工作目錄。它會(huì)取消這個(gè)文件的緩存,而不覆蓋任何更改。git reset
重設(shè)緩沖區(qū),匹配最近的一次提交,但工作目錄不變。它會(huì)取消 所有 文件的緩存,而不會(huì)覆蓋任何修改,給你了一個(gè)重設(shè)緩存快照的機(jī)會(huì)。git reset --hard
重設(shè)緩沖區(qū)和工作目錄,匹配最近的一次提交。除了取消緩存之外,--hard 標(biāo)記告訴 Git 還要重寫所有工作目錄中的更改。換句話說:它清除了所有未提交的更改,所以在使用前確定你想扔掉你所有本地的開發(fā)。git reset <commit>
將當(dāng)前分支的末端移到 <commit>,將緩存區(qū)重設(shè)到這個(gè)提交,但不改變工作目錄。所有 <commit> 之后的更改會(huì)保留在工作目錄中,這允許你用更干凈、原子性的快照重新提交項(xiàng)目歷史。git reset --hard <commit>
將當(dāng)前分支的末端移到 <commit>,將緩存區(qū)和工作目錄都重設(shè)到這個(gè)提交。它不僅清除了未提交的更改,同時(shí)還清除了 <commit> 之后的所有提交。
Git Revert
-
git revert命令用來撤銷一個(gè)已經(jīng)提交的快照。但是,它是通過搞清楚如何撤銷這個(gè)提交引入的更改,然后在最后加上一個(gè)撤銷了更改的 新 提交,而不是從項(xiàng)目歷史中移除這個(gè)提交。這避免了Git丟失項(xiàng)目歷史,這一點(diǎn)對(duì)于你的版本歷史和協(xié)作的可靠性來說是很重要的。
用法
git revert <commit>
生成一個(gè)撤消了 <commit> 引入的修改的新提交,然后應(yīng)用到當(dāng)前分支
