linux git删除的文件怎么还原,从Git仓库中恢复已删除的分支、文件或丢失的commit...
從Git倉(cāng)庫(kù)中恢復(fù)已刪除的分支、文件或丟失的commit
在使用Git的過(guò)程中,有時(shí)可能會(huì)有一些誤操作
比如:執(zhí)行checkout -f 或 reset -hard 或 branch -d刪除一個(gè)分支
結(jié)果造成本地(遠(yuǎn)程)的分支或某些commit丟失
可以通過(guò)reflog來(lái)進(jìn)行恢復(fù),前提是丟失的分支或commit信息沒(méi)有被git gc清除
一般情況下,gc對(duì)那些無(wú)用的object會(huì)保留很長(zhǎng)時(shí)間后才清除的
reflog是git提供的一個(gè)內(nèi)部工具,用于記錄對(duì)git倉(cāng)庫(kù)進(jìn)行的各種操作
可以使用git reflog show或git log -g命令來(lái)看到所有的操作日志
恢復(fù)的過(guò)程很簡(jiǎn)單:
1. 通過(guò)git log -g命令來(lái)找到我們需要恢復(fù)的信息對(duì)應(yīng)的commit_id,可以通過(guò)提交的時(shí)間和日期來(lái)辨別。一個(gè)好的辦法是運(yùn)行:1、git log --since="2 weeks ago" -- myfile 可以2個(gè)星期期間的myfile歷史;2、git log --branches="develop" 可以查看develop的commit
2. 通過(guò)git branch recover_branch[新分支] commit_id 來(lái)建立一個(gè)新的分支
這樣,我們就把丟失的東西給恢復(fù)到了recover_branch分支上了。
Q:如果是不小心執(zhí)行了git reset,還有辦法取消嗎?
A:git reflog 查看操作歷史,找到之前 HEAD 的 hash 值,然后 git reset --hard 到那個(gè) hash 即可。
Q:怎樣找回歷史版本中刪除的文件?
A:先確定需要恢復(fù)的文件要恢復(fù)成哪一個(gè)歷史版本(commit),假設(shè)那個(gè)版本號(hào)是: commit_id,那么
git checkout [commit_id] -- 就可以恢復(fù)
GitHub 使用教程圖文詳解
Git 標(biāo)簽管理詳解
Git 分支管理詳解
Git 遠(yuǎn)程倉(cāng)庫(kù)詳解
Git 本地倉(cāng)庫(kù)(Repository)詳解
Git 服務(wù)器搭建與客戶端安裝
Git 概述
GitLab 的詳細(xì)介紹:請(qǐng)點(diǎn)這里
GitLab 的下載地址:請(qǐng)點(diǎn)這里
本文永久更新鏈接地址:
http://www.dengb.com/Linuxjc/885945.htmlwww.dengb.comtruehttp://www.dengb.com/Linuxjc/885945.htmlTechArticle從Git倉(cāng)庫(kù)中恢復(fù)已刪除的分支、文件或丟失的commit 在使用Git的過(guò)程中,有時(shí)可能會(huì)有一些誤操作 比如:執(zhí)行checkout -f 或 reset -hard 或 branc...
總結(jié)
以上是生活随笔為你收集整理的linux git删除的文件怎么还原,从Git仓库中恢复已删除的分支、文件或丢失的commit...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java scjp考试_Java开发网
- 下一篇: linux列出管道,lsof列出的管道列