回滾誤操作的解決辦法
之前沒用過git,有一次在commit本地**後,還沒有push上去,不小心回滾到了之前的版本,**全丟了。下面記一下解決方法:
首先用git reflog檢視操作記錄
和git log不同,git log可以檢視提交過的版本資訊,而got reflog可以檢視所有分支的操作記錄,包含已經被刪除的commit記錄。
然後git reset --hard 版本號 回滾到某版本
這部要注意首先要會推到有相關檔案的提交,否則reset的時候可能會找不到檔案報錯。
使用git stash命令暫存**
這時就可以git pull了,把遠端分支拉到你的本地分支上。
然後進行git stash pop操作,把暫存的**釋放出來。這時再把本地分支的**commit push即可。
以上是正常操作。但我在pop之後並沒有發現**合併過去了,而且git stash list竟然是空的,難道被刪了?
只好用git fsck看一下,git中被刪除的commit並不是真正刪除,而是刪除了相關的引用,然後變成了懸空物件(dangling commit)
git一些常用命令
git checkout -b dev origin/dev 從遠端dev分支檢到新建的dev本地分支
git branch 列出本地已經存在的分支
git branch -r 列出遠端分支
git branch -a列出本地和遠端分支
git status檢視倉庫狀態
git commit 有三種狀態:untracked未追蹤狀態/changes tobe commited檔案已暫存/changes not updated檔案被修改,但未被加入暫存區
git的回滾操作
回滾其中的某個 commit 場景 你已經執行了 git push,把你的修改傳送到了遠端,但是這些 commit 中其中乙個是有問題的,你需要回滾那乙個 commit.方法 git revert 原理 git revert 會產生乙個新的 commit,它和指定 sha 對應的 commit 是相...
誤操作生成的「病毒「解決方法
前幾天有位電腦小白說ta電腦出了問題,乙個勁的說中毒了,但是無論用什麼防毒軟體還是重新系統還原還是解決不了。當時我看到的問題是桌面上所有的快捷方式都是指向同乙個網頁,或者說是所有的快捷方式都是用同一種方式來開啟,這樣就導致了無法按照它原來的開啟方式了,造成了電腦無法使用其他軟體的狀態,生成了所謂的中...
Git回滾操作的總結
保留原始碼,只回退commit資訊到某個版本,不涉及index的回退,如果還需要提交,直接commit即可.git reset mixed 會保留原始碼,只是將gitcommit和index資訊回退到了某個版本.gitreset預設是 mixed模式 gitreset mixed等價於gitrese...