git三劍客學(xué)習(xí)筆記

一、最小配置

git config --local 針對某個(gè)倉庫
git config --global 針對當(dāng)前用戶所有倉庫(常用)
git config --system 對系統(tǒng)所有用戶的倉庫都有效

1.1、配置

git config --global user.name "lanxiaobin"
git config --global user.email "lanxiaobin"

1.2、顯示config配置 加 --list

git config --list --global

二、創(chuàng)建倉庫并配置local用戶信息

2.1 創(chuàng)建git倉庫

git init gitproject/

2.2 配置local信息

git config user.name "localUserName" --local

三、工作區(qū)和暫存區(qū)和commit

3.1 從工作區(qū)添加到暫存區(qū)

echo "readme" > readme.txt
git add readme.txt

3.2 暫存區(qū)文件在工作區(qū)發(fā)生修改,提交到暫存區(qū)

git add -u 所有發(fā)生改動(dòng)的暫存區(qū)文件都add

3.3 提交到倉庫

git commit -m'add file1.txt'

四、重命名

git mv readme.txt readme.md

五、gitlog

5.1只查看第一行l(wèi)og信息

git log --oneline

5.2 --all查看所有分支的提交歷史

git log --oneline --all

5.3 查看指定數(shù)目的歷史 -n4

git log --all -n4 --graph

5.4 可視化

gitk

六、git的tree、blob

6.1 查看文件

find project/ type -f

6.2 查看文件類型

git cat-file -t b8626c4cff

6.3 查看文件內(nèi)容

git cat-file -p b8626c4cff

七、分支

7.1新建分支

git branch dev

7.2 切換分支

git checkout dev

7.3 新建分支并切換到分支

git checkout -b dev2

7.4 刪除分支

git branch -d dev3

八、commit

8.1 修改最近一次commit信息

git commit -m'首次提交'
git commit --amend

8.2 對歷史commit修改

git rebase -i 要修改的commit的上一個(gè)commit
reword -- 修改提交的message

8.3 合并連續(xù)的多個(gè)commit為一個(gè)

git rebase -i 要合并的commit的上一個(gè)commit
squash -- 合并幾個(gè)commit為一個(gè)

8.4 合并不連續(xù)的多個(gè)commit為一個(gè)

...

九、比較

9.1 比較工作區(qū)和暫存區(qū)文件的差異

git diff fileName
git diff

9.2 比較暫存區(qū)和HEAD文件的差異

git diff --cached

9.3 比較不同提交的文件差異

git diff master dev --file3.txt
git diff commit_id1 commit_id2 -- file3.txt

十、恢復(fù)

10.1 暫存區(qū)恢復(fù)跟HEAD一樣

所有文件恢復(fù)

git reset HEAD

or

git reset HEAD^

部分文件恢復(fù)

git reset HEAD file3.txt

10.2 工作區(qū)恢復(fù)跟暫存區(qū)一樣

git checkout file3.txt

10.3 清除最近的commit

git log 查看最近提交的commit_id
git reset commit_id

10.4 刪除文件

git rm file3

10.5 文件臨時(shí)保存

git stash
git stash save "message"

查看臨時(shí)文件列表

git stash list

恢復(fù)臨時(shí)文件

git stash apply

恢復(fù)并丟掉臨時(shí)文件

git stash pop

11、git 備份

啞協(xié)議 (bare:不在工作區(qū)的裸倉庫)

git clone --bare /Users/lanshifu/Documents/極客時(shí)間-課程/git三劍客/gitproject ya.git

智能協(xié)議

git clone --bare file:///Users/lanshifu/Documents/極客時(shí)間-課程/git三劍客/gitproject zhineng.git

跟遠(yuǎn)端關(guān)聯(lián)

git remote add zhineng file:///Users/lanshifu/Documents/極客時(shí)間-課程/git三劍客/backup/gitproject zhineng.git


待續(xù)...

12.git pull 每次都要輸入密碼

到git項(xiàng)目根目錄

git config --global credential.helper store

git pull 輸入一次密碼,以后就會(huì)記住了

13.git ssh key 配置

cd ~/.ssh
ls

已經(jīng)配置過

如果沒有配置過

ssh-keygen -t rsa -C "郵箱"

一路回車,然后

cat ~/.ssh/id_rsa.pub

查看ssh key

復(fù)制去github、gitlab等網(wǎng)站

git 淺克隆

$ mkdir models # 創(chuàng)建一個(gè)與要clone的倉庫同名或不同命的目錄
$ cd models
$ git init #初始化
$ git remote add origin  https://github.com/tensorflow/models.git # 增加遠(yuǎn)端的倉庫地址
$ git config core.sparsecheckout true # 設(shè)置Sparse Checkout 為true 
$ echo "research/deeplab" >> .git/info/sparse-checkout # 將要部分clone的目錄相對根目錄的路徑寫入配置文件
$ git pull origin master #pull下來代碼

如果只想保留最新的文件而不要?dú)v史版本的文件,上例最后一行可以用git pull --dpeth 1命令,即“淺克隆”:

$ git pull --depth 1 origin master 

git 淺克?。?)推薦

直接在clone后面加上 -- depth 1,表示只clone 最后一個(gè)commit

git clone --depth 1 https://github.com/Meituan-Dianping/walle.git

參考:
https://zhuanlan.zhihu.com/p/57390306

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

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

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