使用github要先學(xué)會(huì)git沃琅。 git無(wú)需安裝,有cmder/gitbash即可斟览,comder內(nèi)置了gitbash轴猎。查看版本號(hào) git --version
git與gitbash的關(guān)系,傻傻分不清纱注?
git 就是一個(gè)命令而已畏浆,bash就是包含命令的黑框框(iterm2)。這個(gè)黑框框(bash命令行)可以運(yùn)行很多命令其中就包括git狞贱,我們?cè)趃itbash里面運(yùn)行g(shù)it刻获。gitbash相當(dāng)于Mac的iterm2!
一. 配置
所有軟件都是要先配置的瞎嬉,git的配置如下:
終端iterm2運(yùn)行這6行代碼:(出錯(cuò)可以重新再運(yùn)行蝎毡,運(yùn)行完這6行才能開(kāi)始用git)
git config --global user.name 你的英文名
git config --global user.email 你的郵箱 //最常用的郵箱
git config --global push.default simple
git config --global core.quotepath false
git config --global core.editor "code --wait" //code是vscode的縮寫(xiě)
git config --global core.autocrlf input
備注:英文名/郵箱跟GitHub無(wú)關(guān),可以跟GitHub的用戶名和郵箱保持一致。
測(cè)試查看是否配置成功:
git config —-global —-list
二.git init & git add & git commit
其它:
1.git解決了什么問(wèn)題,為什么要git氧枣?
版本控制,git可以讓你的代碼有版本可以隨時(shí)退到某個(gè)版本沐兵。
2.用vscode打開(kāi)當(dāng)前目錄 code .
3. 打印當(dāng)前目錄,不包括.開(kāi)頭的* ls*
4. 查看當(dāng)前目錄結(jié)構(gòu)包含.git ls -a
-
git init
//初始化便监,創(chuàng)建.git目錄放置代碼快照(版本) - 快照實(shí)現(xiàn)存儲(chǔ)版本怎么做扎谎?
git add
git add + 路徑
解析:選擇要提交的文件碳想,路徑可以是 .和* /絕對(duì)路徑/相對(duì)路徑 -
.gitignore 處理不需要提交的文件
例子:git add會(huì)把當(dāng)前所有文件打包,但有的文件不想提交怎么辦毁靶?
答:如上圖所示胧奔,新建.gitignore 文件,添加不想提交的文件预吆,這樣打包時(shí)就不會(huì)把不需要的文件提交了龙填。
4.git add后查看當(dāng)前文件提交的狀態(tài) git status
5.git commit提交的2種方式:
git commit -m “字符串(版本號(hào))”
注釋:提交并說(shuō)明理由,注意字符串里如果有空格就要用引號(hào)包起來(lái),沒(méi)有空格引號(hào)可省略
git commit -v
更正式拐叉,關(guān)閉窗口自動(dòng)保存岩遗,如下圖所示:
6.查看當(dāng)前所有已提交的版本 git log
7.多次提交只需要重復(fù)git add .
和 git commit -v
三.如何實(shí)現(xiàn)多版本切換?
git reset —-hard xxxxxx
//版本號(hào)前6位
注意:該操作會(huì)使沒(méi)有commit過(guò)的變動(dòng)消失凤瘦,確保要先commit 宿礁!
步驟:
1.查看當(dāng)前所有版本 git log
2.選擇要查看的版本號(hào)的前6位并復(fù)制(前4位也行但不能重復(fù))
例子:git reset --hard d9711a
//選擇查看版本1
3.返回 git reflog
現(xiàn)在git log后也只能查看剛剛復(fù)制的這個(gè)版本了,那別的版本怎么找呢蔬芥?
git reflog
解析:不僅要看當(dāng)前的歷史窘拯,還要看御劍飛行的記錄
4.飛完了,我現(xiàn)在想回去走訪怎么辦坝茎?
復(fù)制想要回訪的版本號(hào)的前6位,esc q鍵出去暇番,
然后git reset --hard ac8c36b回到版本2
5.來(lái)回切換
git reflog
+復(fù)制版本號(hào)+esc q鍵出去+git reset --hard xxxxxx
結(jié)束嗤放!
總結(jié):
1.git add
選擇提交內(nèi)容
2..gitignore 文件描述不提交的內(nèi)容
3.git commit -v
用來(lái)提交
4.git log
用來(lái)查看歷史
5.git reset --hard xxxxxx
用來(lái)切換版本
6.git reflog
用來(lái)查看所有歷史
四.如何同時(shí)兩條線開(kāi)發(fā)?
git branch x
可以創(chuàng)造平行時(shí)間線x
,術(shù)語(yǔ)叫分支
過(guò)程如下
1.回到版本1創(chuàng)建分支x
代碼:
git log
git reset --hard xxxxxx //切換版本 退出esc q
git branch x
2.開(kāi)始老板的需求并提交
git add index.html
git commit -m v1
3.回到老板娘分支
git checkout x //注意此時(shí)會(huì)回到最初的設(shè)計(jì)頁(yè)面
開(kāi)始老板娘的需求并提交
git add index.html
git commit -m v2
4.再次切回老板的需求
git checkout master
完成老板的需求后再次提交
git add .
git commit -m v11
7.再切到老板娘需求
git checkout x
繼續(xù)設(shè)計(jì)并提交
git add .
git commit -m v22
history //可查看歷史操作
結(jié)束壁酬!
總結(jié):
1.老板分支為master
次酌,老板娘分支為x
2.git branch
基于當(dāng)前commit 創(chuàng)建一個(gè)新的時(shí)間線(分支)
git branch x
//創(chuàng)建分支x
3.git checkout
//用于切換分支x/master
如何查看當(dāng)前所在分支?
代碼:git branch
// *表示當(dāng)前所在的分支
如上圖所示舆乔,當(dāng)前所在分支為x
合并分支
2個(gè)分支如何合并岳服?用git merge將另一個(gè)分支合并到當(dāng)前分支
git checked master //保留主分支
git merge x
五.關(guān)于沖突 CONFLICT
當(dāng)前目錄有未提交的代碼,只要跟另一個(gè)分支不沖突就無(wú)須理會(huì)希俩。
如果沖突了呢吊宋?及時(shí)commit或使git stash合并沖突
發(fā)現(xiàn)沖突
在合并分支的時(shí)候會(huì)得到conflict提示,使用git status -sb查看哪個(gè)/哪些文件沖突了
git status 或者 git status -sb
解決沖突
解決沖突后
git add .
git status //查看是否還有沖突颜武,有g(shù)it status -sb 沒(méi)有就git commit
git commit //自動(dòng)填充理由璃搜,關(guān)掉小窗口
git log //檢測(cè)當(dāng)前所有版本是否合并成功
合并完后刪除無(wú)用的分支
git branch //查看分支
git branch -d x
git branch //再查看分支,此時(shí)只有一個(gè)master了
結(jié)束鳞上!
總結(jié)
1.分支可以合并
進(jìn)入要保留的分支这吻,運(yùn)行g(shù)it merge x, 合并完后刪除無(wú)用的分支git branch -d x
2.本地倉(cāng)庫(kù)就是 git init 創(chuàng)建的那個(gè) .git 目錄
3.git branch x
的作用是什么?
會(huì)基于本地倉(cāng)庫(kù)里最新一次 commit(提交)篙议,創(chuàng)建一個(gè)新的分支 x
4.git checkout x
的作用是什么唾糯?
會(huì)讓當(dāng)前目錄的內(nèi)容變成本地倉(cāng)庫(kù)里 x 分支的最新內(nèi)容(可能會(huì)刪除當(dāng)前目錄里的一些文件)
六.總結(jié)
今天學(xué)到的命令