1
sobigfish 2013-01-16 21:52:55 +08:00
难道一次都木有commit过-,-
|
2
dongsheng 2013-01-16 21:55:09 +08:00
git pull怎么会覆盖本地数据?如果你之前有commit的话,可以用git reflog找到hash code,然后cherrypick回来
|
3
alexrezit OP @sobigfish
是的... 本来只想写个测试一下, 后来发现写得还不错, 想丢到 github 上分享给基友们, 结果... |
5
BOYPT 2013-01-16 22:19:13 +08:00
pull怎么可能覆盖代码,你本地没提交根本不可能pull的回来。
|
6
BOYPT 2013-01-16 22:19:56 +08:00
除非你reset hard了。
|
7
swulling 2013-01-16 22:35:37 +08:00
ls说的对啊
1. 你本地commit了,那无论如何都能用reflog找回来 2. 你本地没有commit,那根本就pull不成功啊 |
8
alexrezit OP |
11
remaerd 2013-01-16 23:28:37 +08:00
我之前也经常出现跟 LZ 一样的情况.... 杯具死了。
|
12
chloerei 2013-01-16 23:37:23 +08:00 1
没有 add 的文件,不会被覆盖。
add 了文件没有 commit,不能 pull。 commit 了之后 pull 有冲突,会自行解决或者提示需要编辑。 只要 commit 过,都可以用 git reflog 找回。 楼主可以贴下命令行 history,看看进行过什么操作。 |
13
Auston_Jary 2013-01-17 00:17:03 +08:00
这有点不科学。。。
|
14
alexrezit OP @Auston_Jary
我也觉得.. |
16
BB9z 2013-01-17 09:06:54 +08:00
Time Machine。救过不下5次命了,全跟git操作不当有关。
|
18
neo1989 2013-01-17 09:37:19 +08:00
pull怎么会覆盖? 莫非楼猪checkout了。
|
19
xatest 2013-01-17 09:53:15 +08:00
跟pull没关系,一定是其他操作导致的~
|
20
mrhooray 2013-01-17 10:27:49 +08:00
楼主贴一下git log上?就知道到底怎么样拉
|
22
alexrezit OP @neo1989
@xatest @mrhooray g init g add * g rm -r --cached RSocialDemo.xcodeproj/xcuserdata/ g remote add origin [email protected]:AlexRezit/RSocialDemo.git gpl gps l lr 就是这样... g="git" gpl="git pull" gps="git push" l="ls -FG" lr="ls -FGR" |
23
chenha0 2013-01-17 11:29:05 +08:00
自从用了zsh在命令行提示符里提示有未提交代码就没发生过这种悲剧。。
|
24
chloerei 2013-01-17 11:44:41 +08:00
我重现一遍,到 git pull 的时候应该会出现
There is no tracking information for the current branch. Please specify which branch you want to merge with. 数据没丢。 但是指定分支之后 git pull origin master,pull 成功,数据丢了。 后来再测试,先 commit 一次,再修改再 pull,pull 失败,数据还在。 看来真的是 init 之后 add 了不 commit,然后 pull,add 的数据会丢。 |
25
chloerei 2013-01-17 11:47:13 +08:00
我的习惯是进行任何操作前都 git status,确保 working directory clean 才进行操作。
|
27
swulling 2013-01-17 12:06:28 +08:00 2
@alexrezit
@chloerei 其实是能找回来的,我测试了下 在你git pull origin master后,看起来你原来在stage区域的文件是丢了。但其实没有 $ git fsck --lost-found Checking object directories: 100% (256/256), done. Checking objects: 100% (748/748), done. dangling blob 61780798228d17af2d34fce4cfbdf35556832472 dangling blob 78981922613b2afb6025042ff6bd878ac1994e85 dangling blob f2ad6c76f0115a6ba5b00456a849810e7ec0af20 然后去.git/lost-found/other就能找到这些blob |
28
swulling 2013-01-17 12:07:29 +08:00
|
29
swulling 2013-01-17 12:08:35 +08:00
再补充一下,git add 空文件是找不回来,只能找回文件的内容。。
|
30
qiukun 2013-01-17 12:11:14 +08:00
开学也遇到 git 用不好的状况。就没有 lightweight 点的吗?我不用 branch 神马的,我只要恢复
|
32
alexrezit OP |
33
swulling 2013-01-17 13:41:00 +08:00 1
@alexrezit 我的vim config
"" 备份/Backups set undodir=~/.vim/tmp/undo// " undo files set backupdir=~/.vim/tmp/backup// " backups set directory=~/.vim/tmp/swap// " swap files set backup " enable backups 有一次不小心把编辑了很久的文件直接rm了,但是在backupdir中找回来了。。而且就连swap文件都会backup |
34
qiukun 2013-01-17 13:53:50 +08:00
|
35
alexrezit OP |
39
YIFEIO 2018-01-21 17:08:46 +08:00
杯具。。。我写了一周的代码没了,幸亏只是用来学习的一个小项目
|