Git是分布式版本控制系統(tǒng),即管理中心可分布,版本庫不局限于一臺(tái)中央服務(wù)器,每個(gè)參與者電腦都是完整的版本庫
設(shè)置版本庫
Windows系統(tǒng)為了避免遇到莫名其妙的問題,目錄名(包括父目錄)需不包含中文
git init
沒有看到.git目錄,那是因?yàn)檫@個(gè)目錄默認(rèn)是隱藏的,用ls -ah命令就可以看見
Git賬戶:
Git安裝完成后,設(shè)置賬戶
git config --global user.name "Your name"
git config --global user.email "email@example.com"
--global參數(shù)表示該機(jī)器上所有倉庫的操作都經(jīng)由這個(gè)賬戶
對(duì)某個(gè)倉庫指定賬戶
git config user.name "github Name"
git config user.email "[github@xx.com](mailto:gitlab@xx.com)"
git config --list
git config --list查看當(dāng)前配置, 在當(dāng)前項(xiàng)目下面查看的配置是全局配置+當(dāng)前項(xiàng)目的配置, 使用的時(shí)候會(huì)優(yōu)先使用當(dāng)前項(xiàng)目的配置
生成ssh key:
ssh-keygen -t rsa -C 'mail@gmail.com'
生成key值時(shí),輸入文件名,可生成多個(gè)key值,鏈接多個(gè)賬戶
工作區(qū)和版本庫
image
本地資源管理器相當(dāng)于工作區(qū),.git文件夾即版本庫,當(dāng)中又區(qū)分暫存區(qū)和分支線
add每次只能操作一個(gè)文件,commit一次可提交多個(gè)文件
git diff:未add前,查看文件的修改項(xiàng)
git add:將文件添加到暫存區(qū)中
git commit -m "xxxx":提交暫存區(qū)中的文件到倉庫,-m為提交注釋
git status:查看倉庫當(dāng)前狀態(tài)
git push:將本地項(xiàng)目提交到遠(yuǎn)程倉庫GitHub。
查看提交記錄
git log:查看提交記錄
git log --pretty=oneline:逐行顯示提交記錄
撤銷工作區(qū)修改
git checkout -- file.xx:file指文件名
版本更替
git reset --hard HEAD^:回退至上一個(gè)版本,^代表一個(gè)版本
git reset --hard commit_id:版本穿梭,ID不必寫全,可匹配就行,5位...
git reset HEAD file.xx:撤銷暫存區(qū)修改
刪除文件
rm filename:刪除文件&&刪除不可commit提交--- git commit -am "XXX"
git rm filename:刪除文件,對(duì)象只能是文件&&刪除操作可commit提交
git rm -r/rf filename:-r 刪除指定目錄下所有文件和子目錄;-f 強(qiáng)制刪除文件或目錄
查看提交日志
git log
git log --pretty=online
git diff HEAD -- filename.xx:查看對(duì)應(yīng)文件工作區(qū)和版本庫中最新版本區(qū)別(只能查看文件)
遠(yuǎn)程倉庫
git remote add origin git@github.com:michaelliao/learngit.git:將本地倉庫和遠(yuǎn)程關(guān)聯(lián)
git clone xxx:拉取遠(yuǎn)程倉庫至本地
git push origin master:推送修改至遠(yuǎn)程
添加驗(yàn)證私鑰
ssh -v [git@github.com](mailto:git@github.com)
eval $(ssh-agent): 提示 "Could not open a connection to your authentication agent."
ssh-add ~/.ssh/<private_key_file>:添加私鑰