Git常用命令詳細總結,更適合中國寶寶體質

文章目錄

  • 代碼倉庫
    • 創建倉庫
      • 1.進入需要創建代碼庫的文件夾
      • 2.創建/切始化倉庫
      • 3.關聯遠程倉庫
      • 拉取遠程倉庫到本地
    • 添加文件到倉庫
      • 1.查看工作區狀態
      • 2.添加文件到暫存區
      • 3.提交到本地倉庫
      • 4.對比工作區文件變化
    • 倉庫配置
      • 1.配置全局用戶名和郵箱
      • 2.配當前倉庫用戶名和郵箱
      • 3.查看Git全局配置
  • 代碼版本/提交切換
    • 查看過去版本/提交
      • 1.提交的詳情
      • 2.提交的簡介
    • 回退版本/提交
      • 1.回退到當前最新提交
      • 2.回退到上次提交
      • 3.回退到上n次提交
      • 4.回退到某次提交
    • 重返未來版本
      • 1.查看歷史提交以及被回退的提交
      • 2.回到未來版本
    • 撤銷修改
      • 1.工作區文件撤銷
      • 2.暫存區文件撤銷
      • 3.提交到了版本庫
    • 刪除文件
      • 1.從版本庫刪文件
      • 2.恢復刪除
      • 3.從版本庫中刪除文件,但是本地不刪除該文件
    • 暫存修改
    • 忽略文件
  • 分支
    • 創建與合并分支
      • 1.創建分支
      • 2.切換分支
      • 3.合并分支
      • 4.刪除分支
        • 刪除本地分支
        • 刪除遠程分支
      • 5.查看分支
      • 6.合并分支,解決分支沖突
      • 7.開發完需要提交PR/MR
    • 暫存修改
      • 1.暫存工作現場
      • 2.恢復工作現場
        • 恢復
        • 刪除
        • 恢復+刪除
    • 多人協作
      • 1.查看遠程庫信息
      • 2.更新/推送遠程庫
        • 更新遠程庫信息
        • 將遠程庫最新修改更新到本地
        • 將本地修改推送到遠程倉庫
      • 3.本地分支與遠程分支交互
        • 使用遠程分支A創建本地分支
  • 代碼版本tag
    • 1.查看tag
      • 本地tag
      • 遠程tag
    • 2.操作tag
      • 添加tag
        • 給當前版本加tag
        • 給歷史版本加tag
      • 刪除tag
        • 刪除本地標簽
        • 刪除遠程標簽
      • 推送tag到遠程倉庫
      • 更新到本地
  • 其他生僻命令
    • 查看代碼歷史記錄
    • 查找引入 bug 的提交
    • 復制提交到當前分支
    • 查看命令

代碼倉庫

創建倉庫

1.進入需要創建代碼庫的文件夾

cd 文件路徑

2.創建/切始化倉庫

git init

3.關聯遠程倉庫

git remote add origin 遠程倉庫URL

拉取遠程倉庫到本地

或者直接克隆遠程的倉庫,更簡單方便。

git clone <遠程倉庫URL>

添加文件到倉庫

1.查看工作區狀態

git status

2.添加文件到暫存區

添加單個文件:

git add 文件名

添加所有文件:

git add .

會忽略的文件:.gitignore中指定的文件會被忽路、空目錄

3.提交到本地倉庫

git commit#我的電腦是Windows,此時進入了一個文本編輯器(vim)
#使用CTRL+C,輸入i,進入插入模式
#使用CTRL+C,輸入:wq,保存退出

也可以使用git commit -m "commit message",建議提交遵循commit message規范。

使用git commit -m "commit message"的方式提交代碼雖然快捷,但是有一些潛在的問題:

  1. 提交信息可能過于簡單:使用-m參數,你可能會傾向于寫一些簡短的提交信息,這可能會導致提交信息缺乏必要的詳細內容,使得其他開發者難以理解這次提交的目的和內容。
  2. 無法處理復雜的提交信息:如果你的提交信息需要多行,或者需要更復雜的格式(比如列表、引用等),那么-m參數就無法滿足需求了。
  3. 可能會忽略未跟蹤的文件git commit -m只會提交已經被添加到暫存區的文件,如果有新的文件被修改但是還沒有被添加到暫存區,那么這些文件就不會被提交。

4.對比工作區文件變化

git diff 

建議將beyond compare配置為diff工具,用于diff以及merge沖突

倉庫配置

1.配置全局用戶名和郵箱

git config --global user.name "name"
git config --global user.email "email address"

若是個人開發機可以這樣配置,若是公共編譯機則不能這樣配置。

2.配當前倉庫用戶名和郵箱

git config user.name "name"
git config user.email "email address"

3.查看Git全局配置

git config --global -l

代碼版本/提交切換

注意:這里的版本均為本地倉庫版本。

查看過去版本/提交

1.提交的詳情

git log 

2.提交的簡介

git log --pretty=oneline

回退版本/提交

1.回退到當前最新提交

git reset --hard HEAD

2.回退到上次提交

git reset --hard HEAD^

3.回退到上n次提交

git reset --hard HEAD~n

4.回退到某次提交

git reset --hard commit_id
# 可通過git log獲取id

重返未來版本

1.查看歷史提交以及被回退的提交

git reflog

注意:該記錄有時限,且只在本地

2.回到未來版本

git reset --hard commit_id

撤銷修改

1.工作區文件撤銷

如果文件沒有被提交到暫存區(即沒有執行 git add 命令),你可以使用 git checkout 文件名 來撤銷對該文件的修改。

git checkout 文件名

2.暫存區文件撤銷

如果你想將暫存區的文件撤銷到工作區,你可以使用 git reset HEAD 文件名 命令。這個命令不帶 --hard 參數,所以它只會將暫存區的文件撤銷到工作區,而不會影響工作區的文件。

git reset HEAD 文件名

如果你想撤銷暫存區的文件,你可以使用 git checkout 文件名 命令。這將會撤銷你對該文件的所有修改。

git checkout 文件名

3.提交到了版本庫

參見回退版本/提交

刪除文件

1.從版本庫刪文件

git rm 文件名

修改后需要提交

2.恢復刪除

參考撤銷修改

3.從版本庫中刪除文件,但是本地不刪除該文件

git rm --cached 文件名

暫存修改

參照分支-暫存修改

忽略文件

通過git倉庫下的.gitignore文件屏蔽某些中間文件/生成文件

分支

創建與合并分支

1.創建分支

僅創建:

git branch 分支名

創建并切換:

git checkout -b 分支名

在本地倉庫操作,創建的都是本地分支。

2.切換分支

git checkout 分支名

3.合并分支

合并某分支到當前分支:

git merge <要合并的分支>

禁用 Fast-forward 模式:

git merge --no-ff

變基:

用于重新應用一系列提交到另一個分支上。

git rebase <要提取提交的分支>

4.刪除分支

刪除本地分支

刪除未合并分支:

git branch -D 分支名

刪除已合并分支:

git branch -d 分支名
刪除遠程分支
git push origin -d 分支名

也可以在界面操作。

5.查看分支

查看當前分支:

git branch

查看所有分支消息:

git branch -a

例如:

* masterremotes/origin/master

6.合并分支,解決分支沖突

  1. 將要合并的分支更新到最新

  2. 切換到主分支

  3. 合并分支

  4. 解決合并時的conflict

  5. 提交到版本庫

  6. 合并成功

  7. 查看分支狀態

    git log --graph
    git log --graph --pretty=oneline --abbrev-commit
    

7.開發完需要提交PR/MR

通過PR/MR來合并開發分支與主分支。

暫存修改

1.暫存工作現場

git stash

2.恢復工作現場

恢復
git stash apply
刪除
git stash drop
恢復+刪除
git stash pop

多人協作

1.查看遠程庫信息

#詳細
git remote -v#不詳細
git remote

2.更新/推送遠程庫

更新遠程庫信息
git fetch
將遠程庫最新修改更新到本地
git pull#或
git fetch + git merge
將本地修改推送到遠程倉庫
git pushgit push origin 分支名

3.本地分支與遠程分支交互

使用遠程分支A創建本地分支
git checkout -b A origin/A 
#origin是遠程倉庫名,若名字一樣origin/A可以省略

將本地分支與遠程分支作關聯

git branch --set-upstream-to=origin/remote_branch  your_branch#或
git checkout your_branch
git branch -u origin/remote_branch

代碼版本tag

1.查看tag

本地tag

git tag -l

遠程tag

git ls-remote --tags origin

2.操作tag

添加tag

給當前版本加tag
git tag -a 標簽名 -m "這是備注信息"
給歷史版本加tag
git tag -a 標簽名 commit_id -m "這是備注信息"

刪除tag

刪除本地標簽
git tag -d <tag_name>
刪除遠程標簽
git push origin :refs/tags/<tag_name>

推送tag到遠程倉庫

git push origin <tag_name>#推送所有未提交的tag
git push origin --tags

更新到本地

git pull origin --tags

其他生僻命令

查看代碼歷史記錄

git blame <file_name>

查找引入 bug 的提交

這個命令可以通過自動搜索的方式來查找引入 bug 的提交。利用二分查找法,自動檢查每個提交是否引入了 bug。

git bisect start
git bisect bad      # 當前版本是有bug的
git bisect good v1.0 # v1.0 版本沒有 bug
git bisect reset

復制提交到當前分支

將指定的提交應用到當前分支。常用于將其他分支的提交復制到當前分支。

git cherry-pick <commit-id>

查看命令

#常用命令
git help#所有命令
git help -a

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/167470.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/167470.shtml
英文地址,請注明出處:http://en.pswp.cn/news/167470.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Selenium中常用的JS操作總結

? 目錄 前言&#xff1a; JS相關操作 JS Xpath定位 獲取單個元素 獲取元素集合 文本輸入 獲取坐標 獲取瀏覽器窗口的內部高度 獲取瀏覽器窗口的內部寬度&#xff1b; 坐標計算 設置樣式 設置窗口大小 類數組對象arguments JQuery選擇器 jQuery 選擇器 jQuery …

多模態——使用stable-video-diffusion將圖片生成視頻

多模態——使用stable-video-diffusion將圖片生成視頻 0. 內容簡介1. 運行環境2. 模型下載3. 代碼梳理3.1 修改yaml文件中的svd路徑3.2 修改DeepFloyDataFiltering的vit路徑3.3 修改open_clip的clip路徑3.4 代碼總體結構 4. 資源消耗5. 效果預覽 0. 內容簡介 近期&#xff0c;…

Linux上安裝Redis

案例中Linux版本為CentOS7.9&#xff0c;安裝目錄為 /root/software/ 1、使用 wget 命令從官網下載安裝包 wget https://github.com/redis/redis/archive/7.2.3.tar.gz2、解壓縮 tar -xzf 7.2.3.tar.gz3、進入解壓后的目錄 cd redis-7.2.34、 編譯和安裝Redis make make i…

npm中,你不了解的.npmrc文件

原文鏈接&#xff1a;npm中&#xff0c;你不了解的.npmrc文件 寫在前面 對于寫JS的程序員來說&#xff0c;可能沒有人不知道npm&#xff0c;但是有些同學對他的配置文件(即.npmrc文件)并不了解。結合我的學習心得&#xff0c;寫一篇博客跟大家分享一些該配置文件的知識。 .np…

理解CLIP模型

1.簡介 學習深度學習必看CLIP&#xff01;論文鏈接arxiv.org/pdf/2103.00020v1.pdf。 簡單來說就是傳統的分類任務被用來預測指定的類別&#xff0c;有監督訓練限制了模型的通用性和可用性&#xff0c;并且需要帶有標簽的數據來訓練&#xff0c;該篇論文就想直接從原始文本中…

Navicat 技術指引 | 適用于 GaussDB 的用戶權限設置

Navicat Premium&#xff08;16.2.8 Windows版或以上&#xff09; 已支持對 GaussDB 主備版的管理和開發功能。它不僅具備輕松、便捷的可視化數據查看和編輯功能&#xff0c;還提供強大的高階功能&#xff08;如模型、結構同步、協同合作、數據遷移等&#xff09;&#xff0c;這…

Spring 七大組件

文章目錄 Spring 七大組件 Spring 七大組件 核心容器(Spring core) 核心容器提供Spring框架的基本功能。Spring以bean的方式組織和管理Java應用中的各個組件及其關系。Spring使用BeanFactory來產生和管理Bean&#xff0c;它是工廠模式的實現。BeanFactory使用控制反轉(IOC)模式…

(Matalb分類預測)GA-BP遺傳算法優化BP神經網絡的多維分類預測

目錄 一、程序及算法內容介紹&#xff1a; 基本內容&#xff1a; 亮點與優勢&#xff1a; 二、實際運行效果&#xff1a; 三、部分代碼&#xff1a; 四、本文代碼數據說明手冊分享 一、程序及算法內容介紹&#xff1a; 基本內容&#xff1a; 本代碼基于Matalb平臺編譯&am…

Flink Flink中的分流

一、什么是分流 所謂“分流”&#xff0c;就是將一條數據流拆分成完全獨立的兩條、甚至多條流。也就是基于一個DataStream&#xff0c;定義一些篩選條件&#xff0c;將符合條件的數據揀選出來放到對應的流里。 二、基于filter算子的簡單實現分流 其實根據條件篩選數據的需求…

面了一個4年經驗的測試工程師,自動化都不會也要15k,我也是醉了····

&#x1f4e2;專注于分享軟件測試干貨內容&#xff0c;歡迎點贊 &#x1f44d; 收藏 ?留言 &#x1f4dd; 如有錯誤敬請指正&#xff01;&#x1f4e2;交流討論&#xff1a;歡迎加入我們一起學習&#xff01;&#x1f4e2;資源分享&#xff1a;耗時200小時精選的「軟件測試」資…

表單考勤簽到作業周期打卡打分評價評分小程序開源版開發

表單考勤簽到作業周期打卡打分評價評分小程序開源版開發 表單打卡評分 表單簽到功能&#xff1a;學生可以通過掃描二維碼或輸入簽到碼進行簽到&#xff0c;方便教師進行考勤管理。 考勤功能&#xff1a;可以記錄學生的出勤情況&#xff0c;并自動生成出勤率和缺勤次數等統計數…

本地緩存與分布式緩存

一、緩存的概念 在服務端編程當中&#xff0c;緩存主要是指將數據庫的數據加載到內存中&#xff0c;之后對該數據的訪問都在內存中完成&#xff0c;從而減少了對數據庫的訪問&#xff0c;解決了高并發場景中數據庫容易成為性能瓶頸的問題&#xff1b;以及基于內存的訪問速度高…

ruoyi-plus-vue部署

安裝虛擬機 部署文檔 安裝docker 安裝docker 安裝docker-compose 可能遇到的錯誤 Failed to deploy ruoyi/ruoyi-server:5.1.0 Dockerfile: ruoyi-admin/Dockerfile: Cant retrieve im age ID from build stream 安裝 vim 命令 yum install vim -y 修改文件 vim /etc/re…

flutter 無法從H5 WebView 訪問攝像頭和錄音權限

AndroidManifest.xml需要在 中添加以下權限&#xff1a; <uses-permission android:name"android.permission.INTERNET"/> <uses-permission android:name"android.permission.CAMERA" /> <uses-permission android:name"android.per…

基于Springboot的冬奧會科普平臺(有報告),Javaee項目,springboot項目。

演示視頻&#xff1a; 基于Springboot的冬奧會科普平臺&#xff08;有報告&#xff09;&#xff0c;Javaee項目&#xff0c;springboot項目。 項目介紹&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三層…

線性表之鏈式表

文章目錄 主要內容一.單鏈表1.頭插法建立單鏈表代碼如下&#xff08;示例&#xff09;: 2.尾插法建立單鏈表代碼如下&#xff08;示例&#xff09;: 3.按序號查找結點值代碼如下&#xff08;示例&#xff09;: 4.按值查找表結點代碼如下&#xff08;示例&#xff09;: 5.插入節…

ELK+kafka+filebeat企業內部日志分析系統

1、組件介紹 1、Elasticsearch&#xff1a; 是一個基于Lucene的搜索服務器。提供搜集、分析、存儲數據三大功能。它提供了一個分布式多用戶能力的全文搜索引擎&#xff0c;基于RESTful web接口。Elasticsearch是用Java開發的&#xff0c;并作為Apache許可條款下的開放源碼發布…

module ‘d2l.torch‘ has no attribute ‘train_ch3‘

解決方法&#xff1a; 方法1&#xff1a; 如果沒有安裝d2l&#xff0c;請安裝 詳細步驟見安裝d2l 方法2&#xff1a; 先卸載舊的版本 pip uninstall d2l再下載新的版本&#xff0c;需要以管理員身份運行下載指令 pip install d2l0.17.5 --user完美解決&#xff01; ????…

創新研報|企業如何在不確定時期突破至新高度?

報告下載地址&#xff1a; 創新研報&#xff5c;BCG 2023最創新企業研究-在不確定時期躍升新高度 創新從未如此重要&#xff0c;領先的企業創新者正在證明這一切。BCG&#xff08;于2005年首次發布年度創新報告&#xff0c;其中列出了全球創新高管最欽佩的50家企業&#xf…

2824. 統計和小于目標的下標對數目 --力扣 --JAVA

題目 給你一個下標從 0 開始長度為 n 的整數數組 nums 和一個整數 target &#xff0c;請你返回滿足 0 < i < j < n 且 nums[i] nums[j] < target 的下標對 (i, j) 的數目。 解題思路 對數組進行排序&#xff0c;可以利用List自帶的sort函數傳遞比較規則(代碼中的…