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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

git 常用命令以及其他使用笔记

發布時間:2025/3/21 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 git 常用命令以及其他使用笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇文章記錄了 git 的使用過程中的筆記,大部分為常用命令行記錄。內容傾向查閱使用,而非教程,詳細教程文中有鏈接。博客會不定時持續更新。

推薦詳細教程

  • Git 官方資料
  • Git 官方資料(中文)
  • Git教程 - 廖雪峰的官方網站

名詞解釋與目錄結構

1. .git 目錄

/stage 或 /index:暫存區,具體見名稱解釋 /HEAD:版本指針 /config:配置文件

2. 名詞解釋

  • 工作區(Working Directory):就是你在電腦里能看到的目錄,不解釋
  • 版本庫(Repository):就是 .git 目錄
  • 暫存區:命令 git add . 就是將修改內容放置到暫存區,而命令 git commit 則是將暫存區的內容提交到當前分支
  • 初始配置

    效果:在"~"目錄下會生成隱藏文件: .gitconfig

    # 配置用戶 git config --global user.name "Your Name" git config --global user.email "email@example.com" # 查看用戶 git config --global user.name git config --global user.email 復制代碼

    倉庫創建

    # 建立本地倉庫 git init # 建立遠程倉庫(服務器使用命令) git --bare init # 從遠端克隆倉庫(只會克隆默認分支,一般是 master) git clone https://github.com/ReactiveX/RxJava.git RxJava/ 復制代碼

    遠程庫與本地交互操作

    關聯遠程庫

    # 本地與遠程庫關聯 git remote add origin https://github.com/hanhailong/CustomRatingBar # 顯示出詳細的 remote 信息 git remote -v # 刪除添加的遠程庫 git remote remove origin 復制代碼

    遠程分支管理

    # 從遠程庫更新到本地(不自動 merge) git fetchgit fetch origin master # 從遠程庫更新到本地(自動 merge) git pullgit pull origin master # 將本地分支推送到遠程庫(影響遠程庫,并自動關聯本地分支與遠程分支) # git push -u 遠程庫名稱 本地分支名稱:遠程庫分支名稱 git push -u origin master:master # 將本地分支推送到遠程庫(影響遠程庫,不關聯本地分支與遠程分支) git push origin master:mastergit push origin master # 將本地當前分支推送到遠程庫(影響遠程庫,當前分支與遠程分支已關聯才可使用) git push # 查看遠程庫的分支信息 git branch -r # 拉取遠程分支并創建本地分支 # git checkout -b 本地分支名稱 遠程庫名稱/遠程庫分支名稱 git checkout -b dev origin/dev # 刪除遠程分支 git push origin --delete dev # 更新遠程分支列表 git remote update origin --prune 復制代碼

    遠程標簽管理

    # 拉取遠程標簽到本地標簽(指定) git fetch origin tag v1.1.0 # 將本地標簽推送到遠程庫(指定) git push origin v1.1.0 # 將本地標簽推送到遠程庫(所有) git push origin --tags # 刪除遠程庫標簽(指定) git push origin :v1.1.0 # 其實不論是推送到遠程,還是從遠程庫刪除,命令均轉換成以下語句,刪除是源標簽為空 git push origin refs/tags/源標簽:refs/tags/目的標簽git push origin refs/tags/v1.1.0:refs/tags/v1.1.0 復制代碼

    備注:

  • origin:遠程庫名稱
  • master, deve, dev:是遠程/本地分支名稱,自定義
  • 1.1.0:本地標簽名稱,自定義
  • 影響遠程庫的操作:

  • git push 系列命令
  • 本地倉庫操作

    1. 查看幫助

    # 查看幫助 git help 復制代碼

    2. 添加、刪除、提交

    # 添加(內容更新到暫存區) git add .git add readme.txt # 刪除(內容更新到暫存區,同時刪除工作區文件) git rm readme.txt # 提交 git commit -m "Wrote a readme file" 復制代碼

    3. 對比

    狀態對比

    # 查看狀態:當前代碼庫與最新版本的簡單對比 git statusgit status readme.txt 復制代碼

    內容對比

    # 工作區與暫存區對比 git diff -- readme.txt ## 有時可以省略 --,但不推薦,具體見下面的說明 # 工作區與版本區對比 git diff HEAD readme.txtgit diff HEAD -- readme.txt # 暫存區與版本區對比 git diff --staged readme.txtgit diff --cached readme.txt # 工作區與指定分支的版本區對比 git diff deve readme.txt # git diff 1094a readme.txt 復制代碼

    說明:

  • 綠色表示文件被 git add,紅色表示文件沒有被 git add
  • git diff -- readme.txt:其中 -- 作用是防止命令變成分支對比,如果不存在該分支,則可以省略 --,但不推薦
  • deve:是分支名稱,自定義
  • 1094a:是版本號,就是 commit id
  • 4. 日志

    # 查看項目 log git log # 查看某文件 log git log -- readme.txtgit log readme.txt # 只查看 10 個 log git log -10 # 一行顯示 log,只顯示哈希值和提交說明 git log --pretty=onelinegit log --oneline # 查看圖形 Log git log --oneline --graph --abbrev-commitgit log --pretty=format:"%C(auto)%h %ad | %C(auto)%s%d %C(bold blue)<%an>" --date=short --graph --abbrev-commit # 查看某文件每次提交的 Diff git log -p readme.txt # 查看某文件指定提交的 Diff git show 1094a readme.txt # 1094a 是版本號,就是 commit id 復制代碼

    說明:

  • 日志中 "HEAD —>" 當前版本指針,指向當前版本,以下簡稱 HEAD 指針
  • 5. 版本管理

    版本庫管理(可能會影響到工作區)

    # 版本回滾(當前版本變為指定版本,同時暫存區被清空,不影響工作區) git reset HEAD^ # 版本穿梭(當前版本變為指定版本,同時暫存區被清空,工作區的所有 modified 文件被 Revert 到指定版本) git reset --hard HEAD^git reset --hard 1094a # 1094a 是版本號,就是 commit id # 查看版本管理命令歷史,可用于獲取所有的版本號 git reflog 復制代碼

    說明:

  • HEAD: 表示當前版本,HEAD^:表示上一個版本,HEAD^^:表示上上一個版本,HEAD~100:表示上上上...(100個上)個版本
  • 版本號寫前幾位即可
  • 版本穿梭后 git log 就只顯示到指定版本,即不含指定版本之后的 log 信息
  • 版本 Revert(不影響版本庫)

    # Revert 到暫存區(工作區與暫存區相同) git checkout .git checkout -- readme.txt ## 有時可以省略 --,但不推薦,具體見下面的說明 # Revert 到指定版本庫(工作區與指定版本庫相同,同時暫存區被清空) git checkout HEAD^ .git checkout HEAD^ readme.txtgit checkout HEAD^ -- readme.txt ## 可以省略 -- 復制代碼

    說明:

  • git checkout -- readme.txt:其中 -- 作用是防止命令變成分支切換,如果不存在該分支,則可以省略 --,但不推薦
  • 誤刪回滾:無論是 git rm,還是直接刪除導致的誤刪,均可通過上述方式回滾
  • 6. 分支管理

    # 查看分支 git branch # 查看當前分支 git symbolic-ref --short -q HEAD # 創建分支(不切換分支) git branch deve # 切換分支 git checkout deve # 創建 + 切換分支 git checkout -b deve # 刪除分支 git branch -d deve # 合并指定分支到當前分支(Fast forward 模式,不保留分支信息) git merge deve # 合并指定分支到當前分支(推薦,禁用 Fast forward 模式,保留分支信息) git merge --no-ff -m "add merge" deve # 關聯分支與遠程分支 git branch --set-upstream-to origin/deve deve 復制代碼

    備注說明:

  • deve:是分支名稱,自定義
  • git branch:當前分支前面會標一個 * 號
  • 切換分支:如暫存區不為空(即執行過 git add),則需 git commit 或者 git reset 才能切換分支
  • 7. stash 模式

    # 當前工作現場存儲起來,用于臨時切換分支 git stash # 查看已存儲的所有的工作現場信息 git stash list # 查看工作現場文件狀態信息 git stash showgit stash show --index 1 # 工作現場恢復(不刪除工作現場) git stash apply # 不推薦,具體原因見下面說明git stash apply --index 1 # 刪除工作現場(不推薦,具體原因見下面說明) git stash drop # 不推薦,具體原因見下面說明git stash drop --index 1 # 工作現場恢復(自動刪除工作現場) git stash pop # 不推薦,具體原因見下面說明git stash pop --index 1 復制代碼

    備注說明:

  • --index 1:1 表示索引號,可通過 git stash list 查看
  • git stash apply:不推薦,因為如果存在多個工作現場,則容易出現工作現場存在沖突的問題。推薦追加參數 --index
  • git stash pop:不推薦,原因同上,不過一旦沖突,工作現場并不會自動刪除。推薦追加參數 --index
  • git stash drop:不推薦,容易造成誤刪除,因為該命令刪除的是索引號為 0 的工作現場(并不管該工作現場是哪個分支的)。推薦追加參數 --index
  • 8. Tag 管理

    • Git 官方資料
    • Git 官方資料(中文)
    # 列顯已有的標簽(按字母順序排列) git tag # 列顯已有的標簽(檢索模式) git tag -l 'v1.1.*' # 新建標簽(輕量級標簽:指向特定提交對象的引用) git tag v1.1.0 # 新建標簽(含附注的標簽:獨立對象,有自身的校驗和信息) git tag -a v1.1.0 -m 'my version 1.1.0' # 新建標簽(簽署標簽:含附注的標簽的一種) git tag -s v1.1.0 -m 'my signed 1.1.0 tag' # 后期向某次提交加注標簽 git tag -a v1.2 9fceb02 # 刪除標簽 git tag -d v1.1.0 # 驗證標簽 git tag -v v1.1.0 # 切換標簽(切換到一個名為'(HEAD detached at v1.1.0)'的空白分支上) git checkout v1.1.0 復制代碼

    備注說明:

  • v1.1.*、v1.1.0:標簽名稱,自定義
  • 9fceb02:某次 commit 信息,自定義
  • 譯注:

    • -a:取 annotated 的首字母
    • -s:取 signed 的首字母
    • -v:取 verify 的首字母

    git 全局配置

    # 設置[pretty] git config --global pretty.graph '%C(auto)%h %ad | %C(auto)%s%d %C(bold blue)<%an>' # 設置別名:[alias] git config --global alias.logg 'log --pretty=graph --date=short --graph --abbrev-commit' 復制代碼

    添加 Git 忽略配置

    由目錄下的[.gitignore]文件確定,使用規則如下:

    通配符:

    • / :表示目錄
    • * :匹配多個字符
    • ? :匹配單個字符
    • ! :包含單個字符的匹配列表
    • [] :表示不忽略(跟蹤)匹配到的文件或目錄

    詳細說明:

    • 一行一個忽略項
    • 配置按從上到下進行規則匹配的,意味著如果前面的規則匹配的范圍更大,則后面的規則將不會生效
    • 規則【build/*】: 等同于【build】,忽略根目錄或某一目錄下的[build],以及其下的全部內容
    • 規則【/.idea/*】: 等同于【/idea】,忽略根目錄下的[.idea],以及其下的全部內容
    • 以下規則,表示忽略全部內容,但是不忽略[.gitignore]文件

    /*

    !.gitignore

    總結

    以上是生活随笔為你收集整理的git 常用命令以及其他使用笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

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