文档章节

Git挽救丢失的代码

囚兔
 囚兔
发布于 2013/04/22 23:57
字数 284
阅读 2060
收藏 11

    昨天晚上头脑一发热,丢失了之前忘记提交的代码,情况如下:

    有两个分支master,develop,使用develop作为开发分支,前段时间开发了一些代码在develop上,忘记提交,昨晚头脑发热直接切换到master目录下,导致无法找到之前开发的未提交的代码,通过在讨论区提问和自己查找资料,最终找回代码,具体操作如下:

使用git reflog命令找到我昨天切换分支的日志即cee30a8 HEAD@{3}:checkout: moving from 90ccea197...这行,其中90ccea1...为SHA-1码,用来唯一的标识一个代码快照,这也就是我要还原回去的代码快照。

  先建立一个临时分支recover-branch并指向90ccea197...标识的快照,则该分支即为之前未提交代码的develop分支状态然后再将其合并到develop和master解决问题。

  下次得记得当前分支未提交代码在不提交的情况下切换分支,得使用git stash。

    感谢讨论区的朋友的回答



© 著作权归作者所有

共有 人打赏支持
囚兔

囚兔

粉丝 39
博文 86
码字总数 47164
作品 1
南京
程序员
私信 提问
加载中

评论(4)

b33d8041
b33d8041

引用来自“shipley”的评论

引用来自“biergaizi2009”的评论

git 早就不允许这样做了啊,除非 foece

我又测试了下,有两个库master和develop,当前为develop,修改文件README的一行,
执行git checkout master,显示:
M README
Switched to branch 'master'
然后修改同步到了master库,这是为什么呢?

可能是 MinGW 的版本问题,我也用但也没发现这个问题。我起床之后去试试我的 Linux
囚兔
囚兔

引用来自“biergaizi2009”的评论

git 早就不允许这样做了啊,除非 foece

我又测试了下,有两个库master和develop,当前为develop,修改文件README的一行,
执行git checkout master,显示:
M README
Switched to branch 'master'
然后修改同步到了master库,这是为什么呢?
b33d8041
b33d8041
git 早就不允许这样做了啊,除非 foece
n
neoaries
谢谢分享,不过希望不会用到这个功能
git 挽救忘记提交到哪个分支的代码

代码丢失了,总是让人感觉神情恍惚,跟女朋友漏气一样的心情。没办法,只能找回了,不然昨天的工作就白干了,免不了头头还可能说昨天汇报的完成度是不是弄虚作假啦。不幸中的万幸,项目使用的...

BravoZu
2016/05/25
52
0
《Git权威指南》读书笔记 第七章 Git重置

提交可以通过对父提交的关联实现对提交历史的追溯。可以使用下面的命令对提交进程追溯: 7.1 分支游标master 当有新的提交发生时,文件.git/refs/head/master的内容如何改变? 首先创建一个新...

一万
2016/07/18
17
0
git merge使用不当引发的代码丢失血案

背景 几年前大批量的团队都在转用,的本地库和分支特性让代码管理的便利性大大增加,也因为本地库和分支的大批量使用导致了代码之间的频繁merge,我们团队以前就有遇到过以后丢代码的情况,表...

临江仙卜算子
07/02
0
0
git多人合作时,恢复误删文件

一开始比较慌,下意识里就想到用reset和push -f重置版本并强制推送到远程库,经过实验发现这样做只能保证自己的本地库和远程库回到之前一个版本,而其他人想通过git pull同步是无效的,远程库...

吾爱
2014/07/17
0
1
Android项目构建相关面试问题

一、Android构建流程 android apk构建详细流程图 打包步骤 1. 通过aapt打包res资源文件,生成R.java、resources.arsc和res文件(二进制 & 非二进制如res/raw和pic保持原样) 。 2. 处理.aidl...

千涯秋瑟
2017/12/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

小程序异步操作 跨js执行 在微信小程序里面实现跨页面通信

我们知道,在小程序里面一个页面的变化,是通过调用 setData 函数来实现的。所以想做到在二级页面里让一级页面产生变化,最 Quick And Dirty 的做法就是把一级页面的 this 传入到二级页面去,...

xiaogg
10分钟前
0
0
授于管理员登录其它用户

1.沙盒中,授予管理员登录 安全性控制==>登录访问权限政策

在山的那边
12分钟前
1
0
线程安全的CopyOnWriteArrayList介绍

证明CopyOnWriteArrayList是线程安全的 先写一段代码证明CopyOnWriteArrayList确实是线程安全的。 ReadThread.java import java.util.List; public class ReadThread implements Runnable {......

绝地逢生
14分钟前
0
0
Java重写的7个规则

几年前你可能会遇到这样一个面试题:“重写和重载的区别”、而现在随着科技的更迭、面试的问题越来越高级、面试官的问题也越来越深入、此文是上述面试题的一个延伸、让你从简单的重写规则中更...

architect刘源源
15分钟前
1
0
JavaScript异步编程:Generator与Async

从Promise开始,JavaScript就在引入新功能,来帮助更简单的方法来处理异步编程,帮助我们远离回调地狱。 Promise是下边要讲的Generator/yield与async/await的基础,希望你已经提前了解了它。...

前端攻城老湿
15分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部