git rebase 合并當前分支的多個commit記錄

git rebase 合并當前分支的多個commit記錄

      • git rebase 相關的選項和用法
      • step1:找到想要合并的 commit
      • step2. 使用 rebase -i
      • step3. 編輯提交歷史:
      • step4.編輯合并后的提交信息
      • step5.完成 rebase 過程:
      • step6.**推送更新:**
      • step6.**再次查看提交記錄:**
      • 一些常用git 命令

git rebase 相關的選項和用法

4399e2fd15c71bf0c60003a8547ae2c.jpg

step1:找到想要合并的 commit

你可能出現過對同一處代碼進行多次處理的場景。這會導致如下提交記錄
image.png
在gitee中也是兩個同樣的提交記錄
image.png
其實,2次提交完全可以合并成一次 commit,這個時候 rebase 就很有用了。

step2. 使用 rebase -i

#git rebase -i HEAD~n
#這里的 n 是你想要合并的提交數量加一。例如,如果你想要合并最近的三個提交,就使用 HEAD~3。
git rebase -i HEAD~2
#退出交互式 rebase 狀態
git rebase --abort

step3. 編輯提交歷史:

執行上述命令后,會打開一個交互式編輯器,列出了你選擇的提交。每個提交前面都有一個操作標記(通常是 pick)。將你想要合并的提交前的操作標記改為 squashs(表示“合并”),這將把這個提交與前一個提交合并
打開交互編輯器如下:

pick e247817c1 支持使用json/yaml或excel方式來創建角色
pick 9d87c9c09 支持使用json/yaml或excel方式來創建角色# Rebase 6b019ef89..9d87c9c09 onto 6b019ef89 (2 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit's log message
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
# .       create a merge commit using the original merge commit's
# .       message (or the oneline, if no original merge commit was
# .       specified). Use -c <commit> to reword the commit message.
#

step4.編輯合并后的提交信息

pick e247817c1 支持使用json/yaml或excel方式來創建角色
s 9d87c9c09 支持使用json/yaml或excel方式來創建角色
#修改內容 :wq保存

完成上述操作后,保存并關閉編輯器。Git 將會合并這些提交,并打開一個新的編輯器窗口,讓你編輯合并后的提交信息。在這里你可以編輯合并后的提交信息,或者保持原樣。
#支持使用json/yaml或excel方式來創建角色 這一行打開時是沒有注釋的,注釋掉。

# This is a combination of 2 commits.
# This is the 1st commit message:支持使用json/yaml或excel方式來創建角色# This is the commit message #2:#支持使用json/yaml或excel方式來創建角色

step5.完成 rebase 過程:

保存并關閉編輯器。Git 將會完成 rebase 過程,并應用你的修改。

step6.推送更新:

#如果你在一個公共分支上進行了 rebase 操作,需要使用 --force(或 -f)選項推送更新到遠程倉庫,
#因為 rebase 改寫了提交歷史,可能會導致遠程倉庫的提交歷史與本地不一致。#強行推送
git push -f origin WC-1009

step6.再次查看提交記錄:

image.png

一些常用git 命令

#拉取
git pull origin  WC-1071
git init:
#說明: 在當前目錄創建一個新的 Git 倉庫。
#用法: git init [directory]
#示例: git init(在當前目錄初始化一個倉庫)或 git init my_project(在名為 my_project 的目錄中初始化一個倉庫)。
git clone [url]:
#說明: 從遠程倉庫克隆一個項目到本地。
#用法: git clone [url] [directory]
#示例: git clone https://github.com/example/project.git(克隆名為 project 的倉庫到當前目錄)或 git clone https://github.com/example/project.git my_project(克隆到名為 my_project 的目錄)。
git add [file]:
#說明: 將文件添加到暫存區,準備提交。
#用法: git add [file]
#示例: git add index.html(將 index.html 添加到暫存區)或 git add .(將當前目錄下所有修改的文件添加到暫存區)。
git commit -m "message":
#說明: 提交暫存區的文件到本地倉庫,并附上一條說明信息。
#用法: git commit -m "message"
#示例: git commit -m "Added login functionality"(提交并附上說明信息)。
git status:
#說明: 顯示工作區、暫存區和本地倉庫的狀態。
#用法: git status
#示例: git status(顯示當前狀態)。
git diff:
#說明: 顯示工作區和暫存區的文件差異。
#用法: git diff
#示例: git diff(顯示工作區和暫存區的差異)。
git log:
#說明: 顯示本地倉庫的提交歷史。
#用法: git log
#示例: git log(顯示提交歷史)。
git pull:
#說明: 從遠程倉庫拉取最新的提交到本地,并嘗試合并到當前分支。
#用法: git pull [remote] [branch]
#示例: git pull origin master(從遠程的 origin 倉庫的 master 分支拉取最新提交并合并到當前分支)。
git push:
#說明: 將本地倉庫的提交推送到遠程倉庫。
#用法: git push [remote] [branch]
#示例: git push origin master(將當前分支的提交推送到遠程的 origin 倉庫的 master 分支)。
git branch:
#說明: 顯示本地倉庫的分支列表。
#用法: git branch
#示例: git branch(顯示分支列表
git checkout:
#說明:切換分支
#用法: git checkout <branch>
#示例: git checkout master#創建并切換到新的分支:
git checkout -b <new_branch>

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

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

相關文章

使用ollama離線部署小模型

在有網的機器下載ollama和模型 啟動服務 docker run --rm -it -v ./ollama:/root/.ollama -p 8000:11434 --name ollama ollama/ollama下載模型 docker exec -it ollama ollama pull qwen:0.5b將鏡像和ollama目錄復制到離線的機器中 docker啟動ollama服務 驗證 curl ht…

FFmpeg常用API與示例(三)—— 音視頻解碼與編碼

編解碼層 1.解碼 (1) 注冊所有容器格式和 CODEC:av_register_all() (2) 打開文件:av_open_input_file() (3) 從文件中提取流信息:av_find_stream_info() (4) 窮舉所有的流&#xff0c;查找其中種類為 CODEC_TYPE_VIDEO (5) 查找對應的解碼器:avcodec_find_decoder() (6) …

C++ 實現以xml的格式寫入文件

C XML類 該類主要將xml中的標簽分為兩類&#xff0c;無內容標簽統一稱為父標簽&#xff0c;有內容的就以鍵值對的方式直接輸出。 后面可能會優化通過函數參數的方式管控層級關系&#xff0c;現在是通過類里自動記錄層級深度來表示的。 #include <fstream> #include <…

【QT教程】QT6硬件圖形界面編程 QT硬件編程

QT6硬件圖形界面編程 使用AI技術輔助生成 QT界面美化視頻課程 QT性能優化視頻課程 QT原理與源碼分析視頻課程 QT QML C擴展開發視頻課程 免費QT視頻課程 您可以看免費1000個QT技術視頻 免費QT視頻課程 QT統計圖和QT數據可視化視頻免費看 免費QT視頻課程 QT性能優化視頻免費看…

數據結構-二叉樹結尾+排序

一、二叉樹結尾 1、如何判斷一棵樹是完全二叉樹。 我們可以使用層序遍歷的思路&#xff0c;利用一個隊列&#xff0c;去完成層序遍歷&#xff0c;但是這里會有些許的不同&#xff0c;我們需要讓空也進隊列。如果隊列里到最后只剩下空那么這棵樹就是完全二叉樹。具體的實現如下…

js 數據格式轉換,對象轉數組,數組轉對象

1.對象轉數組 // 對象obj轉換成數組格式 let obj { orgCode:分局編碼, alertId:告警ID, name:告警名稱 } let arr [] for(let key in obj) { console.log(11,key,obj[key]); // 定義一個對象&#xff0c;賦值 let o { id: key, // key是obj對象的鍵值 label: obj[key] …

學習Vue 3.0中的onMounted和onUnmounted鉤子函數

學習Vue 3.0中的onMounted和onUnmounted鉤子函數 一、什么是onMounted和onUnmounted&#xff1f;二、如何使用onMounted和onUnmounted&#xff1f;1、使用onMounted2、使用onUnmounted 三、總結 一、什么是onMounted和onUnmounted&#xff1f; Vue 3.0帶來了許多令人興奮的新特…

Modal h函數寫法

Modal h函數寫法 if (res.data.flag) {const ocapWarn res.data.ocaplList;Modal.warning({title: "提示",content: h("div", {}, [ocapWarn.map((item, index) > {return h("div", {}, [h("p",${index 1}、${item.defectItem}(…

IntersectionObserver對象

IntersectionObserver對象 IntersectionObserver對象&#xff0c;從屬于Intersection Observer API&#xff0c;提供了一種異步觀察目標元素與其祖先元素或頂級文檔視窗viewport交叉狀態的方法&#xff0c;祖先元素與視窗viewport被稱為根root&#xff0c;也就是說Intersectio…

c#---多態

在 C#語言中體現多態有三種方式&#xff1a;虛方法&#xff0c;抽象類&#xff0c; 接口 一、虛方法 什么是虛方法&#xff1f; 在父類中使用 virtual 關鍵字修飾的方法&#xff0c; 就是虛方法。在子類中可以使用 override 關鍵字對該虛方法進行重寫。 class Animal {public…

android apk沒有源碼如何修改程序

如果您擁有一個APK文件但沒有源代碼&#xff0c;您可以嘗試以下幾種方法來進行修改&#xff1a; 反編譯APK&#xff1a;使用工具如apktool對APK文件進行反編譯&#xff0c;這將為您提供源代碼和資源文件。 動態調試&#xff1a;使用調試工具連接設備或模擬器&#xff0c;并動態…

重裝前端整體流程

用戶管理 --匯總 -- 明細-CSDN博客 一、node 這個看環境變量 2023最新版Node.js下載安裝及環境配置教程&#xff08;非常詳細&#xff09;從零基礎入門到精通&#xff0c;看完這一篇就夠了_nodejs安裝及環境配置-CSDN博客 配置到國內鏡像的時候&#xff0c;去看&#xff0c;淘…

理解固化的Maven依賴:spring-boot-starter-parent 與 spring-boot-dependencies

目錄 理解固化的Maven依賴&#xff1a;spring-boot-starter-parent 與 spring-boot-dependencies1. spring-boot-starter-parent1.1 簡介1.2 特點 2. spring-boot-dependencies2.1 簡介2.2 特點 3. 異同點對比3.1 相同點3.2 不同點案例一&#xff1a;使用 spring-boot-starter-…

Java方法的重載

方法重載 1. 為什么需要方法重載 public class TestMethod{public static void main (String[] args){int a 10;int b 20;int ret add(a,b);System.out.println("ret "ret);double a2 10.5;double b2 20.5;double ret2 add(a2,b2);System.out.println("…

《QT實用小工具·六十二》基于QT實現貝塞爾曲線畫炫酷的波浪動畫

1、概述 源碼放在文章末尾 該項目實現了通過貝塞爾曲線畫波浪動畫&#xff0c;可控制 顏色密度速度加速度 安裝與運行環境 語言&#xff1a;C 框架&#xff1a;Qt 11.3 平臺&#xff1a;Windows 將屏幕水平平均分為10塊&#xff0c;在一定范圍內隨機高度的12個點&#xff08;…

飛天使-k8s知識點29-kubernetes安裝1.28.0版本

文章目錄 選用版本初始化服務器,自己修改里面的ipreboot haproxy安裝 &#xff0c;可以參考我之前寫的內核參數調整&#xff0c;安裝docker 安裝cri-dockerd開始安裝集群工具下載鏡像以及啟用完畢之后 此時的coredns 不通結果展示 選用版本 k8s 1.24版本之前還可以使用docker&…

【初階數據結構】順序表OJ題講解

前言 &#x1f4da;作者簡介&#xff1a;愛編程的小馬&#xff0c;正在學習C/C&#xff0c;Linux及MySQL。 &#x1f4da;本文收錄與初階數據結構系列&#xff0c;本專欄主要是針對時間、空間復雜度&#xff0c;順序表和鏈表、棧和隊列、二叉樹以及各類排序算法&#xff0c;持…

基于ambari hdp的kafka用戶授權讀寫權限

基于ambari hdp的kafka用戶授權讀寫權限 版本Kafka 2.0.0添加自定義配置修改admin密碼重啟kafka授權讀取授權寫入有效通配符部分舉例 版本Kafka 2.0.0 添加自定義配置 authorizer.class.name kafka.security.auth.SimpleAclAuthorizer super.users User:admin allow.everyo…

【LLM 論文】Step-Back Prompting:先解決更高層次的問題來提高 LLM 推理能力

論文&#xff1a;Take a Step Back: Evoking Reasoning via Abstraction in Large Language Models ???? Google DeepMind, ICLR 2024, arXiv:2310.06117 論文速讀 該論文受到的啟發是&#xff1a;人類再解決一個包含很多細節的具體問題時&#xff0c;先站在更高的層次上解…

Android 屏幕適配全攻略(上)-掌握屏幕單位,應對千變萬化的設備

本文從 Android 開發中常見的長度單位 px、dp、sp 入手&#xff0c;詳細介紹了它們的特點及轉換關系。 接著深入探討了屏幕尺寸、分辨率、像素密度等重要的屏幕指標&#xff0c;幫助讀者全面理解它們之間的聯系。最后&#xff0c;通過實例代碼演示了如何在代碼中進行單位轉換&…