Git之常用命令的综合使用和示例分析
生活随笔
收集整理的這篇文章主要介紹了
Git之常用命令的综合使用和示例分析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、前言
- 一般來說,Git 日常使用只要記住如下 6 個命令就可以,但是熟練使用,卻需要記住 60~100 個命令:
- 上面的命令說明如下:
| 1 | Workspace | 工作區 | add |
| 2 | Index/Stage | 暫存區 | commit |
| 3 | Repository | 本地倉庫 | push、checkout |
| 4 | Remote | 遠程倉庫 | fetch、clone、pull |
二、Git 增刪改查
$ cd learngit $ git init # 初始化Git倉庫 ** create readme.txt ** echo "line 1 ">> readme.txt$ git add readme.txt # 添加到暫存空間 $ git commit -m "first commit" # 提交加備注信息 ** echo "error line 2" >> readme.txt$ git add readme.txt $ git status # 查看狀態 ** have a change.$ git reset HEAD readme.txt # 將暫存空間內容撤銷 $ git checkout readme.txt # 撤銷工作空間內容 ** echo "line2" >> readme.txt $ git add readme.txt $ git commit -m "commit line 2 "$ git reset --hard HEAD^ # 回退為上個版本(刪除修改) $ git reset --hard (gitID) # 回退為指定版本(刪除修改) $ git reset --soft (gitID) # 回退為指定版本(不刪除回退文件的修改) $ git log # 查看當前版本及之前版本的id號 # Git倉庫創建 $ git init # 將當前目錄設為Git代碼庫 $ git init [project-name] # 新建并將其設為Git代碼庫 $ git clone [url] # 通過連接下載一個已有項目# Git增加文件 $ git add [file1] [file2] # 添加指定文件到暫存區 $ git add [dir] # 添加指定目錄到暫存區 $ git add . # 添加當前所有文件到暫存區 $ git add -p # 添加每個變化前都要求確認# Git刪除文件 $ git rm [file1] [file2] # 刪除工作區文件并且將這次刪除放入暫存區 $ git rm --cached [file] # 停止追蹤指定文件但該文件會保留在工作區 $ git mv [file-original] [file-renamed]# Git代碼提交 $ git commit -m [message] # 提交暫存區到倉庫區 $ git commit -a # 提交工作區自上次commit之后的變化直接到倉庫區 $ git commit -v # 提交時顯示所有diff信息 $ git commit --amend -m [message] # 使用一次新的commit替代上一次提交 $ git commit --amend [file1] [file2] # 重做上一次commit并包括指定文件的新變化# Git撤銷操作 $ git checkout . # 恢復暫存區的所有文件到工作區 $ git checkout [file] # 恢復暫存區的指定文件到工作區 $ git checkout [commit] [file] # 恢復某個commit的指定文件到暫存區和工作區# Git重置操作 $ git reset [file] # 重置暫存區的指定文件;與上一次commit保持一致但工作區不變 $ git reset --hard # 重置暫存區與工作區文件;與上一次commit保持一致;謹慎使用 $ git reset [commit] # 重置當前分支的指針為指定commit;同時重置暫存區但工作區不變 $ git reset --hard [commit] # 重置當前分支的HEAD為指定commit,同時重置暫存區和工作區 $ git reset --keep [commit] # 重置當前HEAD為指定commit,但保持暫存區和工作區不變# 新建一個commit,用來撤銷指定commit # 后者的所有變化都將被前者抵消并且應用到當前分支 $ git revert [commit]三、Git 遠程倉庫
# 注冊github.com并創建本機的ssh-key $ ssh-keygen -t rsa -C "123456789@qq.com"# 添加ssh-key到秘鑰管理里面并關聯遠程倉庫 $ git remote add origin git@github.com:xxx/learngit.git# 如果遠程倉庫已經存在內容需要先pull下面,之后再提交 $ git pull origin master# 將本地庫push到遠程倉庫,第一次需要加u關聯,之后可以不加 $ git push -u origin master# 倉庫克隆 $ git clone git@github.com:xxx/gitkills.git # Git遠程分支推送 $ git fetch [remote] # 下載遠程倉庫的所有變動 $ git pull [remote] [branch] # 取回遠程倉庫的變化,并與本地分支合并 $ git push [remote] [branch] # 上傳本地指定分支到遠程倉庫 $ git push [remote] --force # 強行推送當前分支到遠程倉庫,即使有沖突 $ git push [remote] --all # 推送所有分支到遠程倉庫# Git遠程同分支查看 $ git remote -v # 顯示所有遠程倉庫 $ git remote show [remote] # 顯示某個遠程倉庫的信息 $ git remote add [shortname] [url] # 增加一個新的遠程倉庫并命名四、Git 分支管理
- 在工作區未提交的內容,所有分支都可以看到,提交之后的內容在對應的分支內,切換只能在對應的分支內看到:
五、Git 沖突處理
- 合并時顯示分支沖突先 merge 后修改 <<<<分支1、<<<分支2 之間的沖突內容,然后再提交,當前分支會比被合并的分支,多一次 commit 的提交記錄:
六、Git 比對日志
# 查看分支情況 git log --graph --pretty=oneline --abbrev-commit git log --graph --decorate --pretty=oneline --abbrev-commit --all git log --pretty=fsormat:'%s %C(bold blue)(%an)%Creset' --abbrev-commit git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit # Git日志格式$ git log # 顯示當前分支的版本歷史 $ git log --stat # 顯示commit歷史及每次commit變更的文件 $ git log -5 --pretty --oneline # 顯示過去5次提交 $ git reflog # 顯示當前分支的最近幾次提交 $ git shortlog -sn # 顯示所有提交過的用戶,按提交次數排序# 顯示某個commit之后的所有變動,每個commit占據一行 $ git log [tag] HEAD --pretty=format:%s# 顯示某個commit之后的所有變動,其"提交說明"必須符合搜索條件 $ git log [tag] HEAD --grep feature# 顯示某個文件的版本歷史,包括文件改名 $ git log --follow [file] $ git whatchanged [file]# Git高級查詢 $ git blame [file] # 顯示指定文件是什么人在什么時間修改過 $ git log -p [file] # 顯示指定文件相關的每一次diff $ git log -S [keyword] # 根據關鍵詞搜索提交歷史 $ git diff --shortstat "@{0 day ago}" # 顯示今天你寫了多少行代碼# Git 差異對比 $ git diff # 顯示暫存區和工作區的差異 $ git diff --cached [file] # 顯示暫存區和上一個commit的差異 $ git diff HEAD # 顯示工作區與當前分支最新commit之間的差異 $ git diff [first-branch]...[second-branch] # 顯示兩次提交之間的差異# Git顯示內容 $ git show [commit] # 顯示某次提交的元數據和內容變化 $ git show --name-only [commit] # 顯示某次提交發生變化的文件 $ git show [commit]:[filename] # 顯示某次提交時某個文件的內容七、Git 內容存儲
- 正在 dev 分支工作時,需要修改 bug 并提交,應該先把 dev 當前工作區 stash 儲藏起來,修改完 bug 提交后在使用 git stash pop 恢復 dev 的內容到工作區:
八、Git 標簽管理
- 標簽基本都是發布版本的時候使用的,所以平常很少使用,了解即可:
九、Git 配置管理
- 主要配置日常使用工具和提交記錄相關的配置,需要注意的是,區分全局和本地配置:
十、Git 其他操作
# 生成發布壓縮包 $ git archive十一、快捷鍵總結
總結
以上是生活随笔為你收集整理的Git之常用命令的综合使用和示例分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Git之签署工具GPG的安装和使用
- 下一篇: Git之常用的高效处理技巧