新建一個Git倉庫
- $git init :初始化一個倉庫
添加文件到倉庫中:
- $git add <file> : 可以反復(fù)多次使用,添加多個文件
- $git commit -m <message> : 全部提交給倉庫
查看當(dāng)前的狀態(tài):
- $git status : 查看當(dāng)前倉庫的狀態(tài),包括已經(jīng)修改了的還未提交到倉庫中的
跟工作區(qū)和版本庫都會有對比!
- $git diff : 查看當(dāng)前做了哪些修改(指的是在本地修改的和暫存區(qū)的不同之處)
版本回退(是從commit記錄中回退):
- $git log : 查看修改歷史記錄(commit日志)
英文狀態(tài)下按 Q 退出查看
- $git log --pretty=oneline : 可以配合VSCode來查看Git history
- $git reset --hard HEAD^ :回退到上一個版本
- $git reset --hard id號 :回退到指定版本
- $git reflog :查看所有的commit記錄及其id號
工作區(qū)和暫存區(qū)
工作區(qū)就是電腦中能看到的目錄,比如Git文件夾
版本庫

$git add 是將文件提交到暫存區(qū)
$git commit 是將暫存區(qū)中方的所有內(nèi)容提交到當(dāng)前分支
創(chuàng)建Git版本庫時,Git自動創(chuàng)建了一個master分支,所以git commit 都是提交到master分支上
每次commit都是把緩存區(qū)中的所有內(nèi)容提交到倉庫中
撤銷修改
$git checkout -- readme.txt 把文件在工作區(qū)的修改全部撤銷。
讓文件回到最近一次git commit或是git add時的狀態(tài)$git reset HEAD <file> 可以把暫存區(qū)的修改撤銷掉,重新放回工作區(qū)
暫存區(qū)回到最近一次提交,工作區(qū)還是已經(jīng)修改過的,$git diff 可以查出區(qū)別
也就是說暫存區(qū)是干凈的,工作區(qū)有修改
- 然后接著第二步, $git checkout -- <file> 就可以撤銷工作區(qū)的修改
至此,整個世界都安靜了!
這時候,$git diff 和 $git status 都看不到修改了!
- 就算把不該提交的東西commit到了版本庫中,也是可以回退的,前提是沒有提交到遠(yuǎn)程倉庫中!

刪除文件
- $git checkout -- <file> 在工作區(qū)中刪除了文件,但是是誤刪,可以通過前邊的命令進(jìn)行恢復(fù)
其實就是撤銷修改
- $rm <file> 在工作區(qū)刪除一個文件
可以用 $git status 和 $git diff 查看到當(dāng)前的刪除記錄
- $git rm <file> 從版本庫中刪除文件
接著$git commit -m <說明> 就行了
git查看用戶信息
- $git config user.name 查看用戶名
- $git config user.email 查看郵箱
- $git config --global user.name 'CYX' 修改用戶名
- $git config --global user.email "2344343332@qq.com" 修改郵箱
連接遠(yuǎn)程倉庫(Github、code.aliyun等)
- 本地倉庫與遠(yuǎn)程倉庫之間的傳輸是通過SSH加密的
因為Github需要識別出你推送的提交確實是你推送的,而不是別人冒充的
- git remote add origin git@github.com:XiaohuiSu/test.git
將本地倉庫與遠(yuǎn)程倉庫進(jìn)行關(guān)聯(lián)
- 接下來就可以用VScode進(jìn)行了
- 暫存所有更改 : 將工作區(qū)的更改add到緩存區(qū) 等同于 $git add xxx
- 放棄所有更改 : 恢復(fù)工作區(qū)或是緩存區(qū)
- 可以用VScode中的命令終端進(jìn)行回退
從遠(yuǎn)程倉庫clone
- 在github上新建一個repository
- $git clone git@github.com:XiaohuiSu/xxx.git
clone到當(dāng)前目錄下,文件夾名與倉庫名相同
分支
- $git branch dev 創(chuàng)建一個分支
- $git checkout dev 切換到創(chuàng)建的分支
- $git branch 查看當(dāng)前的分支
- $git merge dev 將dev分支的工作成果合并到master
- $git branch -d dev 刪除分支
沖突
master與分支發(fā)生沖突,修改了同一個文件的同一個位置,必須手動修改沖突,然后add并且commit
可以用VSCode進(jìn)行比對
多人協(xié)作
$git remote -v 顯示連接的遠(yuǎn)程庫 (如果沒有推送權(quán)限,就看不到Push地址)
$git push origin dev 推送分支,若遠(yuǎn)程倉庫中沒有該分支,則會新建一個

注明:本文是作者從廖雪峰Git教程吸收消化所得,詳細(xì)可見廖雪峰Git教程