[toc]
Git
常用命令:
列表顯示所有配置
git config --list
設(shè)置用戶名
git config --global user.name "username"
設(shè)置郵箱
git config --global user.email "myeamil@xxx.com"
創(chuàng)建本地倉庫:
方法1:在本地創(chuàng)建本地倉庫
新建本地倉庫(創(chuàng)建工作區(qū)):git init
方法2:把遠(yuǎn)程倉庫clone到本地衙吩,會(huì)自動(dòng)在本地創(chuàng)建本地倉庫
git clone url
關(guān)聯(lián)遠(yuǎn)程倉庫
//origin代表遠(yuǎn)程倉庫在本地的標(biāo)識(shí)
git remote add origin https:/xxx.xxx.git
將本地倉庫代碼推送到遠(yuǎn)程
//推送到指定遠(yuǎn)程url的master分支上
push push origin master
查看分支
git branch
將遠(yuǎn)端的代碼以及相關(guān)分支信息clone到本地
將遠(yuǎn)端的代碼以及相關(guān)分支信息clone到本地
查看當(dāng)前工作區(qū)中文件狀態(tài)
git status
修改全局配置
git config --global user.name "yourName"
git config --global user.email "yourEmail"
在github創(chuàng)建遠(yuǎn)程倉庫
....
git 分區(qū)
工作區(qū)
即.git所在的文件夾钻注。
創(chuàng)建方式:
git init
暫存區(qū)/索引區(qū)/緩存
通過 git add命令即可將代碼從工作區(qū)放到暫存區(qū)
//將當(dāng)前目錄所有文件添加到暫存區(qū)(自動(dòng)忽略.gitignore配置的文件)
git add *
版本區(qū)
從暫存區(qū)提交到版本區(qū)
git commit -m "msgs ..."
//-m 要添加的代碼注釋說明
忽略文件
在倉庫文件根目錄下創(chuàng)建.gitignore文件律想,在其中配置要忽略的文件在岂。
==注意==在window上創(chuàng)建該文件可能出錯(cuò),因?yàn)閣indows對(duì)文件名開頭帶點(diǎn)的命名限制問題赢笨,此時(shí)可以在命令行或IDE中創(chuàng)建:
//git命令創(chuàng)建gitignore文件
touch .gitignore
gitignore內(nèi)容如下:
//.gitignore
.idea //匹配任何目錄下的.idea文件
/.idea //匹配根目錄下的.idea文件
/node_modules //匹配根目錄下的node_modules文件夾
分支
查看分支
git branch
根據(jù)當(dāng)前分支代碼創(chuàng)建新分支
//新分支名字dev
git branch dev
切換分支
//切換到dev分支(即把本地倉庫區(qū)中的dev分支代碼檢出到工作區(qū))
git checkout dev
拉取與拉檢出并切換分支:
//拉取遠(yuǎn)程dev分支到本地(直接更新工作區(qū)內(nèi)容)
get pull origin dev
//將本地倉庫中的origin指向的dev分支檢出并切換到新創(chuàng)建的dev-crb分支上(前提dev-crb分支不存在)
git checkout -b dev-crb origin/dev
比較兩個(gè)分支 git diff
語法:git diff 分支1最新版本(或當(dāng)前分支版本號(hào)) 分支2最新版本(或當(dāng)前分支版本號(hào))
如 master跟dev比較
git diff dev master
輸出信息中
+表示分支2相比較分支1增加的部分
-表示分支2比分支1缺少的部分
比較差異未蝌,輸出統(tǒng)計(jì)信息
git diff dev master --stat
合并分支
git merge xxx
將xxx分支合并到當(dāng)前分支上
沖突解決
fetch
pull拉取時(shí)會(huì)自動(dòng)合并
fetch拉取遠(yuǎn)程到本地指定分支,后續(xù)需要手動(dòng)合并
git fetch origin dev dev:tmp
git merge tmp
時(shí)光穿梭
git log
顯示當(dāng)前版本前的所有提交日志
git reflog
顯示所有操作日志驮吱,包含merge、checkout树埠、commit等操作的日志糠馆。
回到指定版本
git reset --hard 提交編號(hào)
回到最新的提交點(diǎn),需要先用命令 git reflog查看最新提交節(jié)點(diǎn)的提交id怎憋,然后再執(zhí)行以下命令:
git reset --hard 最新的提交版本id
回到上一個(gè)版本
git reset --hard HEAD^
里程碑 (TAG--標(biāo)簽)
記錄(標(biāo)記)某一個(gè)或某幾個(gè)重要的版本又碌,會(huì)對(duì)這個(gè)版本做一個(gè)Tag來標(biāo)識(shí),如 v1.0.0绊袋、v1.0.1,
常用操作:
//給當(dāng)前版本打TAG
git tag v0.3
//給先前某個(gè)提交id打上TAG
git tag v0.2 提交id
//查看所有TAG(里程碑)
git tag
//推送指定TAG(v0.3)到遠(yuǎn)程
git push origin v0.3
//檢出指定tag的代碼
git checkout <tagname>
由于我們打tag時(shí)是對(duì)應(yīng)一個(gè)分支的某次提交id的毕匀,所以tag跟commint id是綁定的,一般的癌别,我們只會(huì)在master分支上的某些提交節(jié)點(diǎn)打入tag皂岔,標(biāo)記某些功能添加或bug修復(fù)后的重要節(jié)點(diǎn), 其他分支可以直接根據(jù)tag名來檢出指定的節(jié)點(diǎn)代碼展姐。
==常見問題==:
如果在拉取dev分支時(shí)提示錯(cuò)誤躁垛,很有可能是本地有代碼修改,但沒有提交到本地倉庫圾笨,此時(shí)可以先提交本地倉庫再拉取教馆。
如果在推送dev分支到遠(yuǎn)程dev時(shí)失敗,則可能出現(xiàn)了沖突擂达,修改有沖突的代碼土铺,修改完畢后按正常程序推送到遠(yuǎn)程即可。推送完畢后板鬓,需要在遠(yuǎn)程或本地的master分支中合并dev分支推送的代碼悲敷。
git生成公私鑰命令:
//打開git bash,在控制臺(tái)中輸入以下命令
ssh-keygen -t rsa -C "youremail@example.com"
//默認(rèn)會(huì)在C:\Users\YourName\.ssh文件夾中生成公私鑰