git 命令小结

1. git init 

    说明:
        把这个目录变成Git可以管理的仓库
    示例:
        $ git init
        Initialized empty Git repository in /Users/michael/learngit/.git/


2. git add <file> 
    说明:
        提交所有改动到暂存区
    参数: 
        -A 提交所有

3. git commit
    说明:
        提交所有暂存区改动至当前分支下
    参数:
        -m "提交的注释内容"
        -a add所有修改到暂存区后,再做commit操作,注意不包括新增加文件。
    示例:
        git commit -a -m "提交BUS路由寻址重构"

4. git status
    说明:
        查看当前状态

5. git diff
    说明:
        显示工作区与提交区的不同,两个文件的不同等。
    参数:
        git diff <某个版本号> <某个版本号> <file> 对比两人个版本号的不同

6. git log
    说明:
        命令显示从最近到最远的提交日志,
    参数:
        --pretty=oneline 表示一行显示日志

7. git reset
    说明:
        把当前版本回退,也可以把暂存区的修改回退到工作区。
    参数:
        --hard <commit id>
    特别说明:
        HEAD 表示当前分支下当前版本,HEAD^ 表示上一版本,HEAD^^ 表示上上版本,HEAD~10 表示向上第10个版本

8. git reflog
    说明:查看命令历史,可以查看回退后的未来版本,

9. git checkout -- <file>
    说明:把修改撤销回到最近一次git commit或git add时的状态。注意:--表示撤销,不带--表示创建一个新分支的命令
    示例:
        场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
        场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

10. git rm 
    说明:
        从版本库中删除该文件,使用git rm删掉,再用git commit

11. 创建ssh-key
    示例:
        $ ssh-keygen -t rsa -C "youremail@example.com"

12. git remote
    说明:
        与远程服务器操作,无任何参数时,查看远程库列表
    参数:
        add <远程名称,如origin> <ssh:git,远程地址> 本地关联远程的库
    示例:
        git remote add origin git@server-name:path/repo-name.git

13. git push
    说明:
        提交修改到远程服务器
    参数:
        -u 本地与服务器关联后,第一次提交,需要加上-u参数
        <远程名称> <分支名称> 按远程地址和分支名称提交
    示例:
        git push -u origin master
        第一次推送master分支的所有内容,此后,使用命令git push origin master推送最新修改

14. git clone
    说明:
        远程库的克隆

15. git checkout -b <新分支名称> <关联到远程分支:origin/dev>
    说明:
        创建并切换到<新分支名称>
    示例:
        git checkout -b dev
        相当于下面两条命令
        git branch dev
        git checkout dev

16. git branch 
    说明:
        列出所有分支,当前分支前会标记一个*        
    参数:
        <新分支名称> 创建新分支
        -d <分支名称> 删除分支
        -D  <分支名称> 强制删除分支,放弃修改
        --set-upstream-to <本地分支:dev> <远程分支:origin/dev> 把本地分支关联到远程分支

17. git checkout <分支>
    说明:
        切换分支

18. git merge <被合并分支>
    说明:
        分支合并,把<被合并分支>合并到当前分支来,默认使用ff模式
    特别说明:
        Fast-forward合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。    这种模式下,删除分支后,会丢掉分支信息。即无法看到分支的log信息等。    
        --no-ff方式,是指强制禁用Fast-forward方式,这样分支信息也会被合并到当前分支。
    示例:
        git merge --no-ff -m "merge with no-ff" dev

19. 冲突解决--conflict
    说明:
        分支合并时,发生的冲突,git无法执行“快速合并”,只能试图把各自的修改合并起来。若自动合并发生了冲突,必须手动解决冲突后,再提交,再合并。

20. git stash
    说明:
        把当前工作现场”储藏“起来。一般用于你想跳转到其他分支,但又不想提交当前分支的代码。
    参数:
        list 查看当前分支下的stash的列表
        apply 恢复
        drop 删除
        pop 恢复的同时,把stash内容也删除了
    示例:
         git stash pop
         提取最近一个stash,并清除当条stash
         git stash pop stash@{0}
         提取stash@{0},并清除

21. git tag
    说明:
        标签操作,不带参数时,可查看当前分支的所有标签列表
    参数:
        <tagname> 对当前版本打上标签
        <tagname> <commit id> 给<commit id>的历史提交操作打上标签
        -d <tagname> 删除标签



22. git show
    说明:
        显示最新一次提交的详情
    参数:
         <tagname> 查看标签信息

23. git push <远程名称> <tagname>
    说明:
        把标签<tagname>推送到<远程名称>
    参数:
        --tags 一次性推送全部尚未推送到远程的标签
        <远程名称> :refs/tags/<tagname> 删除一个远程标签
    示例:
        git push origin --tags
        推送所有未推送的标签
        git push origin :refs/tags/<tagname>
        删除一个远程标签

原文地址:https://www.cnblogs.com/tonyIt/p/4500330.html