hub 是一个命令行工具, 高度集成 git, 顺便加了一些 github 的操作, 所以:
安装: brew update && brew install hub
别名: alias git=hub
卧槽, 为什么别名那个看着那么屌, 直接这样真的好么? 我第一眼看到我也有点蛋疼, 犹豫该不该.其实完全没有问题, 不用担心, relax~~~~, 顶多换了个机器有一些命令没法用而已, 但是原生的 git 命令是完全兼容的.
提一句, windows 貌似不适用, linux 和 OS X 可以尽情享用.
快速打开某个项目的 github 页面: git browse falood/maru
, 注意这里是起过别名的 git. (我就是我是不一样的 git) 说实话这样挺爽, 特别是我经常要看几个项目的代码, 这样简直爽, 就是爽, 嗯, 爽.
clone 一个项目: git clone falood/maru
, 看到没, 看到没, 不用输那么一长串地址了, 虽然平时使用也不输, 只是复制而已, 但是这样比复制还快啊
fork 一个项目, 然后进行 fork based development:
git clone falood/maru cd maru git fork
4不4很方便? 但是如果要用提 pr 的方法来进行开发的话还需要改个东西, 如果上面的命令你都敲了, 现在打开项目下的一个文件, 叫 .git/config
, 打开后长这样:
[core] some code [remote "origin"] url = git://github.com/falood/maru.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master [remote "Cifer-Y"] url = git@github.com:Cifer-Y/maru.git fetch = +refs/heads/*:refs/remotes/Cifer-Y/*
一般情况下, fork 代码之后要指定一个 upstream, 来获取原项目的更新, 要把上面 [remote "origin"]
改成 [reomote "upstream"]
, 最后把 [remote "Cifer-Y"]
改成 [remote "origin"]
就好了.
然后就可以写代码了, 写完之后想给原项目作者提 pr 怎么办, 这样:
git pull-request -b falood:master -h Cifer-Y:master
给不想看文档的人简单说一下, -b 后面的是你 pr 的目的地, -h 后面的是你要提的东西所在的分支
新建一个 github repo:
git init new_repo cd new_repo echo "What's wrong?" >> README.md git add . git commit -m "relex~~~~~" git create git push -u origin master git browse
这段操作太基本, 我就不一一解释了
还有很多有用的命令, 请运行 man hub
大半夜玩 hub 玩的不亦乐乎, 其实我觉得上面那几个用法足够日(小)常(白)使用了, 但是还有很多很屌的高级功能, 比如从别人的 fork 里 cherry-pick 一个 commit 放到自己的项目里...这种就等用到了再学吧