您的位置:首页 > 其它

Git 常见的一些小命令

2016-11-01 10:35 232 查看
Git 常见的一些命令

    关于一些参数比较多,比较复杂的都有单独进行介绍

1. git cherry-pick

    挑拣命令,当我们不想合并分支,或者git pull 更新仓库,而是想把其他分支或他人的某一个或多个提交拉到我们本地,那么此时我们就可以使用这个挑拣命令了

    使用形式如 git cherry-pick commit-id,如果有冲突,手动解决即可

  2. git status

    查看状态,显示有变更的文件,可以说是最简单也是最常用的命令了,可以将工作区修改的文件以及提交到暂存区的文件都显示出来。

  3. git init

    初始化仓库,配合git clone使用,先使用git init初始化一个目录,之后在这个目录下使用 git clone 将某个仓库克隆下来

  4. git config -l 查看配置清单

      配置时git config --global选项,读写的是~/.gitconfig文件:此用户目录下的配置文件只适用于该用户

      git config --system选项,读写的是/etc/gitconfig文件:系统中对所有用户都普遍适用的配置

    4.1 git config --global color.status auto && git config --global color.branch

      为终端配置高亮

    4.2 git config --global user.name " "

      修改用户名

    4.3 git config --global user.email ""

      修改email

    4.4 git config --global core.editor vim

      在git commit 的时候就会调用我们设置的文本编辑器

    4.5 git config --global alias.co checkout

      给命令设置别名,这样 git co就等于 git checkout

  5. git tag 列出所有tag

    5.1 git tag [tagname]

      为当前commit新建一个tag

    5.2 git tag [tagname] [commit-id]

      指定为某个commit新建一个tag

    5.3 git tag -d [tagname]

      删除本地tag

    5.4 git push origin:refs/tags/[tagname]

      删除远程tag

    5.5 git show [tagname]

      查看tag信息

    5.6 git push [remote] [tag]

      提交指定tag

    5.7 git push [remote] --tags

      提交所有tag

  6. git log 查看版本历史

  7. git shortlog -sn 统计仓库内每个用户的提交次数

  8. git reflog 显示当前分支的最近几次提交

    可以配合git reset 进行版本回退,两者组合是git中的后悔药

  9. git pull 更新代码

    实际上相当于 git fetch 和 git merge

    git fetch remote //remote是地址,下载远程仓库里的所有变动

    git merge 合并分支

  10. git revert

    对于已经merge的代码,我们想取消这一版提交,使用git revert 这个命令是生成一版与此提交相反,可以完全抵消这次提交的代码,

    它与git reset的区别在于git reset是删除一版未被merge的提交,git revert是生成一个新的提交来抵消一个已经被merge的提交

  11. repo 命令

    11.1 repo sync

      更新仓库,是对git pull的封装,是对所有仓库有效,参照清单文件.repo/manifest.xml克隆并同步版本库,如果某个版本库尚不存在,则执行repo sync命令相当于执行git clone,如果项目版本库已经存在,则

      相当于执行这两条指令,git remote update:相当于对每一个remote源执行了fetch操作; git rebase origin/branch:针对当前分支的跟踪分支执行rebase操作

    11.2 repo init

      git init 初始化的是单个仓库,repo init初始化的是整个版本库或项目

      repo init -u ssh://igerrit.storm:29418/Src/17Model/17Cy/manifest -b 17CY/MileStone/T0_Stable 按照指定地址里的manifest清单初始化仓库 -b 之后跟分支,表示的是远程分支,-u 指定一个远程地址,

      这一步比较快,之后repo sync更新代码,再之后执行 repo start master --all ,将所有分支都切换到master,这一步是必须的,初始化仓库之后需要切分支 ,因为刚克隆下来的代码是没有分支的,在没有分

      支的时候进行的修改可能保存不了

    11.3 repo start

      repo start master --all,repo start是对git checkout -b的封装,创建并切换分支,区别在于repo start是在清单文件设定分支的基础上创建特性分支,git checkout是在当前所在分支的基础上创建特性分支

    11.4 repo forall -c

      repo forall -c git gc,使用时形如左式,-c 之后跟shell指令,这种形式的命令可以对版本库中的所有仓库起作用,git gc即是垃圾回收命令

      当git仓库使用时间很长之后会有许多碎片和垃圾,repo sync的时候会比较慢,此时就可以使用这个命令来进行优化

古之成大事者,不惟有超世之才,亦必有坚韧不拔之志
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: