git仓库本地操作命令介绍
1、git config
在刚刚安装好git后需要做一下配置
git config --global user.name <your name>
git config --global user.email <your email>
除了--global,还有--local和--system,前者只针对当前仓库,后者针对整个系统的所有用户,这两者不常用。
使用--list可以查看配置信息。

2、git init:
初始化本地仓库,会在当前目录下生成一个.git目录,该目录中记录了git仓库的相关信息。


3、git add:
向git仓库中添加本地文件,此时添加信息存放在暂存区矿舍。git有一个暂存区用来保存用户添加但是还没有提交的信息。一旦提交,就将暂存区的内容合并到仓库中。
4、git status:
查看当前分支的操作状态。如果只修改没有添加,使用此命令可能看到红色的提示信息,如果使用了add命令,可能会看到绿色的提示信息,具体颜色可能与系统或终端的不同而不同。

5、 如果此时没有提交,又修改了文件的内容,则两次修改的信息都可以通过status命令查看到

6、git diff:
查看当前修改和暂存区的不同
git diff --cached :
查看暂存区与当前分支的不同
对于此二者的不同,我们需要知道在git中有三个区域保存下面三种状态的文件:
修改未添加
修改已添加
提交
git diff是前两个的比较,git diff --cached是后两者的比较。下图通过一个实验进一步证实:
我们分别作了两次修改,第一次修改增加了一条printf(“world\n”);语句并且进行了add操作躲霜,第二次修改增加了一条printf(“git\n”);语句,没有进行add操作。

7、git commit -m '<对此次提交的描述信息>':
提交修改,-m参数表示后边要添加说明信息,此时修改就合并到了当前分支中。

8、git log:
查看提交信息,提交信息中会显示提交的唯一id、提交的作者和日期以及提交时附加的描述信息。

9、git reset <HEAD^ or hashID>:
撤销上一次操作或将HEAD指向指定的hashID值记录处。HEAD^表示回退一步。这种方式HEAD指针真实的向后移动了。
另外如果使用--hard参数,则HEAD指针反而前进了一步,这种方式可以理解为将制定的记录完全复制到了新的下一个节点处。


10、git show <hashID>:
显示指定hashID提交的详细信息

11、git branch :
显示已有的分支
git branch <branchname>:
创建新分支
git branch –D <branchname>:
删除分支,此时必须位于其他分支
git branch –a :
显示本地与远程的所有分支


12、git checkout <分支名>:
切换分支

13、git merge:
合并分支,在当前分支上创建新节点,快照两个分支的内容并合并。
下面举例说明:
merge前在master分支新建了max.c文件,在b1分支新建了min.c文件,在b2分支新建了isequal.c文件。
首先将在master上merge b1,之后merge b2,最后分别在三个分支继续进行开发,分支示意图如下所示。




14、git reflog:
管理reflog信息,显示沟购辞所有改变HEAD指针的操作记录及其hashID。记录了所有在本仓库的操作记录。

15、git rebase <指定的分支>:
将当前分支变基到指定的分支。
举例如下所示:
在master分支新建文件ahrs.c ,在b1新建ahrs_1.c,在b2新建ahrs_2.c。分别在b1分支和b2分支做基于master的rebase操作。


16、git stash = git stash save:
将当前分支的修改暂存,当前仓库恢复到最近一次提交状态。
git stash pop:
将上一次stash save的内容恢复。
17、git format-patch -n <id>
将<id>及之前n次的提交打patch,当n=1时就是当前id的提交;
git apply --stat xxx.patch
查看patch
git apply --check xxx.patch
检查patch
git am --signoff < xxx.patch
应用patch,即打patch到当前工程