git commit -am 之後,撤銷並保留修改
環境
作業系統:win7
git: 2.9
場景
有時我們在進行commit
之後,後悔了!具體點就是:
我公司的流程應該是程式碼先提交到自己的分支中,再提交到dev
分支中,測試完畢後,在合併到master
分支中。有時一不小心先提交到了dev
分支中,由於dev
分支禁止合併到master
分支中,所以我得先撤銷,再去提交到自己的分支,再合到dev
分支。
撤銷並保留修改
引數 –soft
# 先進行commit ,之後後悔啦
$ git commit -am "對首篇報告研究員欄位改為author_name"
執行git log
$ git log
commit 3d6788f577faba5e1d408e372031c81beee79749
Author: yutao <1185651333 @qq.com>
Date: Thu Dec 14 10:08:36 2017 +0800
對首篇報告研究員欄位改為author_name
commit 5029f0cc08cffb77f7358de7d5534e8f8eacb82e
Author: yutao <1185651333@qq.com>
Date: Thu Dec 14 09:52:39 2017 +0800
Revert "Revert "報告型別欄位改為report_type""
This reverts commit c81f785a06804f5f40b41dedd038efbe6d83f8a8.
commit c81f785a06804f5f40b41dedd038efbe6d83f8a8
Author: yutao <1185651333@qq.com>
Date: Thu Dec 14 09:52:22 2017 +0800
Revert "報告型別欄位改為report_type"
This reverts commit 5a1d18a032d8c9269613ff14593847f82043e627.
commit 5a1d18a032d8c9269613ff14593847f82043e627
可以看出,第一個是我剛剛commit
的,我要撤銷,當然是選擇第二個;
執行命令git reset --soft <commit>
$ git reset --soft 5029f0cc08cf
之後我們檢視下,狀態:
$ git status
On branch yutao
Your branch is up-to-date with 'origin/yutao'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: dataservice/app/ggservice/v1/event/service/InfoEventService.java
可以看出已經回撤啦,並且保留了修改。
引數 –mixed
$ git reset --mixed 5029f0cc08cff
Unstaged changes after reset:
M dataservice/app/ggservice/v1/event/service/InfoEventService.java
[email protected] MINGW64 /d/sts/workspace/ggservice (yutao)
$ git status
On branch yutao
Your branch is up-to-date with 'origin/yutao'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: dataservice/app/ggservice/v1/event/service/InfoEventService.java
no changes added to commit (use "git add" and/or "git commit -a")
這種方式也是可以的。
引數--soft
和--mixed
區別:
引數 | 區別 |
---|---|
--soft |
會將改動放在快取區 |
--mixed |
不把改動放在快取區 |
git reset –hard <commit_id>
這種方式,我個人是不推薦,它也是撤銷,但是不會保留修改。
除非你確實是不想要剛剛commit
的內容,否則,這個操作會讓你之前乾的活,白乾。
所以非常不推薦這個方式。
git log
檢視日誌,一般用來找commit_id
;
參考地址
相關推薦
git commit -am 之後,撤銷並保留修改
環境 作業系統:win7 git: 2.9 場景 有時我們在進行commit之後,後悔了!具體點就是: 我公司的流程應該是程式碼先提交到自己的分支中,再提交到dev分支中,測試完畢後,在合併到master分支中。有時一不小心先提交到了dev分支中,
git commit -m 與 git commit -am的區別
解釋 兩個 str 效果 如果 控制 mit txt 這一 字面解釋的話,git commit -m用於提交暫存區的文件;git commit -am用於提交跟蹤過的文件 要理解它們的區別,首先要明白git的文件狀態變化周期,如下圖所示 工作目錄下面的所有文件都不外
git commit -m與git commit -am的區別
字面解釋的話,git commit -m用於提交暫存區的檔案;git commit -am用於提交跟蹤過的檔案 如果你的檔案之前已經通過git add <change file>將其新增到stage,並通過git commit -m "<message>"為這所有已經進入
git commit之後發現message寫錯,修改辦法
如果已經通過git push提交了,看你們公司用的什麼git伺服器了,一般使用者想修改的話需要相關的許可權,找管理員了;如果已經有其他開發人員基於你的提交進行了修改並提交的話,那就更麻煩了,後面的所有提交都要重新做一遍; 如果還沒有push到伺服器,只是本地進行了commit,並且沒有進行新的com
Git撤銷git commit 但是未git push的修改
1. 找到上次Git commit的 id git log 找到你想撤銷的commit_id 2. git reset --hard commit_id 完成撤銷,同時將程式碼恢復到前一commit_id 對應的版本。 3. git r
git-刪除已經commit的文件並強制更新
remote reflog 1.5 push com m2e git rm pru nal git filter-branch -f --index-filter ‘git rm --cached --ignore-unmatch Spring/day04/32.編程式事務
修改 git commit -m "message" 的 message
AS sage message comm ssa -a 解決 ESS mit 解決方法 git commit --amend -m "new message"修改 git commit -m "message" 的 message
Git 基礎教程 之 撤銷修改
撤銷 pan 文件的 .com 分享 png 基礎教程 mit 技術 Git跟蹤並管理的是修改,而非文件。每次修改,如果不用git add到暫存區,那就不會加入到commit中, 要麽全部改完後,再add → commit ;要麽改一點,就add → commit。 撤
git add , git commit 新增錯檔案 撤銷 1. git add 新增 多餘檔案
1. git add 新增 多餘檔案 這樣的錯誤是由於, 有的時候 可能 git add . (空格+ 點) 表示當前目錄所有檔案,不小心就會提交其他檔案 git add 如果添加了錯誤的檔案的話 撤銷操作 git status 先看一下
使用git遷移git專案並保留提交記錄
場景 在平時開發中我們有自己的git倉庫,組內提交都是在這個庫。突然有一天,領導說要把這個庫整合到另一個更大的工程中(華為雲的看板),那裡面有前後端的程式碼;為了方便大家查詢,我們需要將各個組的程式碼遷移到同一個大工程下。 問題 提交要保留提交記錄 changelog要保留 組內成員要保留
當git上檔名大小寫重新命名的修改時(git大小寫敏感/預設不敏感),如何重新命名並提交
git預設是大小寫不敏感!!! 加了感嘆號是什麼意思呢,意思就是這本身就是一個坑,本人使用的IDE是idea(網上說Eclipse可以避開問題),這個IDE本身就集成了git,但是如果要在terminal使用git命令,還需先安裝並配置好git環境變數,然後在idea配置git安裝路徑。。。。扯
git :不能撤銷本地修改( error:路徑…是未合併)
遇到 git 問題,使用 git checkout -- . 會顯示有檔案 is unmerged 解法: git reset -- . git checkout . 醬子就成功了。
不借助git commit --amend 修改提交說明
本篇博文內容有二: 1、 使用git commit –amend修改提交說明。 2、 一種替代第一種方法的方式,更確切的說是第一種方式的原理。 1、 使用git commit –amend修改提交說明。 這種方式就是大家所熟知的最常用的方式,操作: git co
撤銷git的錯誤提交(git add , git commit, git push)
1. git add 新增 多餘檔案 這樣的錯誤是由於, 有的時候 可能 git add . (空格+ 點) 表示當前目錄所有檔案,不小心就會提交其他檔案 git add 如果添加了錯誤的檔案的話 撤銷操作 git status 先看一下add 中的檔案 git reset HE
git各種狀態下撤銷修改的方法
使用git時會出現各種各樣的問題,下面是幾種情況下怎麼反悔的操作 一,未加入快取區,撤銷檔案修改 git checkout -- file 二,已加入快取區,撤銷檔案提交 git reset HEAD file 三,已提交到本地,回滾提交
git commit 不小心把賬號密碼檔案提交上去並push到遠端後,怎麼刪除commit記錄
當前分支 1.git reset - -hard b66cc2c (b66cc2c為commit_id) 這個commit_id 是錯誤commit 之前的那個commit 2.git push -f 或者 git push origin xxxx(分
git未commit之前,撤銷add檔案的方法
步驟1: git rm --cached 檔名 步驟2: git reset HEAD 檔名 至此,已經撤銷(add操作)成功 ^-^。 如果需要 撤銷
匯入另一個 Git庫到現有的Git庫並保留提交記錄
提取出的主要步驟如下: 1 切換到要合併到的倉庫 2 git remote add 倉庫名 被合併倉庫路徑 3 git fetch --all 4 git merge 倉庫名/被合併倉庫想合併的分支 問題描述: 我在本地有兩個Git庫專案(D1=PC專案 包含通用
【git】git commit –amend命令修改comment
當git commit -m “your comment”後,想修改提交後的comment,可以使用git commit –amend命令: 1. git commit –amend,會出現上一次提交時的comment(即vim模式下檢視記錄); 2.
修改git commit資訊中的author
話說不是經常有忘記修改git 的author 和email 就直接提交的情況嘛。 這個時候就需要修改commit 中的author資訊啦 1> rebase 到你要修改的那一條commit git rebase -i <commit_hashcode&