几个有用的git命令

由于git分布式版本管理系统相比subversion对于大型的项目开发更具被优势, jboss as 7/eap 6已经全面采用git来进行源码管理,您可以在 https://github.com/jbossas/jboss-as 查看 jboss as的源码以及修改历史,也可以通过阅读《玩转 JBoss AS 7》(http://jbosscn.iteye.com/admin/blogs/1037260) 来了解如果 clone jboss as源码到本地并进行编译以及贡献您的代码到jboss as 7中。

通过一段时间对git的学习和使用,有几个有用的 git 命令和大家分享。

1. git branch -avv
    -vv 能显示当前本地 branch 对应的 origin branch,以及最后一次提交的信息。

    -a 为显示所有的branch,包括本地branch以及远程branch。

    一起组合的时候,能让你清晰的了解当前所有的branch信息。

2. git remote show origin
    显示 origin 的详细信息,包括了branch track 的信息。

3. git push -u /--set-upstream
    首次push的时候,会设置自动将远程branch作为默认的 push branch,但并不会作为默认的pull branch,所以直接输入 git pull 的时候,会有出错提示。
    那么,可以在再次push的时候,加上-u 或者--set-upstream,则会将默认的push branch同时设置为pull branch,这样,该remote branch就成为了 tracking branch,之后就可以直接输入 git pull 来更新本地branch了。

4. get pull --rebase

    git pull将远程branch更新到本地,如果远程branch有更新,则会和当前branch做merge。一般来说merge并产生不友好的commit信息,当你再次push到git服务器上之后,会给其他的合作开发人员带来极为麻烦的合并。--rebase则会在git pull 之后以远程分支为基本来应用本地的更新,生成的更新记录则会更友好。

5. git rebase --onto master server client
    如果没有 --onto master,是将 client 以 server 为基准进行rebase,即将client对server的共同祖先的改动接到server的HEAD上,有了 --onto master,则是将这个改动接到 master的HEAD后面。在同时开发多个分支,并且在需要应用某些不是以 master 为基础创建的分支的时候,特别有用。

6. git archive

    git archive 用来方便的将git repo某个快照打包。

    打包成gzip:

    git archive master --prefix='project/' | gzip > project.tar.gz

    打包成zip:

    git archive master --prefix='project/' --format=zip > project.zip

    打包成tar:

    git archive master --prefix='project/' --format=tar > project.tar

     master可用任何一个branch或者commitId替换。

要想全面了解git的特性和使用,可以参考《Pro git》一书。

猜你喜欢

转载自jbosscn.iteye.com/blog/1543039