git本地檔案回滾操作

2021-09-07 08:10:15 字數 1972 閱讀 1725

今天有幾個檔案改在了其他分支上。需要回滾。

link

link

簡單講,分多個不同的階段:

1. 用git status命令看,發現是unstaged,那麼就是只在working tree裡面。

這時候,git checkout 《檔名》,就可以了。

當然,我試了幾次沒成功,看起來是需要對branch指定清楚版本才行,未解。

後來是進行了下面的 git reset . 之後,繼續使用

git  reset 5c5feea2d8854b3b7d7be3c03764d154429b872a onetimerefund.php

才可以的。

2. 已經git add到stage裡面的檔案,需要先使用如下命令:

git reset . 

然後已經staged的檔案會恢復為未stage。

3. 本地repository的回滾:

git reset --hard head~3 (回滾3個版本,但是如果已經提交到遠端,那麼push會報錯)

4. 遠端repository的回滾:

git revert 51fa57da7c5352ddb(後面這個是git log裡面能夠查到的)

另外,關於git merge 是否加 --no-ff 的選項,通過git log 加上圖形選項,這個就有直觀的理解了:

以下是不加--no-ff的git log圖形化內容(icode的merge也是預設不加--no-ff的):

git log --graph --pretty=oneline --abbrev-commit

*   3361e4e merge branch 'onetime_refund_update'into master

|\

| * a36e7e5 update onetimerefund.php for

new refund inte***ce

| * 81149df merge branch 'trade'into develop

| |\

* | \ 442087b merge branch 'random_code_new'into master

|\ \ \

| * | | c6664bd modify expire time from 7 to 35days

| * | | d52c212 modify expire time from 7 to 34days

| * | | 3399d42 merge remote-tracking branch 'remotes/origin/master'into random_code_new

| |\ \ \

| |/ / /

|/| | |

而普通的git log大概看不出來:

commit 3361e4ec3dc9d7b4fb2faf6bdcdcc6975bb88d0e

merge: 442087b a36e7e5

author: ***

date: wed dec 14 15:20:06 2016 +0800merge branch 'onetime_refund_update'into master

commit a36e7e5cc51b3c5405a486afd35df26a01dd9dd4

author: ***

date: wed dec 14 14:56:20 2016 +0800update onetimerefund.php

fornew refund inte***ce

change-id: ide737112a7c5ceb9077aa34406b453ed2ea2a109

commit 442087bed0c62f3e5f738b906f7764143cf49fee

merge: 379ce39 c6664bd

......

Git 回滾操作

git revert是用一次新的commit來回滾之前的commit,git reset是直接刪除指定的commit git log 查詢回滾版本唯一commit標識 git reset hard head 3 會將最新的3次提交全部重置,就像沒有提交過一樣。mixed git reset 會保留原...

git 回滾操作

情況一 檔案被修改了,但未執行git add操作 working tree內撤銷 git checkout filename git checkout 情況二 同時對多個檔案執行了git add操作,但本次只想提交其中一部分檔案 git add git status 取消暫存 git reset h...

git回滾操作

今天刪除日誌時不小心把控制器刪除掉了 心裡一荒 不過還好 phpstorm 上面的git 有rollback 操作 不過 既然是用git 那如果使用命令改怎麼操作呢 第一種情況 就像上面說的 誤刪了檔案 但是還沒有提交的暫存區 git add git checkout filename 如 git ...