Git版本提交上去被打回怎麼回滾

2021-08-29 07:13:21 字數 2941 閱讀 7180

在乙個專案比較大的時候或者專案在現場版/使用版本上做修改的時候,就需要非常慎重了,一方面可能新來的開發人員不了解**結構去做修改,很可能增加新的bug甚至導致應用崩潰,所以很多公司會加入審核機制,如果審核不通過提交就會被打回,那麼打回後git怎麼回退到原來的狀態呢?

首先進入到專案原始碼目錄,我用的androidstudio開發,在terminal下自動進入的是專案原始碼目錄:

確保當前分支上最新的提交是你需要撤銷的提交,如果不是或者別人也有提交,那麼你在撤銷的時候會帶過來別人的**,那麼這個時候就不能保證你的順利撤銷了,可能還會產生衝突之類的,這個切記;

e:\development\code\s***xyx_2018>git log .

我們使用git log檢視最新的提交:

e:\development\code\s***xyx_2018>git log .

commit 550416381e6aa292544a13b89c05692cc660e089 (head -> develop)

author: zhonglunshun date: wed oct 17 16:21:58 2018 +0800

1.(>2)

2.3.?

4.?change-id: i41cabbc05901d10b4f6053fa18a672cf5a291944

commit 2c4b2cf4581bfc98bce09dde98bf4510ae4ec178

author: zhonglunshun date: tue oct 16 16:07:32 2018 +0800

我們可以清楚的看到,最新的提交是我需要撤銷的**,我們拿到最新一條記錄的前乙個commitid,2c4b2cf4581bfc98bce09dde98bf4510ae4ec178,撤銷用得上,接下來我們使用git reset commitid就能把push撤銷;

e:\development\code\hotmail_2018>git reset --soft commitid

e:\development\code\hotmail_2018>git reset --soft 2c4b2cf4581bfc98bce09dde98bf4510ae4ec178

e:\development\code\hotmail_2018>git status .

on branch develop

your branch is ahead of 'origin/develop' by 1 commit.

(use "git push" to publish your local commits)

changes to be committed:

(use "git reset head ..." to unstage)

untracked files:

(use "git add ..." to include in what will be committed)

subway2.json

然後我們使用git status檢視一下撤銷push後的狀態,檢查一下是否成功,這裡我們可以看到成功了的;

git status .

on branch develop

your branch is ahead of 'origin/develop' by 1 commit.

(use "git push" to publish your local commits)

changes to be committed:

(use "git reset head ..." to unstage)

untracked files:

(use "git add ..." to include in what will be committed)

subway2.json

撤銷push之後我們需要用git status檢視確認一下。然後使用git reset head撤銷提交;也就是說我們可以使用這條指令撤銷上一步操作,push上一步操作是commit和add,所以執行後可以撤銷commit和add;

git reset head

執行結果如下:

e:\development\code\hotmail_2018>git reset head

unstaged changes after reset:

這個時候,我們把commit撤銷了,那麼我們檢視下狀態,使用git status命令;

e:\development\code\hotmail_2018>git status .

on branch develop

your branch is ahead of 'origin/develop' by 1 commit.

(use "git push" to publish your local commits)

changes not staged for commit:

(use "git add ..." to update what will be committed)

(use "git checkout -- ..." to discard changes in working directory)

untracked files:

(use "git add ..." to include in what will be committed)

subway2.json

no changes added to commit (use "git add" and/or "git commit -a")

到這裡我們就把**回滾到未提交狀態了;

Git 09 合併多個提交到乙個提交上面

語境 在多乙個 commit 的備註相同,或者,commit次數過多,將多個commit合併成乙個commit 使 log 看起來好看.檢視 要合併的 log git log oneline bc8bae7 head master update4 71ea6ce feat update3 4ae5c...

版本管理 Git提交特定版本到遠端庫

有些使用場景,我們提交到本地庫有多個修改版本,比如hash8,hash9,hash10,但是,我們只想提交hash10這一次修改到遠端庫,而不是執行git push origin master後,將這三次修改同時提交到遠端庫,有沒有機制實現呢?有一種方法,通過 git push origin 遠端庫...

Git 切換分支命令列 版本提交

1 git branch 檢視分支 2 如果沒有任何顯示,兩種情況 一是當前沒有分支,二是沒有切換到當前專案的目錄 此處講述第二種情況,cd 切換到專案路徑 3 git branch 再次檢視分支 看是否包含需要的分支,如果沒有,則建立乙個新的分支 4 git checkout b feature ...