簡(jiǎn)單理解基礎(chǔ)概念
工作區(qū):你的工作目錄
暫存區(qū):git add 之后
本地版本庫:git commit 之后
遠(yuǎn)程版本庫:git push 之后
常見命令
git init 初始化一個(gè)git倉庫,也就是在你的工作目錄下創(chuàng)建一個(gè).git文件夾
git remote add 別名 倉庫地址 添加一個(gè)遠(yuǎn)程倉庫地址
git remote rm 刪除一個(gè)倉庫
git remote -v 列出倉庫列表
git fetch 獲取遠(yuǎn)端分支
git branch -r 查看全部分支,包括遠(yuǎn)端分支
git pull
git push
git push -f 強(qiáng)推,不建議使用,生產(chǎn)環(huán)境建議ban掉此操作
git log
git diff 可以diff兩個(gè)commit之間的差異
git show
git stash 貯藏,還原一個(gè)干凈的工作區(qū)
git stash pop 彈出第一個(gè)貯藏
git checkout branchName 切換分支
git checkout commitId 切換到某個(gè)節(jié)點(diǎn),這時(shí)將處于指針分離狀態(tài)
git checkout fileName || . 拋棄工作區(qū)的修改,已經(jīng)提交到暫存區(qū)的不會(huì)改變
git reset --hard 重置到head指針指向,會(huì)拋棄工作區(qū)和暫存區(qū)所有的修改
git reset commitId 重置到某個(gè)節(jié)點(diǎn)
git revert 神器啊?。。』貪L全靠它,這里有一個(gè)小小的建議,每次提交只干一件事,類似于設(shè)計(jì)模式中的單一原則,相信我,回滾的時(shí)候,你會(huì)感謝自己為何如此機(jī)智
git bisect 二分查找,良好的提交習(xí)慣就用不到它
git patch 打補(bǔ)丁
git apply 應(yīng)用補(bǔ)丁
開啟顏色輸出

命令簡(jiǎn)化

設(shè)置保護(hù)分支
應(yīng)用場(chǎng)景:某個(gè)分支只有master才能push,這時(shí)你就可以把master分支設(shè)置成保護(hù)分支,別人只能通過merge request向你發(fā)起請(qǐng)求,經(jīng)你code review 后合并到主線分支,流程很規(guī)范,也最容易把控,減少線上出問題的風(fēng)險(xiǎn)