最近操作学习GIT,不懂求解决

2014-01-09 15:33:12 +08:00
 nilai
基本操作如下

root@yzy-All-Series:~/soft/git# git clone https://github.com/simpl/ngx_devel_kit/
Cloning into 'ngx_devel_kit'...
remote: Reusing existing pack: 494, done.
remote: Total 494 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (494/494), 147.23 KiB | 77 KiB/s, done.
Resolving deltas: 100% (222/222), done.
root@yzy-All-Series:~/soft/git#
root@yzy-All-Series:~/soft/git# ls
ngx_devel_kit
root@yzy-All-Series:~/soft/git# cd ngx_devel_kit/
root@yzy-All-Series:~/soft/git/ngx_devel_kit# ls
auto docs ngx_auto_lib_core objs README src
config examples notes patches README_AUTO_LIB TODO
root@yzy-All-Series:~/soft/git/ngx_devel_kit# touch a.txt
root@yzy-All-Series:~/soft/git/ngx_devel_kit# git add .
root@yzy-All-Series:~/soft/git/ngx_devel_kit# git commit -a -m " "
Aborting commit due to empty commit message.
root@yzy-All-Series:~/soft/git/ngx_devel_kit# git commit -a -m "a"
[master b948782] a
0 files changed
create mode 100644 a.txt
root@yzy-All-Series:~/soft/git/ngx_devel_kit#
root@yzy-All-Series:~/soft/git/ngx_devel_kit# rm -rf a.txt
root@yzy-All-Series:~/soft/git/ngx_devel_kit# rm -rf config
root@yzy-All-Series:~/soft/git/ngx_devel_kit# git commit -a -m "aaa"
[master 9b7cc51] aaa
1 file changed, 49 deletions(-)
delete mode 100644 a.txt
delete mode 100644 config



现在怎么样可以把我删除或者修改的文件给找回来。 对GIT不熟悉 网上搜索了下好像可以用git checkout来找回,不过好你有点麻烦。 有没有像SVN中的 svn update 一下就把本地的文件同仓库的同步了。求解答。
4887 次点击
所在节点    git
14 条回复
9hills
2014-01-09 15:39:00 +08:00
git revert HEAD
spark
2014-01-09 15:41:08 +08:00
撤销上次操作:

```
$ git revert HEAD
```

要滚回指定 commit, 把 'HEAD' 换成 commit 的 id 就可以了.
freefcw
2014-01-09 15:50:18 +08:00
还有一个方法可以取消上一次提交

还可以git reset --soft HEAD^

不过不熟悉这个命令的慎用
nilai
2014-01-09 16:14:15 +08:00
@9hills @spark
root@yzy-All-Series:~/soft/git/ngx_devel_kit# git revert HEAD
[master db40f57] Revert "aaaaRevert "aaa""
1 file changed, 49 deletions(-)
delete mode 100644 a.txt
delete mode 100644 config
root@yzy-All-Series:~/soft/git/ngx_devel_kit# ls
auto examples notes patches README_AUTO_LIB TODO
docs ngx_auto_lib_core objs README src


可a.txt config 这两个文件还是没有回来啊
9hills
2014-01-09 16:19:38 +08:00
@nilai 你revert了多少次啊。。
9hills
2014-01-09 16:20:48 +08:00
@nilai 还是看书吧:http://git-scm.com/book/zh

读一遍自然就会了,这种基础问题论坛里面问效率很低的
lijinma
2014-01-09 16:58:09 +08:00
git log 看一下你需要到的点:(应该是你提交信息为a的点)

比如:d35485dcca2637da0a3ed49955ace039ed6c1dcb

然后 git reset --hard d35485dcca2637da0a3ed49955ace039ed6c1dcb
initialdp
2014-01-09 17:23:11 +08:00
为什么不用sourceTree图形终端操作呢? 简单明了。
hexor
2014-01-09 17:35:18 +08:00
@freefcw

没有关系 就算你用hard reset不小心reset掉commit了

还是可以用

git reflog 找回你所有的commit

这东西最好是跟一个很会git的一对一, 让他教你. 成长飞快. 没有这个条件就要多问.
然后就是要多用, 不要怕把数据玩坏.
如果你还是怕玩坏, 你就在每次进行git操作的时候, copy你的git文件夹到备份.
wwqgtxx
2014-01-09 17:49:13 +08:00
不行直接用git gui,方便又快捷
slixurd
2014-01-09 17:58:02 +08:00
在没有git rm的情况下只用了rm,是不会真正删除文件的,连回滚都不用,在另外的地方clone一下那些文件就回来了.不信你可以看看github上的对应文件有没有删除
nilai
2014-01-09 19:29:48 +08:00
感谢各位的指导。。。
imxz
2014-01-09 19:49:05 +08:00
《Git学习策略》 我学习完git后的总结,希望对你有用
http://imxz.me/recommend/tips/git-for-version-control.html
jiyinyiyong
2014-01-11 09:19:55 +08:00
基础问题就像是学骑车一样的, 只能靠练, 别人說多了反而没用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/96303

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX