开发工具 Happycasts: git reset 技巧点滴

happypeter · 2012年08月27日 · 最后由 happypeter 回复于 2012年09月18日 · 4785 次阅读

http://happycasts.net/episodes/34 git 是一台时间机器,我们可以让 git-reset 带我们回到从前,后悔从未如此简单。

请问,楼主,制作一个这样的视频,需要用多少时间?

#2 楼 @ery

  1. 读所有的资料,man,blog,screencasts ... 可讲的点做成笔记:10 hours
  2. 笔记转视频讲稿 script: 0.5 hour
  3. 讲稿内容选例子,敲一下练练手:2 hours
  4. 录制:3 hours

以上都是压缩后的实实在在的时间,实际过程会分散在 2~4 个工作日内,不过过程中会读到很多相关还有不相关的文章,快乐的很。

录制的时候很多错误,有时会停下来想几分钟,有时会把录好的一小段 cut 了重录,所以会用 3 个小时,哈哈,笨啊 😄

#5 楼 @happypeter 我觉得你做的视频非常的好。 这个关于 git reset 的视频 我正在看,一共是 17 分钟, 我觉得,时间如果在 10 分钟以内的话,效果会更好。

真可谓 分享 10 分钟 幕后 10 天功 啊!

非常感谢你的分享。

感谢分享,虽然我没看。

#6 楼 @ery 我也是觉得不如,10 分钟就很好。

#8 楼 @happypeter git reset 我一直在用 softhard 我都经常使用, 不过我从来没用过 mixed 也头一次听说。 我还没有仔细研究, 不过我隐约的感觉,我的确有这种需求。

petter wang, good, I'm Eric wang.

谢谢楼主分享。

#9 楼 @ery 其实 mixed 你可能一直在用

谢谢 分享

@happypeter 我看视频的时候,发现你使用了以下两样东西:

1 ./gitconfig 我对 gitconfig 的了解, 仅仅限于 user.name user.email, 非常希望, 你今后能和我们分享一下.gitconfig 的使用技巧

2 tig 我看到你在很多 git 视频中都使用了 tig, 于是我也在 ubuntu 中装了一个, 我发现 tig 的确很不错,似乎甚至可以用来做 code review。

非常希望,今后你能分享,你经常使用的小工具和小技巧。

为了减少你的工作量, 我想,甚至你都无需做一个视频, 你只要列出你经常使用的小工具的名字以及用途, 我们可以自己去 google 和研究。

非常感谢!

#14 楼 @ery git-config is on my TODO list now, thx for your feedback.

Tig is cool in that it works right in the terminal, before I used gitk and suffered a lot from the flashes switching to GUI.

And Yes like anybody of us, I use all kinds of small tools for the job, but I do think people's interest varies, it's hard to put up a list that is not a big mess 😄

Any awesome tool I really love, I will put up a new happycast for everybody, and requests are always welcomed.

#5 楼 @happypeter

感谢分享,加油!

#16 楼 @knwang 你在社区给了大家很多指导,非常感谢你!我也是热爱教学的,希望有机会能和你合作一些事情。你在国外,国内的事情可能很多不太方便弄。

#17 楼 @happypeter 太客气了,我也是想认识些国内的同行,有机会合作就最好了,可以多交流。认识国内作开发的不多,以前在北京见过几个做 Ruby 的,但好像都不在这儿。

#18 楼 @knwang 刚刚在 railstutor 报了你的班,跟你讲个很歇斯底里,但是没准也很重要的事。就是一方面我很喜欢你网站的简约风格,因为我也信奉“do less",但是即使是这样,我到了 register, 也就是 payment 的页面也觉得有些”too less“,

我的第一感觉是:

  • 你们的付费功能是否做完善了?
  • 付费过程不会失败吧?

直观感觉,仅供参考

#19 楼 @happypeter 欢迎欢迎!

你的付费已经处理好了。我们的付费过程用的是 Stripe, 我认为是所有现在 payment gateway 里面做的最好的。有什么觉得不太对的么?

还有,确认 email 收到了吧?

#20 楼 @knwang 我的意思是 payment 的网页看起来太简单了,建议把 html & css 在调整一下给用户一种 professional & rocksolid 的感觉。Never mind, 也许只是我个人精神分裂的表现,在教学讨论相关的页面很喜欢你们的简约,但是到了付费页面忽然又觉得太简陋了。

确认邮件已收到,付费过程很顺利。

#21 楼 @happypeter 谢谢反馈意见。我想是因为页面布局没有做好,我们开始的时候想试试 Liquid Layout 但感觉并不是很理想,准备换成 Responsive 的。看起来页面就没那么空了。

#9 楼 @ery

晕,你不知道你天天在用 mixed 吗 ?? (mixed 就是默认方式)

#12 楼 @fsword #9 楼 @ery #1 楼 @lgn21st #22 楼 @knwang

我想给楼上各位分享的是,除了 reset ,其实还有一个很有用的命令:checkout, 功能很类似 reset.

好吧,你们一定以为我在忽悠:

但是:git checkout 44abd17 我觉得不见得每个人都这样用吧。

如果你仅仅是希望恢复之前某个版本的某个文件,或者仅仅是希望自己手动比较两个版本的某个文件,这是一个很快捷而且感觉更保险的方式.

具体效果可以找一个 SHA1 值 checkout 去试试。任何时候,你都可以通过 checkout 回原来的分支,来取消原来所做的任何更改。

#24 楼 @zw963 checkout 不是取消的意思,是从版本库里面拿出来一个 tree,基本上对当前 branch 的 index 没影响,和 reset 是有些区别的

#24 楼 @zw963 为什么我们几个都被 AT 了呢?看不懂呀! 感觉把我们几个都低估了吧,还是高估了自己呢?

#26 楼 @lgn21st

你想到哪里去了。哈哈

还不是因为跟你们几个比较熟嘛!而且也经常一起讨论。

楼主我也比较熟了 但是我没有 @, 那是因为他发的帖子,肯定能看得到。

@ery @knwang @fsword

你们不会都这样想的吧?

#26 楼 @lgn21st

好吧,我承认,我回复这个帖子的初衷是:连我自己都觉得 checkout 这样的用法很奇怪。

还是那句话:大多数人应该都是用 checkout 来 切换到 分支 或者 co 出 index 的内容的吧 ?

这个很容易能看懂,但是我很怀疑,真的很多人这样用吗?

#27 楼 @zw963 我以为是找人确认正确性的

#29 楼 @fsword

没有,就是随便讨论下。

其实 checkout 和 reset 太像了 (我记得男人里说:checkout 就是用 reset 来实现的), 你在#24 楼 说的几乎是我所了解的 co 和 re 的唯一的差别了。

有时候想在之前的某个 commit 之上创建实验性分支,与其先想分支的名字,然后创建并且换到分支,再 reset --hard 到那个状态,不如 直接 co 到 那个 分支,想怎么改怎么改,改的差不多,觉得有留下的必要,然后 co -b 到一个新的分支。

至少在这种场景下,co 比 reset 的效果要好。而且,还有个好处,就是你说的,他不会让你 index 里面的东西丢失,因为 index 如果有东西,co 是不会成功的。这样也更安全。

#30 楼 @zw963

强烈建议 @zw963 同学读下这篇文章后写篇总结 :) http://git-scm.com/2011/07/11/reset.html

#31 楼 @knwang

太长了,还是 E 文,有空再看,哈。

不过那个标题很好:local-branching-on-the-cheap 我觉得还应该加个副标题:local-commit-on-the-cheap-too

我计划养成个习惯,写三行代码就提交个 commit, 记录下自己的思路。

#32 楼 @zw963 记得回头 interactive rebase 就好

#32 楼 @zw963

我计划养成个习惯,写三行代码就提交个 commit, 记录下自己的思路. 支持

#33 楼 @knwang

是啊~ 呵呵. 不过最坑爹的是:英文太差劲,用 E 文完全表达不出自己的想法,只能是一些无用的简单词汇,可是纯粹用中文 , 又不甘心...

#35 楼 @zw963 和你的团队统一就好

#34 楼 @happypeter 三行就 commit,并不难,难得是写出合理的 message。

#37 楼 @ery 确实 message 是很要注意的,不过我这里的“小”commit 最后是要合并成”大“commit,然后才会发布。

#38 楼 @happypeter 明白,我的习惯是,只要我新写的代码能够通过 test 我就 commit,我喜欢频繁的 commit。当然,最后也会合成一个大的 commit。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号