學(xué)完就忘的典型: git, 寫個(gè)文檔記錄一下
一些常用但不想背的東西寫在前面
git config --global init.defaultBranch main #全局設(shè)置默認(rèn)主分支名為main
git branch -m main #重命名當(dāng)前主分支名為main
#好看的短命令 git lg
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
0x00 Quick Start
很簡單, 熟記以下命令, 你就上手git了.
(細(xì)節(jié)可參考官方GitBook (1.3, 1.5, 1.6, 第二章和第三章) https://git-scm.com/book/zh/v2
git init #初始化一個(gè)倉庫
git branch -m main #重命名主分支為main
git status #當(dāng)前工作區(qū)的狀態(tài)(是否有未提交的文件
git add . #添加所有文件進(jìn)暫存區(qū)
git commit -m "some description about this commit" #提交一個(gè)commit
git log #查看HEAD之前的提交信息
git log --oneline #簡潔的log
git reflog #查看所有對HEAD狀態(tài)有改變的操作記錄
git push #推上遠(yuǎn)程倉庫
git reset --hard 03522d7 #回退到指定版本
git reset --hard HEAD^ #回退到HEAD前一個(gè)版本
git reset --hard HEAD~1 #同上, 回退到HEAD前一個(gè)版本
git reset --hard HEAD~100 #回退到HEAD前面100個(gè)版本
0x01 工作區(qū), 暫存區(qū) 和 本地倉庫
初學(xué)git的時(shí)候就只顧著趕緊用上, 這塊的知識(shí)一直比較模糊, 一知半解. 現(xiàn)在正好系統(tǒng)整理一遍.
在理解這三個(gè)分區(qū)之前, 我們首先應(yīng)該知道他對應(yīng)的git命令階段, 上面的圖很好地展示了這些對應(yīng)關(guān)系.
工作區(qū)
很簡單, 直接面向用戶的區(qū)域, 也就是直接寫代碼的地方. 在執(zhí)行g(shù)it add后, 文件就被放進(jìn)了暫存區(qū).
暫存區(qū)
暫存區(qū)是一個(gè)抽象的概念, 它不是一個(gè)存著工作區(qū)文件備份的具體的目錄, 它只是一個(gè)索引(index), 記錄還未被提交的文件信息. add之后commit之前的文件就認(rèn)為是屬于暫存區(qū)的.
本地倉庫
commit之后, 文件的信息就會(huì)附帶上commit時(shí)候填寫的備注信息和提交人信息等, 從暫存區(qū)轉(zhuǎn)移到本地倉庫(git數(shù)據(jù)庫).
遠(yuǎn)程倉庫
這個(gè)很好理解, git push就會(huì)將本地倉庫的新信息同步到遠(yuǎn)端的服務(wù)器, 遠(yuǎn)端的服務(wù)器維護(hù)一份最新的本地庫副本, 供給團(tuán)隊(duì)里的每一個(gè)人同步開發(fā)進(jìn)度, 共同進(jìn)行開發(fā).