1. 程式人生 > >git實戰總結-----在一系列提交中修改一個特定的commit

git實戰總結-----在一系列提交中修改一個特定的commit

如何修改你已經commit的一個提交?

比如

HEAD 

commit3

commit2

commit1(需要修改這個提交)

commit0(db7661ce4cb459da594a947977d0a86d14d40693)

我上網查詢並結合自己實際檢驗,方法如下:

1.先git rebase到要修改的commit之前那個commit

git rebase --interactive 'db7661ce4cb459da594a947977d0a86d14d40693' 

2.在預設的編輯器中,把你想修改的commit的標籤從pick修改成edit。然後做如下操作

git commit --all --amend --no-edit

3.git log檢查當前的commit是不是你要修改的commit

修改你的提交,並修改這個commit

我事先有把相關修改使用git stash隱藏起來

這樣我就可以用git stash pop 恢復我的修改

然後

 git status
 git add *
 git commit --amend 

修改特定的提交。

git rebase --continue
git log
git rebase --continue
git log

如果有必要再推送到指定的提交上。
git push origin 0d163929c2407b00a8c16b745b520d07b854c207:refs/changes/857344

要拆分一個commit的方法如下:

1. git rebase -i <targetCommit>~1 : 回到拆分點,用edit來表示需要更改

2. git reset --mixed HEAD~1 : 將這個targetCommit的改動放回working directory, object store 和 index都還原成這個commit尚未放入的狀態

3. 重新commit

4. git rebase --continue

======================================================================

Please help to revert one QC change we don't need. You could add this revert in between last QC change and first XXX change. If you do revert on top of your rebase result, revert will fail.
git co qc/AU_LINUX_ANDROID_LA.UM.6.5.R1.07.00.00.312.015
git revert dd664d3bb2f18799e36c9ccd5335856f9b074260
git rebase -i --autosquash --onto HEAD qc/AU_LINUX_ANDROID_LA.UM.6.5.R1.07.00.00.312.015 origin/sandbox/wangxf14/qc_AU_LINUX_ANDROID_LA.UM.6.5.R1.07.00.00.312.015_rebase

相關推薦

git實戰總結-----在一系列提交修改一個特定commit

如何修改你已經commit的一個提交? 比如 HEAD  commit3 commit2 commit1(需要修改這個提交) commit0(db7661ce4cb459da594a947977d0a86d14d40693) 我上網查詢並結合自己實際檢驗,方法如下:

pg修改一個欄位的資料型別

使用pg資料庫的時候,需要將一個欄位由varchar型別修改成numeric型別,因為習慣使用oracle所以用oracle的方式修改這個欄位型別,結果不成功。然後查了一下pg修改欄位的語法 alter table prplscheduleitems alter colum

在字串查詢一個特定的字元最後一次出現的位置,並返回字元所在位置。

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include<asse

在一組字串查詢一個特定的字元

這裡我們介紹兩種方法。第一種#define TRUE 1 #define FALSE 0 int find_char(char **strings,char value){ char *string; while((string = *strings++)

Git 修改歷史提交的使用者名稱和郵箱

Git 修改歷史提交中的使用者名稱和郵箱 最近幾次貢獻開原始碼總是遇到一個問題,我將 GitHub 上的專案 clone 到本地,完成編碼後直接 commit(提交) 。提交後才發現沒有使用 git config 來為專案配置私人使用者名稱和郵箱,因此提交中攜帶的是全域性配置中的公司

git】在git遠端倉庫建立一個新專案並把原生代碼提交上去

一、確保你有管理員許可權。 如果你還不是管理員,請讓當前管理員編輯gitosis-admin專案下的gitosis.conf檔案,在[group gitosis-admin]下的members行裡新增你的名字。 二、把gitosis-admin專案clone下來 三、現

《Scrum實戰》讀書會作業01 - 用知行視角總結現在或者過去的一個項目

style 溝通 架構師 學習型 pri 領域 nbsp 產品線 架構 下面是《Scrum實戰》讀書會的第1個作業,主要是用知行視角來總結回顧現在或者過去的一個項目。 項目背景 2011年初,我做的項目是一個搜索引擎相關的項目,這個項目為公司在全球範圍內的金

git 撤回上一次commit一個不想添加的文件

發現 如果 reset use 查看 不想 一次 文件刪除 git 1. 假設我們修改了文件a,同時修改了IDE的配置文件b 2.此時我們只想添加文件a到commit中,卻不小心將b也添加進去了 3.那麽怎麽撤回呢? 4.第一種方法: 4.1 git reset --

在myeclipse拷貝一個工程,修改部署的名字

部署 拷貝 pro 方法 table tab per 右鍵 alt 在MyEclipse中,經常練習的時候需要建立多個工程,但是為了方便,通常的作法是:復制一個工程,然後直接粘貼,但是,部署以後會發現,使用新的工程名訪問不了,報404錯誤。 其原因是

數據庫修改一個的字段值等於另一個表字段值

name update client bsp select class 代碼 alc body (MS SQL Server)語句:Sql代碼 update b set ClientName = a.name from a,b where

Andriod項目實戰——如何在微信H5棋牌鬥牛房卡源碼平臺租售搭建一個包下建新包教程

明顯 技術分享 col log 兩張 需要 容易 網址 roc 最開始是想將各個類分門別類地微信H5棋牌鬥牛房卡源碼平臺租售搭網址:h5.fanshubbs.com聯系Q1687054422存放在不同的包中,所以想在項目源碼包中新建幾個不同功能的包eg:utils、mode

svn與git操作對比 (未來有空做一個 svn與git實戰對比 )

git reset oca add 區別 local depends pst ranch nbsp svn是集中式的,git是分布式的,但是我們日常使用的都是按照集中式唯一服務器倉庫的方式來去做的,最終我們的代碼都要提交到一個唯一倉庫中。 他們最大的區別是本地工作拷貝的工

eclipse項目轉移至IDEA與IDEA tomcat報錯(idea自帶tomcat版本太高)與war包部署到win服務器與idea提交git總結

image push under 正常 回來 env acc nvi 雲上 eclipse導出項目到idea時,不要導出target; idea打開eclipse項目後,出現junit找不到的問題,原因是jar包缺失,而maven配置的低版本的junit

IDEAGit的更新、提交、還原方法

修改 5.1 創建 sdn 其中 sage 本地 b2c log 第一步:在提交項目之前必須先對項目進行更新,此項特別重要,如果不進行更新,別人有項目提交到服務器上,那麽你的項目將會提交不上去,使用git解決沖突會比較麻煩,即使你解決了沖突,但是有時候不註意會沖掉別人寫的代

IDEAGit實戰

下載 etc 位置 實戰 成員 detail 好項目 bsp bug 工作中多人使用版本控制軟件協作開發,常見的應用場景歸納如下: 假設小組中有兩個人,組長小張,組員小袁 場景一:小張創建項目並提交到遠程Git倉庫 場景二:小袁從遠程Git倉庫上獲取項目源碼 場景三:小袁修

leetcode676+修改一個字母在vector的dict有沒有,類似於字典樹,暴力

https://leetcode.com/problems/implement-magic-dictionary/description/ class MagicDictionary { public: set<string> s; /** Initialize

git操作總結(2):回退和前進到某一個版本

1.檢視日誌: git log 簡化命令 git log --pretty=oneline 2.回退到上一個版本  git reset HEAD^     註釋:         用HEAD表示當前版本,上一個版

Eclipse修改包名,提交SVN時報 is out of date,怎麼辦?

問題:Eclipse中修改包名,提交SVN時報 is out of date,怎麼辦?描述: Hi,大家好!     我的問題如題,在不考慮用TortoiseSVN客戶端直接刪除目錄這個方法的情況下,有什麼方法能夠解決ECLIPSE下修改程式碼包名,提交SVN導致is out of d

Git命令cherry-pick,選擇把一部分程式碼提交到另一個分支

由於對git的使用還不是很熟悉,只是會基本的新增、提交、分支相關簡單操作,在開發新需求的時候,需要涉及兩個專案,一部分在新專案的新分支上開發的,另一部分是在老專案的老分支上開發的(這裡忘了建立新分支)。專案開發完提交的時候,在新專案分支順利提交併review,但是老專案上的部分程式碼這裡就遇到了問題,怎麼提交

SQL怎樣修改一個表的列名,SQL字串拼接

1、 oracle: ALTER TABLE 表名 RENAME COLUMN 列名 TO 新列名 sqlserver:exec sp_rename '[表名].[列名]','[表名].[新列名]' mysql:ALTER TABLE 表名 CHANGE 列名 新列名 列型別 2、ORACL