BY 張建成(prettyEcho@github)
除非另行注明灸芳,頁面上所有內(nèi)容采用知識(shí)共享-署名(CC BY 2.5 AU)協(xié)議共享
<p style="color: rgb(253,201,11);" align="center">???? 歡迎評(píng)論和star ????</p>
git命令行
-
git clone
- 用于將遠(yuǎn)端倉庫拷貝到本地
- ssh: git clone username@host:/path/to/repository
- https: git clone https:/path/to/repository.git
-
git config
- 這個(gè)命令定義了所有配置,從用戶信息到倉庫行為等等
- git config --global --edit : 編輯器打開配置文件
- git config --global user.name : 配置提交的用戶名
- git config --global user.email : 配置提交的郵箱
-
git add
- 將本地工作區(qū)(Working dir)改變提交到緩存區(qū)(Index)
- git add <file> : 提交確定文件
- git add * : 提交所有更改
- git add -A : 提交tracted和untracted中的文件提交到緩存區(qū)
- git add -u : 提交tracted中的文件提交到緩存區(qū)
- git add -p : 交互式提交
-
git commit
- 將緩存的快照提交到項(xiàng)目歷史
- git commit -m "<message>" : 提交已經(jīng)緩存的快照星掰。它會(huì)運(yùn)行文本編輯器叫倍,等待你輸入提交信息幕庐。當(dāng)你輸入信息之后解愤,保存文件冈绊,關(guān)閉編輯器侠鳄,創(chuàng)建實(shí)際的提交。
-
git status
- 列出已緩存死宣、未緩存伟恶、未追蹤的文件(緩存區(qū)和工作區(qū)文件狀態(tài))
- Changes to be committed: 文件在緩存區(qū)
- Changes not staged for commit: 在工作區(qū)已經(jīng)追蹤的文件
- Untracked files: 在工作區(qū)未追蹤的文件
-
git pull
- 拉取并合并遠(yuǎn)端項(xiàng)目(默認(rèn)拉取marter項(xiàng)目)
-
git push
- 推送本地git到遠(yuǎn)端
- git push
- git push origin <branch>: 推送本地git到遠(yuǎn)端某個(gè)分支
- git push --set-upstream origin <branch>: 創(chuàng)建遠(yuǎn)端分支并推送代碼
-
git log git
- 命令顯示已提交的快照
-
git checkout
這個(gè)命令有三個(gè)不同的作用:檢出文件、檢出提交和檢出分支
-
提交層面
- 移動(dòng)HEAD指針到固定的提交
- git checkout HEAD~2
- git checkout <commit>
-
文件層面
- 用提交版本中的文件覆蓋本地工作區(qū)的文件
- git checkout HEAD~2 test.txt
- git checkout HEAD <file> (常用)
<p style="text-align: center">
<img src="https://user-gold-cdn.xitu.io/2018/4/3/16289af9f0f6849d?w=800&h=426&f=png&s=35338" alt="checkout-file" style="width: 40%">
</p>
-
分支層面
- 切換分支
- git checkout <branch>
-
git reset
修改提交版本毅该,會(huì)刪除提交歷史(一定要謹(jǐn)慎)博秫,切記當(dāng)把提交推送到遠(yuǎn)端后潦牛,禁止使用git reset
-
提交層面
- git reset --soft HEAD~2
- git reset --soft <commit>
<p style="text-align: center">
<img src="https://user-gold-cdn.xitu.io/2018/4/3/16289af9f10c5b5e?w=800&h=1190&f=png&s=50577" alt="reset" style="width: 40%">
</p>
除了在當(dāng)前分支上操作,你還可以通過傳入這些標(biāo)記來修改你的緩存區(qū)或工作目錄:
* --soft – 緩存區(qū)和工作目錄都不會(huì)被改變
* --mixed – 默認(rèn)選項(xiàng)挡育。緩存區(qū)和你指定的提交同步巴碗,但工作目錄不受影響
* --hard – 緩存區(qū)和工作目錄都同步到你指定的提交
<p style="text-align: center">
<img src="https://user-gold-cdn.xitu.io/2018/4/3/16289af9f0edc02b?w=800&h=550&f=png&s=30152" alt="reset-scope" style="width: 40%">
</p>
常用操作:
* git reset --mixed HEAD / git reset HEAD
* git reset --hard HEAD
* 文件層面
+ 用提交版本中的文件覆蓋緩存區(qū)的文件
+ git reset HEAD~2 text.txt
+ git reset HEAD <file>
<p style="text-align: center">
<img src="https://user-gold-cdn.xitu.io/2018/4/3/16289af9f108ea6e?w=800&h=422&f=png&s=33574" alt="reset-file" style="width: 40%">
</p>
-
git revert
- Revert撤銷一個(gè)提交的同時(shí)會(huì)創(chuàng)建一個(gè)新的提交。這是一個(gè)安全的方法即寒,因?yàn)樗粫?huì)重寫提交歷史橡淆。
- git revert HEAD~2
- 會(huì)找出倒數(shù)第二個(gè)提交,然后創(chuàng)建一個(gè)新的提交來撤銷這些更改母赵,然后把這個(gè)提交加入項(xiàng)目中逸爵。
<p style="text-align: center">
<img src="https://user-gold-cdn.xitu.io/2018/4/3/16289afa197868fe?w=800&h=1217&f=png&s=58696" alt="revert" style="width: 40%">
</p> -
git stash
- git stash : 暫存當(dāng)前正在進(jìn)行的工作
- git stash pop : 恢復(fù)暫存的文件
- git stash list: 顯示暫存棧中所有暫存的歷史
- git stash apply stash@{1} : 將指定暫存紀(jì)錄恢復(fù)
- git stash clear : 清空暫存棧
-
git branch
- 創(chuàng)建、列出凹嘲、重命名和刪除分支
- git branch : 列出所有分支
- git branch <branch> : 創(chuàng)建一個(gè)名為<branch>的分支
- git branch -d <branch> : 刪除指定分支师倔。這是一個(gè)安全的操作,Git 會(huì)阻止你刪除包含未合并更改的分支施绎。
- git branch -D <branch> : 強(qiáng)制刪除指定分支溯革,即使包含未合并更改。如果你希望永遠(yuǎn)刪除某條開發(fā)線的所有提交谷醉,你應(yīng)該用這個(gè)命令致稀。
- git branch -m <branch> : 將當(dāng)前分支命名為 <branch>。
簡(jiǎn)記圖
<p style="text-align: center">
<img src="https://user-gold-cdn.xitu.io/2018/4/3/16289afa3e049455?w=838&h=492&f=jpeg&s=102730" alt="main" style="width: 30%">
</p>