1. 程式人生 > >git commit 刪除不想要的commit歷史,或是刪除之前的commit記錄

git commit 刪除不想要的commit歷史,或是刪除之前的commit記錄

作者:黃鋆
連結:https://www.zhihu.com/question/22132675/answer/20420691
來源:知乎
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。
https://www.zhihu.com/question/22132675
核心命令: git rebase -i <upstream>
以及: git push -f
首先是要在本地把這兩個提交刪除:用 git rebase -i 928582641a 指定 base 為你需要刪除的提交的前一個提交, 進入 Interactive Rebase刪除 pick med 和 pick test2 那兩行, 儲存退出. 之後可能 git 會提示出現 conflict, 根據提示完成處理.接著就是把本地內容 Force Push 到遠端. 執行 git push -f 由於你現在本地的歷史已經和遠端的歷史出現分歧, 要推送到遠端時, 必須要 Force Push 才行, 也就是 -f 引數的用意. 如果你所謂的 “撤銷” 是說修改保留, 但提交取消, 步驟也是一樣的, 只是把 pick med 和 pick test2 這兩行的 pick 改成 squash, 儲存退出後根據提示, 重新編輯一下 commit message, 並完成剩下的操作. 這裡其實就是把 med 和 test2 這兩個提交合併到前一個提交中.建議在操作的時候花點時間, 仔細閱讀一下 Interactive Rebase 時的提示, 理解 pick/squash, 以及更多的 fixup/edit 等的命令的功能和用法.

相關推薦

git commit 刪除commit歷史,或是刪除之前commit記錄

作者:黃鋆 連結:https://www.zhihu.com/question/22132675/answer/20420691 來源:知乎 著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。 https://www.zhihu.com

讓百度刪除收錄的域名快照的最快方法

個別網站可能會出現以下類似困擾: ①、百度收錄了自己不想收錄的域名,造成內容重複,比如張戈部落格,百度近一半的收錄是www的域名,而且收錄的內容還是重複的!實際上張戈部落格的首選域名是不帶www,就算一開始就做了301,也被百度無視了; ②、網站中途才設定的偽靜態,收錄正常後發現依然存在舊的動態連結,

Git運用基礎之如何刪除Github上的專案

今天突然想刪除,(強迫症想刪除)之前練習時多建立的多個Github上的原始碼或者無用Demo地址,然後看了一些文章都比較老式,這裡我展示一下最新的刪除步驟。進去主頁會在右邊看到你建立的所有專案:二、選擇

程式設計方法分享-刪除WorkNC程式設計時的刀路

例如程式設計人員若是想要刪除不想要的刀路,開啟“多重編輯”-“移除”就可獲得多種方法。然後程式設計人員可以在“移除”的選項下選擇最合適的方法進行操作。這幫助了程式設計人員得到高效而準確的效果。 那“多重編輯”的“移除”功能擁有多少種刪除多餘刀路的方法呢? 首先點住“編輯”按鈕-1,選擇“多重

password 瀏覽器補全輸入框資訊

問題: 1.輸入框獲取焦點會彈出瀏覽器儲存的賬號列表 2.頁面同時存在文字和密碼輸入框是,自動填充賬號資訊 解決方案: 在password輸入框前加入隱藏密碼框 要點1:務必隱藏的輸入框放前面 要點2:隱藏的輸入框必須加上屬性 name=“password

c語言程式設計:用strcpy比較陣列(銀行卡密碼程式設計),strcpy(複製陣列內容)和getchar()(敲鍵盤字元,統計的字元的個數)

統計從鍵盤輸入一行字元的個數:   1 //用了getchar() 語句 2 //這裡的\n表示回車 1 #include <stdio.h> 2 #include <stdlib.h> 3 int main() 4 { 5 int n =

Ajax傳值丟失問題&&ajax傳值的時可能會多出的符號,為何這樣呢,原因是賦值時候多了某些標點。。。

Ajax傳值丟失問題   部落格分類: Ajax Ajax傳值中斷  閱讀更多 使用Ajax傳送資料時,當資料中存在加號(+)、連線符(&)或者百分號(%)時,伺服器端接收資料時會丟失資料。分析Ajax傳送資料的格式與Javascrip

jQuery選擇器的過濾器,即對選擇的結果再進行一個過濾(如我在這裡的input控制元件)

jQuery選擇器的過濾器,即對選擇的結果再進行一個過濾(如我不想要在<div id="test"></div>這裡的input控制元件) 即從當前匹配元素集合中,刪除元素。 有not、remove兩個函式,但是他們只是移除同類元素,而不是適用

python3 如何去除字串中的字元?

cmb_chrs = dict.fromkeys(c for c in range(sys.maxunicode) if unicodedata.combining(chr(c))) #此部分建議拆分開來理解 (adsbygoogle = window.adsbygoogle ||

Python-去除字串中的字元

#!/usr/bin/python3 import sys import unicodedata s = "Zhào Qián Sūn Lǐ Zhōu Wú Zhèng Wáng" remap = { # ord返回ascii值 ord('\t'): '', ord('\f'):

SQL中查詢有很多欄位,就其中一個的方法

在sql查詢中 通常選取欄位都是select 欄位1,欄位2,欄位3....... from 表, 如果有很多欄位,就不想要其中一個 有沒有方法能 select 非(欄位1) from 表 查到其他欄位的內容呢 把欄位1去掉declare @s nvarchar(10

JSON 自定義序列化(過濾掉的屬性)

    這裡只講JSON-LIB和FastJson兩種Json工具的序列化過濾問題     比如,我想過濾的屬性有id,和name,先演示json-lib     1.Json-Lib         //通過json-lib將資料序列化為json格式         Js

python如何去除字串中的字元

問題:     過濾使用者輸入中前後多餘的空白字元       ‘    ++++abc123---    ‘     過濾某windows下編輯文字中的’\r’:       ‘hello world \r\n’     去掉文字中unicode組合字元,音調       "Zhào Qián Sūn L

Git命令解決更新提交原生代碼,只拉取伺服器最新程式碼

解決方案(使用stash命令): 1、在終端中輸入如下命令(將該檔案暫存本地): git stash 輸入上述命令會提示出如下資訊: 提示index.lock檔案已經存在,註解出現這個提示的原因如下: 在你進行某些比較費時的git操作時自動生成,操作結束後自動刪

去掉字串開頭,結尾或者中間的空格及其他的字元

討論 這些 strip() 方法在讀取和清理資料以備後續處理的時候是經常會被用到的。 比如,你可以用它們來去掉空格,引號和完成其他任務。 但是需要注意的是去除操作不會對字串的中間的文字產生任何影響。比如: >>> s = ' hello world \n' >>

maven專案,去除jar包中的的依賴關係

<dependency><groupId>httpclient</groupId><artifactId>httpclient</artifactId><version>4.2.5</version></dependen

git提交忽略必要的文件文件夾

文件夾 generate clip light sdn 點擊 icon targe 倉庫 轉http://blog.csdn.net/u014079773/article/details/51602344 eclipse安裝git插件設置:點擊“Add Pattern”

SVN VISUALSVN 排除更新的目錄檔案 DEBUG

TFS用習慣了,切換到SVN。SVN ADD的把整個目錄簽入。 每次VS生成專案debug都會變。造成每次都有很多東西要簽入。 選中不需要更新的資料夾,右鍵 Repository Brower 在左側找到不需要更新的目錄刪除。 專案重新UPDATE就不會再提示更新。 提示:

python 操作 redis的 list ,刪除了這個 值 ,使用 lrem 刪除了對應的值,使用lrem刪除了json格式的值

code als span asc 發現 pytho load div 轉義    把dict 轉成 json 存入 redis list ,之前是 這樣 存 j = json.dumps(字典, encoding="UTF-8", ensure_ascii=Fa

git切換到別的分支,暫時儲存當前分支的修改(進行add 和commit)的方法 git stash

最近在一個原有的專案上做一次非常大的改版,底層的資料庫做了很大的變化,跟現在的版本無法相容。現在的工作除了開發最新的版本之外還要對原來的版本做例行的維護,修修補補。於是有了在兩個分支之間遊走切換的問題,最新改版的程式碼在分支new上,舊版本的程式碼在分支old上,我在new上開發了一半,忽然有人給了我一個