創(chuàng)建版本庫(kù),添加,提交
// 初始化
git init
// 把文件修改添加到暫存區(qū)
git add .
// 把暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支
git commit -m 'something'
只有add到暫存區(qū)才能加入到commit
工作區(qū) ---add---> 暫存區(qū) ---commit---> 當(dāng)前分支
Git的版本
// 查看狀態(tài)
git status
// 查看修改內(nèi)容
git diff
回退/未來
// 查看提交歷史
git log
// 查看當(dāng)前版本
git reset --hard HEAD
// 回退到上一個(gè)版本
git reset --hard HEAD^
// 返回到最新的版本(從過去到未來)
git reset --hard 'commit id'
// 通過命令日志來回到未來
git reflog
git reset --hard 'commit id'
工作區(qū)
即你初始化時(shí)的文件夾
版本庫(kù)
工作區(qū)的隱藏目錄.git
撤銷修改
第一種:修改后還沒有被放到暫存區(qū),現(xiàn)在,撤銷修改就回到和版本庫(kù)一模一樣的狀態(tài)
第二種:已經(jīng)添加到暫存區(qū)后,又作了修改,現(xiàn)在,撤銷修改就回到添加到暫存區(qū)后的狀態(tài)
// 丟棄工作區(qū)的修改
git checkout -- .
已經(jīng)添加到暫存區(qū)
// 撤銷暫存區(qū)修改
git reset HEAD 'file'
// 再丟棄工作區(qū)的修改
git checkout -- .
刪除
// 確認(rèn)從版本庫(kù)刪除
git rm 'file'
git commit -m 'delete'
// 撤銷刪除
git checkout -- 'file'
git checkout其實(shí)就是用版本庫(kù)的版本替換工作區(qū)的版本
添加遠(yuǎn)程庫(kù)
// 關(guān)聯(lián)
git remote add origin git@github.com:name/learngit.git
// 第一次推送
git push -u origin master
加上了-u參數(shù),Git不但會(huì)把本地的master分支內(nèi)容推送的遠(yuǎn)程新的master分支,還會(huì)把本地的master分支和遠(yuǎn)程的master分支關(guān)聯(lián)起來,在以后的推送或者拉取時(shí)就可以簡(jiǎn)化命令
克隆
git clone git@github.com:name/learngit.git
分支
// 創(chuàng)建分支,-b參數(shù)表示創(chuàng)建并切換
git checkout -b dev
// 相當(dāng)于
// 創(chuàng)建分支
git branch dev
// 切換分支
git checkout dev
// 查看當(dāng)前分支
git branch
// 合并
git merge dev
// 刪除分支
git branch -d dev
// 將未合并過的分支強(qiáng)制刪除
git branch -D <name>
沖突
先解決沖突,在提交
// 查看合并情況
git log --graph --pretty=oneline --abbrev-commit
stash
// 存儲(chǔ)工作現(xiàn)場(chǎng)
git stash
// 回到工作現(xiàn)場(chǎng)
git stash pop
標(biāo)簽
默認(rèn)標(biāo)簽是打在最新提交的commit上的
// 打標(biāo)簽
git tag v1.0
// 查看所有標(biāo)簽
git tag
// 為指定commit打標(biāo)簽
git tag v1.1 'commit id'
// 刪除標(biāo)簽
git tag -d v0.1
// 推送標(biāo)簽
git push origin v1.0