git 命令行版本的使用以及相关命令(本地仓库)

1、安装git

2、cd 切换目录到你的项目根目录下(项目根目录,懂什么意思吧?)

3、在项目的根目录下,使用git init命令创建该项目对应的git初始化配置文件(该项目对应的git初始化配置是在项目根目录下的隐藏目录.git下)

4、使用git config 配置签名(即作者名与作者邮箱,这样在git本地库中就可以知道是谁提交的),有两种情况:

注意:(1)与(2)必须存在至少一个。当(1)与(2)共存时,优先使用(1)中的签名。如果没有(1),则使用(2)中的签名

(1)基于当前项目的签名

在项目根目录下使用两条命令设置签名

      git config  user.name  作者名

      git config user.email   作者邮箱

通过这两条命令设置完签名,之后在该目录下添加/修改的文件都会被标识为  这个签名,即

其中 tom_pro是我设置的作者名,[email protected]是我随意设置的邮箱,这两者构成了Author,标识我是提交这段文件的作者。

标识可以在该项目根目录下的.git/config文件中看到。如图:

git 命令行版本的使用以及相关命令(本地仓库)_第1张图片

(2)全局签名

全局签名是基于当前操作系统所登录的用户的。这里看不同没关系,继续往下看。

在任何目录下使用两条命令设置全局签名:

       git config --global user.name  作者名

       git config --global user.email   作者邮箱

该签名的意义与(1)中的一样,只不过是当(1)中的签名不存在时才会使用全局签名。

该签名在当前用户的工作目录下(使用cd ~进入)的.gitconfig文件中配置。如图:

git 命令行版本的使用以及相关命令(本地仓库)_第2张图片

5、git把文件从工作区添加到暂存区中

工作区:我们直接操作的项目文件所在的区域。

暂存区:暂时存储git将要提交的文件。作用在于:可以反悔,撤销添加。

本地存储库:从暂存区中提交文件到本地存储库,此时无法撤销提交,每次提交到这的文件都会存储,只不过是不能版本而已。

这一步的使用:

使用以下命令:

git add  工作区中的文件

可以把当前项目下的指定文件添加到git暂存区中。

6.git把文件从暂存区中提交到本地存储库中

使用

git commit 暂存区中要提交的文件

提交后无法撤销,会在git中生成一个版本。。该文件以前就存在的,会变为历史版本存在,也还是可以访问到的。

7.查看git状态

在项目根路径下使用git status命令可以查看当前项目的git状态, 会提示是否 新建的文件、修改过的文件

(1)如果使用git status查看到的文件是红色的,说明工作区的文件与暂存区的文件不一致。。即:可以使用git add filename  把文件从工作区添加到暂存区。

(2)如果使用git status查看到的文件是绿色的,说明工作区的文件与暂存区的文件一致,但暂存区文件与本地库指针当前指向的版本不一致。。。即:可以使用git commit filename 把暂存区文件提交到本地库中。

8.查看git日志

使用git log可以查看日志,日志其实就是之前每次commit的数据,不过有个缺点,就是日志太长了。
使用git  reflog 查看日志不仅可以更简短,而且还可以查看到head指针,以此来知道怎么访问历史版本。

9.版本回退与前进版本

先讲讲reset的参数,有三个hard  soft  mixed

soft:仅仅移动HEAD指针,不会对暂存区、工作区进行任何操作。 

mixed:会移动HEAD指针,一会清除暂存区,不会影响工作区。

hard:移动HEAD指针,清除暂存区,把指定版本的数据覆盖工作区。

《1》使用索引值

          (1)git reset --hard  索引值

              作用:索引值指定版本数据会覆盖原来本地文件,并清空暂存区。

                根据索引值既可以回退,也可以前进。

            (2)git reset --soft  索引值

《2》使用^符号

           git reset --hard HEAD^     表示从当前版本回退一个版本

           git reset --hard HEAD^^     表示从当前版本回退两个版本

           也就是说,有多少个^,就表示从当前版本回退几个版本

《3》使用~符号

        不用像^一样根据^的数量来指定回退多少个版本,通过~符号加数字就可以指定回退多少版本。

        git reset --hard HEAD~3  表示从当前版本回退3个版本

        git reset --hard HEAD~4  表示从当前版本回退4个版本

    建议:还是用索引值方式方便,另外两种方式还是要到日志中数一下要几个版本....

10.删除文件找回

前提:被删除文件在上一个版本已经被提交到本地库中了,如果没有达到该前提,则不能找回了。

回退到上一个版本就OK了,这样就可以找回上个版本的东西,不过要小心当前工作区被覆盖

11.和本地库比较文件(增加了什么,删除了什么)

git diff filename    表示 工作区中filename文件与暂存区中的filename文件进行比较,会显示出哪些行是增加的,哪些行是删除了的。

git diff HEAD^ filenme  表示与本地库中相应版本比较,HEAD^的作用就不解释了,会显示出哪些行是增加的,哪些行是删除了的。

12、分支操作

(1)创建分支

git branch 分支名

使用上面的命令则会创建名字为指定名的分支(其实就是复制一份仓库里面的所有版本数据到该分支,无论怎么操作这个分支,都不会影响原来的master分支)

(2)查看所有分支

git branch -v

如图所示,分支名前面带*号则表示当前所处的分支是哪个。

(3)切换分支

git checkout 分支名

切换到指定分支名的分支,没啥好说的。

(4)合并分支

首先,当前分支要切换到要被合并的分支上。

比如,有master与hot_fix两个分支,其中,hot_fix要合并到master上,那么当前分支就需要切换到master,合并后hot_fix分支就消失了。其实原理与提交到本地库类似。

命令:git merge 分支名

比如:使用git merge hot_fix,当前处于master分支,那么意思就是把hot_fix分支的内容合并到master上

(5)解决合并冲突问题

什么是合并冲突?意思就是,合并的两个分支中,同一个文件的同一行在不同分支中都被修改了,此时就会出现合并冲突。

当出现冲突时,冲突所在位置的文件会变为如下图所示:

git 命令行版本的使用以及相关命令(本地仓库)_第3张图片

这就需要用户自己手动选择或者修改自己想要哪个分支的了(别忘了把git冲突标记符号删了,即<<<<<<<< =========>>>>>>>>)

具体解决冲突的步骤如下:、

git 命令行版本的使用以及相关命令(本地仓库)_第4张图片

 

 

 

你可能感兴趣的:(git&github)