日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Git之常用命令的综合使用和示例分析

發布時間:2024/5/28 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Git之常用命令的综合使用和示例分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、前言

  • 一般來說,Git 日常使用只要記住如下 6 個命令就可以,但是熟練使用,卻需要記住 60~100 個命令:

  • 上面的命令說明如下:
編號專用名詞對應解釋相關命令
1Workspace工作區add
2Index/Stage暫存區commit
3Repository本地倉庫push、checkout
4Remote遠程倉庫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 branch# 創建分支 git branch <name># 切換分支 git checkout <name># 創建并切換分支 git checkout -b <name># 合并某分支到當前分支 git merge <name># 刪除分支 git branch -d <name># 強行刪除分支 git branch -D <name> # Git查看分支 $ git branch # 列出所有本地分支 $ git branch -r # 列出所有遠程分支 $ git branch -a # 列出所有本地分支和遠程分支# Git分支切換 $ git branch [branch-name] # 新建一個分支但停留在當前分支 $ git checkout -b [branch] # 新建一個分支并切換到該分支 $ git checkout [branch-name] # 切換到指定分支并更新工作區 $ git checkout - # 切換到上一個分支 $ git branch -d [branch-name] # 刪除分支# Git分支刪除 $ git push origin --delete [branch-name] # 刪除遠程分支 $ git branch -dr [remote/branch] # 刪除遠程分支# 建立追蹤關系,在現有分支與指定的遠程分支之間 $ git branch --set-upstream [branch] [remote-branch]

五、Git 沖突處理

  • 合并時顯示分支沖突先 merge 后修改 <<<<分支1、<<<分支2 之間的沖突內容,然后再提交,當前分支會比被合并的分支,多一次 commit 的提交記錄:
# 合并指定分支到當前分支 # 禁用Fast forward功能,不刪除分支且合并后保留分支 git merge --no-ff [branch]# 選擇一個commit并合并進當前分支 $ git cherry-pick [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 stash# 查看儲藏區 git stash list# 恢復指定內容到工作區,不在stash內刪除 # 其中的stashid可以通過git stash list查詢 git stash apply <stashid># 刪除儲藏區 git stash drop <stashid># 恢復stash的內容到工作區,并在stash內刪除 git stash pop

八、Git 標簽管理

  • 標簽基本都是發布版本的時候使用的,所以平常很少使用,了解即可:
# 新建標簽,默認為在HEAD上,也可以指定一個commit id號 git tag <name># 指定標簽信息 git tag -a <tagname> -m "blablablabla"# 使用PGP簽名標簽 git tag -s <tagname> -m "blablablabla"# 查看所有標簽 git tag# 查看指定tag的詳細內容 git show <tagname># 刪除tag標簽 git tag -d <tagname># 推送指定標簽到遠程 git push origin <tagname># 推送所有標簽到遠程 git push origin --tags# 從遠程刪除標簽 git push origin :refs/tags/<tagname>

九、Git 配置管理

  • 主要配置日常使用工具和提交記錄相關的配置,需要注意的是,區分全局和本地配置:
# 列出配置項 $ git config --list $ git config --global --list# 獲取配置項 $ git config user.name "escape" $ git config --global user.name "escape" $ git config user.email "escapelife@gmail.com" $ git config --global user.email "escapelife@gmail.com"# 添加配置項 $ git config -–add site.name yiibai $ git config --global -–add site.name yiibai# 刪除配置項 $ git config -–unset site.name $ git config --global -–unset site.name# 獲取幫助 $ git help <verb> $ git help config # 配置全局默認編輯器 $ git config --global core.editor vim $ git config --global core.editor emacs# 配置比較工具 $ git config --global merge.tool vimdiff# 全局代理配置 $ git config --global https.proxy http://127.0.0.1:1080 $ git config --global https.proxy https://127.0.0.1:1080# 全局取消代理配置 $ git config --global --unset http.proxy $ git config --global --unset https.proxy

十、Git 其他操作

# 生成發布壓縮包 $ git archive

十一、快捷鍵總結

總結

以上是生活随笔為你收集整理的Git之常用命令的综合使用和示例分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。