Git官網(wǎng)
初始化操作
- Git版本查看
$ git --version
- 用戶名配置
$ git config --global user.name "your name"
note:參數(shù)--global
表明所有Git版本庫(kù)都是用一樣的用戶名
$ git config --global user.email "email@example.com"
note:參數(shù)--global
表明所有Git版本庫(kù)都是用一樣的郵箱
note:可以對(duì)某個(gè)Git倉(cāng)庫(kù)使用不同的用戶名和郵箱
創(chuàng)建版本庫(kù)
- 選擇合適的地方創(chuàng)建一個(gè)目錄
note:Win系統(tǒng)下祟敛,目錄名(包括父目錄)不要包含中文
$ mkdir learngit
創(chuàng)建 learngit 目錄
$ cd learngit
轉(zhuǎn)到 learngit 目錄
$ pwd
顯示當(dāng)前目錄 - 把當(dāng)前目錄轉(zhuǎn)化為Git可以管理的倉(cāng)庫(kù)
$ git init
note:不要修改生成的.git
目錄中的文件
添加文件到Git倉(cāng)庫(kù)
- 把文件添加到倉(cāng)庫(kù)
note:添加的文件一定要在Git倉(cāng)庫(kù)目錄下(子目錄也可以)
$ git add readme.txt
- 可以多次添加文件
$ git add file1.txt
$ git add file2.txt file3.txt
- 把文件提交到倉(cāng)庫(kù)
$ git commit -m "wrote a readme file"
*note:參數(shù)-m
后面輸入的是本次提交的說(shuō)明,最好要有意義 *
隨時(shí)掌握工作區(qū)狀態(tài)git status
命令
主要有以下三種狀態(tài):
- 添加了文件后沒(méi)有提交朴上,后續(xù)修改了提交的文件
此時(shí)可以用git diff
命令查詢上次提交文件與現(xiàn)在文件的不同
note:此時(shí)如果需要保存修改后的版本需要重新使用git add
命令添加到 Git 倉(cāng)庫(kù)垒棋,否則直接使用git commit
命令只會(huì)提交未修改的文件到 Git 倉(cāng)庫(kù) - 添加了文件沒(méi)有提交,也沒(méi)有后續(xù)的修改痪宰,等待提交
此時(shí)可以放心的使用git commit
命令提交到Git倉(cāng)庫(kù)然后下班了 - 沒(méi)有需要提交的修改叼架,工作目錄是干凈的畔裕。
版本回退
快照commit
思想:好比玩RPG游戲時(shí),每通過(guò)一關(guān)就自動(dòng)存盤乖订,如果沒(méi)過(guò)去扮饶,可以從前一關(guān)開(kāi)始,不用從第一關(guān)開(kāi)始乍构。另一些時(shí)候甜无,在打BOSS之前會(huì)手動(dòng)存盤,萬(wàn)一打BOSS失敗了哥遮,可以重新直接打BOSS。Git就是這個(gè)思想眠饮。所以當(dāng)文件改到一定程度的時(shí)候奥帘,一定要保存一個(gè)快照。
- 查看Git倉(cāng)庫(kù)提交
commit
歷史
$ git log
note:顯示由近及遠(yuǎn)的3次的提交歷史詳細(xì)信息
要顯示精簡(jiǎn)信息仪召,則使用
$ git log --pretty=oneline
輸出顯示一大串commit id
和自己添加的文字備注 - 回退到歷史上某個(gè)版本
*note:HEAD
表示當(dāng)前版本,上一個(gè)版本HEAD^
,上n個(gè)版本HEAD~n
*
返回上一個(gè)版本使用命令
$ git reset --hard HEAD^
返回特定的版本使用命令
$ git reset --hard commit id
note:commit id
沒(méi)必要寫全扔茅,前幾位就可以已旧,但也不能只寫前一兩位 - 找不到
commit id
時(shí)的解決辦法
$ git reflog
note:此命令來(lái)記錄你的每一次命令