##Git 是什么?

Git的官方定义:

Git 是一个免费开源的分布式版本控制系统,被用于高速有效地处理大大小小项目中所有文件。


#Git 常用的命令行


说明:<必选> [可选]

创建仓库 Create

  • 从已有的文件

    cd ~/project/myproject
    git init
    git add

  • 从已有的仓库

    git clone ~/existing/repo ~/new/repo 
    git clone you@host.org:dir/project.git
    
  • 为已有的本地数据文件创建远程仓库

    mkdir repo.git & cd repo.git

    git init –bare[–shared=group]

浏览 Browse

  • 工作目录中所有发生变化的文件

    git status

  • 已经纳入版本管理的文件所发生的变化

    git diff

  • ID1ID2之间发生的变化

    git log

  • 变更的历史

    git log

  • 查看带文件修改记录的变更历史

    git watchanged

  • 谁在什么时间修改了文件中的什么内容

    git blame

  • 查看特定变更的ID的更新细节

    git show

  • 查看特定变更ID中的特定文件的变更细节

    git diff :

  • All 所有的本地分支

    git branch //带有“×” 标记的是当前分支

  • 按模式搜索

    git grep [PATH]

分支 Branch

  • 切换到分支 BRANCH

    git checkout

  • 把分支B1合并到分支B2

    git checkout
    git merge

  • 在当前的HEAD分支上创建一个分支

    git branch

  • 在其他的分支BASE上创建一个新分支 NEW

    git checkout

  • 删除

    git branch -d

更新Update

  • 从远端 origin 中获取最新的变更记录

    git fetch //不会进行合并操作

  • 从远端 origin 中获取最新的变更

    git pull //获取变更之后会进行合并操作

  • 应用别处获得的补丁

    git am -3 patch.mbox
    //如果发生冲突,解决之后运行下面的命令
    git am –resolve

    发布Publish

  • 提交所有本地修改

    git commit -a

  • 给他人准备一个补丁

    git format-patch origin

  • 把变更发布到远端origin

    git push [REMOTE] [BRANCH]

  • 标记一个版本或者里程碑

    git tag <VERSION_NAME>

    恢复Revert

  • 恢复到最后提交状态

    git checkout -f | git reset –hard

    //注意:无法撤消硬重置 (hard reset)

  • 撤消最后的提交

    git revert HEAD
    //会生成新的提交记录

  • 撤消特定的提交

    git revert
    //会生成新的提交记录

  • 修改特定的提交

    git commit -a –amend
    //在编辑了一个损坏的文件之后

  • 签出文件的一个特定的版本ID

    git checkout

    To be continue…