关于 Git 你所不知道的一些事 已翻译 100%

oschina 投递于 2014/05/26 06:20 (共 1 段, 翻译完成于 05-26)
阅读 6876
收藏 141
Git
6
加载中

上周五我由于使用了git reset --HARD <commit-id> 而使得我丢掉了我的提交(糟糕透顶),因此,我决定是时候重新学习一下git了。

这篇文章讲的不是git基础的一些东西,而是那些你不知道或者只用过一两次的东西。

  1. 从 reset --HARD 中恢复提交
    使用 git reflog 命令就好了.
    (由 Gittenberg 提供)

  2. Diff
    如果你想查看两个分支之间有什么不同之处,你只需要这样做:git diff branch1..branch2。

  3. 通过正则表达式匹配提交信息并显示
    使用 git show :/fixes 命令,你可以找到提交信息中包含传入的字符串(这个例子中是fixes)的最近的提交。

  4. 限制 git push 的默认行为
    如果你运行git push,默认的行为是将所有的分支提交到远程代码库。这可能会导致很多问题,如果你不想这么做,你可以:git config --global push.default tracking。
    更新: Git 2.0 移除了这个默认的行为 http://blog.nicoschuele.com/posts/git-2-0-changes-push-default-to-simple

  5. 切换到一个分支 rebase 并 merge 到 master
    可以这样做:git rebase HEAD feature && git rebase HEAD @{-2}

  6. Git 保存工作状态 
    如果由于你的工作还没有完成,但此时又有紧急的事找上你,你可以使用 git stash 来保存这些修改,提交你紧急的任务,之后再用 git stash pop 恢复到你保存时的状态。

  7. 别名 
    你还在为一次又一次的输入 checkout 而感到讨厌吗?现在就去尝试:git config --global alias.co checkout。你就可以通过:git co master 命令来切换到master了。

  8. 重命名一个本地分支
    使用:git branch -m old-name new-name 你可以很容易的重命名一个本地分支。

  9. 搜索作者名称 
    你可以通过使用git log --author=Matheus 来搜索一个指定作者的提交记录。

  10. 给git status 加上参数
    大多数人仅使用git status,但是,你可以传入参数来改变状态显示的方式。
    使用git status -sb 你可以得到类似下面这样的输出:

## master
 M Gemfile
 M Gemfile.lock
 M app/controllers/home_controller.rb
 M app/views/home/index.html.erb

参考资料

yuezk
翻译于 2014/05/26 09:33
2
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(17)

打一把
打一把

引用来自“Sprieo”的评论

我搞不明白,21世纪都过了13年多了,为啥还有人喜欢用命令行?

引用来自“Scholes”的评论

你不懂就对了,命令行有时候比图形界面要方便,几行命令,甚至是定时任务,都是极其方便的事
好吧,鉴于你说“有时候”,我就原谅你了。仅仅是有时候而已。
S
Scholes

引用来自“Sprieo”的评论

我搞不明白,21世纪都过了13年多了,为啥还有人喜欢用命令行?
你不懂就对了,命令行有时候比图形界面要方便,几行命令,甚至是定时任务,都是极其方便的事
00_静笃_00
00_静笃_00
学习了
打一把
打一把
我搞不明白,21世纪都过了13年多了,为啥还有人喜欢用命令行?
打一把
打一把
sb...
restmad
restmad
sb...
maskwang
maskwang
sb...
赵开锦
赵开锦
sb...
skft
skft
-sb。。。
黑传说
黑传说
不建议用 ``git status -sb`` 因为 ``git status`` 的输出更可读:

## master
modified: Gemfile
返回顶部
顶部