1.git status 查看文件和文件夹在工作区、暂存区的状态
    git diff可以查看修改内容
    2.HEAD指向的版本就是当前版本

    因此,Git允许我们在版本的历史之间穿梭,可使用命令git reset —hard commitid。
    穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
    要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

    · git reset —hard commit_id
    · git log
    · git reflog


    3.当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令
    git checkout –- 撤回上一次修改

    当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD 撤回添加至暂存区的修改,第二步见上。

    4.如果确实要从版本库中删除某文件,那就用命令git rm删掉,并且git commit。

    文件删错了:git checkout — test.txt其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

    5.查看分支:git branch
    创建分支:git branch
    切换分支:git checkout 或者git switch
    创建+切换分支:**git c**heckout -b 或者git switch -c
    合并某分支到当前分支:git merge
    删除分支:git branch -d

    合并分支时,加上—no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并。

    git push github master(可替换成其他分支)
    git push gitee master

    git clone git@github.com:Stray-dog/__.git
    **git clone git@gitee.com:Straydogs/__
    .git

    6.修复bug分支:
    <1>git stash 把当前工作现场“储藏”起来,等以后恢复现场后继续工作
    <2>git stash list
    stash@{0}: WIP on dev: f52c633 add merge
    <3>一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
    另一种方式是用git stash pop,恢复的同时把stash内容也删了。

    <4>你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令
    git stash apply stash@{0}
    <5>git commit -m “fix bug 101”
    [issue-101 4c805e2] fix bug 101
    将修改复制到dev分支:
    git branch
    *
    dev
    Master
    $ git cherry-pick 4c805e2

    总结:
    (1)修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
    (2)当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场;
    (3)在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick 命令。


    (feature-vulcan分支还没有被合并,如果删除,将丢失掉修改,如果要强行删除,需要使用大写的-D参数)

    7.多人协作:
    创建远程gitee的dev分支到本地
    git checkout -b dev gitee/dev
    然后可以在dev上继续修改,然后,时不时地把dev分支push到远程

    总结:
    1.首先,可以试图用git push gitee 推送自己的修改;
    2.如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;(提交冲突)
    3.如果合并有冲突,则解决冲突,并在本地提交;(合并冲突)
    没有冲突或者解决掉冲突后,再用git push gitee 推送就能成功。
    5.如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,
    用命令git branch —set-upstream-to gitee/


    补充:
    查看远程库信息,使用git remote -v;
    本地新建的分支如果不推送到远程,对其他人就是不可见的。



    rebase操作可以把本地未push的分叉提交历史整理成直线;
    rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。


    8.标签
    · 命令git tag 用于新建一个标签,默认为HEAD,也可以指定一个commit id;eg:git tag v0.9 f52c633
    · 命令git tag -a -m “blablabla…”可以指定标签信息;
    · 命令git tag可以查看所有标签。