Git系列(1) ----单人本地库操作

1、Git 安装步骤:

1> 选择需要安装到的文件夹 
Git系列(1) ----单人本地库操作

2>关联右键菜单 

Git系列(1) ----单人本地库操作

 

3> 文件编辑器选择(保持默认)

Git系列(1) ----单人本地库操作

4> 命令行窗口选择 

Git系列(1) ----单人本地库操作

 

5>     通信方式    

Git系列(1) ----单人本地库操作    

6> 换行符(Linux LF替换windows CRLF) 

Git系列(1) ----单人本地库操作

 

7> 命令行窗口类型选择                                           

Git系列(1) ----单人本地库操作

8> 其他配置选项(保持默认) 

Git系列(1) ----单人本地库操作

 

9>推送到本地库时的新特性,可以提高速度(可以不选) 

Git系列(1) ----单人本地库操作

10> 完成安装,

Git系列(1) ----单人本地库操作

 

  1. Git 单人开发

1>创建文件路径,cd进入,执行git init初始化操作

Git系列(1) ----单人本地库操作

2>.git 文件夹放的是本地库相关的子目录和文件,不需要修改。
         Git系列(1) ----单人本地库操作

3>设置签名,分为项目级别/系统用户级别:
                   注册用户:[email protected]    git147258963

项目级别/仓库级别:仅在当前本地库范围内有效

                   git config user.name teammate_zs

                   git config user.email [email protected]

系统用户级别:登录当前操作系统的用户范围

                   git config --global user.name teammate_zs

                   git config --global user.email [email protected]

级别优先级:

                   就近原则:项目级别优先于系统用户级别,二者都有时,则采用项目级别的签                   名

                   如果只有系统级别的签名,就以系统用户级别的签名为准

                   二者同时没有,不允许。必须设置其中一个。

 

设置信息保存在config文件中:

Git系列(1) ----单人本地库操作

 

4>git status 查看状态,需要在项目目录下才可以使用:

Git系列(1) ----单人本地库操作

本地创建一个文件,再次使用 git status 来查看状态,新增未追踪文件显示为红色:

Git系列(1) ----单人本地库操作

使用 git add 对文件进行追踪后,显示为绿色,此时文件被提交到暂存区(可以撤回):

Git系列(1) ----单人本地库操作

如果认为此次add 操作有误,可以执行撤回操作:

git rm --cache text.txt

执行撤回操作后,此时文件状态重新变回到未追踪红色状态:

Git系列(1) ----单人本地库操作

 

从新提交到暂存区,并提交到本地库,中间会自动弹出输入界面,需要输入此次提交注释信息:

Git系列(1) ----单人本地库操作

Git系列(1) ----单人本地库操作

修改文件后,再次 git status 状态查看(仍然是红色提示,但是提示信息不同:modified):

Git系列(1) ----单人本地库操作

提交到暂存区:

Git系列(1) ----单人本地库操作

推送到本地库,可以使用-m 参数来指定此次的注释信息,不必弹出编辑界面:

Git系列(1) ----单人本地库操作

 

使用git log 可以实现git 版本的前进和后退,有多次提交版本的记录时,单屏显示不完时,使用空格来翻页,翻页结束后,可以按b来退出。

Git系列(1) ----单人本地库操作

默认显示详细信息,篇幅较大,可以使用 --oneline来显示精简信息,oneline有两种用法:git log --oneline  git log --pretty=oneline

Git系列(1) ----单人本地库操作

版本的前进和后退,有两种方式:

1> 使用版本号进行绝对定位

git reset --hard [770cd6--版本号)],切换到第三次版本后,本地内容已经发生来变更

Git系列(1) ----单人本地库操作

2>使用 HEAD^进行相对于当前HEAD指针位置进行相对移动:

Git系列(1) ----单人本地库操作

该种方式,如果需要一次移动多个版本号,每移动一个版本号,就增加一个^。

git rest --hard HEAD^^^  [相对于当前指针位置移动3个版本]

如果需要移动的版本比较多,则使用数字来进行指定需要后退的版本号:

git rest --hard HEAD~6  [相对于当前指针位置移动6个版本]

 

git reflog 显示全部的版本信息,git log --oneline 显示当前版本之后的所有版本,当前已经没有版本可以回退,使用git log --oneline 没有信息展示,但是 git reflog还是全量版本信息:

Git系列(1) ----单人本地库操作

 

git reset 的三种模式:--soft、--mixid、--hard,分别对应的操作为:

soft :仅仅在本地库移动HEAD指针

mixed:在本地库移动HEAD指针、重置暂存区

hard:在本地库移动HEAD指针、重置暂存区、重置工作区

 

当前版本指针指向最新的版本:

Git系列(1) ----单人本地库操作

使用--soft回退到上一个版本,显示为绿色,此时cat test.txt 查看文件内容,发现内容并没有发生变化,但是状态发生了改变了,实际是因为本地库中的状态发生了改变,和工作区中的状态不再一致导致:

Git系列(1) ----单人本地库操作

重新回到原始状态,使用mixed返回到上一个版本,显示为红色的原因同上,为本地库和暂存区的状态发生了改变,但是工作区的状态没有改变,他们的状态不一致导致:

Git系列(1) ----单人本地库操作  重新回到原始状态,使用hard返回到上一个版本,状态显示为未更改,因为虽然版本指针发生了改变,但是同时更改的是本地库、暂存区、工作区的指针,更改后仍然一致:

Git系列(1) ----单人本地库操作

 

git commit 操作之后,仍然删除了本地的文件,此时有两种可以进行的操作:

前提:创建另外一个文件wantDelete.txt,然后提交到本地库

Git系列(1) ----单人本地库操作

1.该文件确实需要删除,不只需要删除本地文件,还需要同时提交到本地库中:

Git系列(1) ----单人本地库操作

2.本地删除完之后,发现误删了文件,需要撤回删除操作(我称之为时空穿梭),不至于误删之后跑路,但此种操作有个前提,就是该版本已经提交到了本地库,否则神仙来了也回天乏术,只能委屈一下发际线,往后再退两公分,重新写一个版本了......

Git系列(1) ----单人本地库操作

文件的差异对比:

编辑wantDelete.txt 文件,删除一行,增加一行之后,使用diff对比该文件:

Git系列(1) ----单人本地库操作

git diff 后不跟文件名时,对比的是工作区中的所有文件差异:

Git系列(1) ----单人本地库操作

 

分支查看:

Git系列(1) ----单人本地库操作

分支创建:git branch sub_branch,此时两个分支版本号相同。

Git系列(1) ----单人本地库操作

         使用 checkout 来进行分支切换: git checkout sub_branch,绿色带*为目前所在的分支:

Git系列(1) ----单人本地库操作

本地修改文件并提交到本地库后,两个分支的版本号已经不同:

Git系列(1) ----单人本地库操作

同步到主分支:此时如果想要将 sub_branch上的做的分支同步到 master上,必须切换到master分支进行操作。

切换回到master分支并执行merge操作后,两个分支的版本号再次相同:

Git系列(1) ----单人本地库操作

版本的冲突处理:在主分支上修改了文件,并同步到本地库中:

Git系列(1) ----单人本地库操作

Git系列(1) ----单人本地库操作

Git系列(1) ----单人本地库操作

Git系列(1) ----单人本地库操作

然后,执行合并操作,该合并操作可以在切换到主分支上进行,也可以在当前分支上进行,区别就是,在哪个分支上进行merge操作,该分支上完成后,即为最新的文件:

Git系列(1) ----单人本地库操作

提示文件冲突:

Git系列(1) ----单人本地库操作

cat test.txt 进行文件查看:

Git系列(1) ----单人本地库操作

手动对该冲突文件进行修改,合并后(打开冲突的文件,删除多余的指示符,<<<<<<,>>>>>,=====。确定内容并编辑保存),使用git add 提交到暂存区:

Git系列(1) ----单人本地库操作

git add 提交之后,git status 仍然为冲突待合并状态:

Git系列(1) ----单人本地库操作

需要使用 git commit 进行提交,但是不能指定文件名:

Git系列(1) ----单人本地库操作

去掉文件名再次提交(完成后待合并的标示已经去掉):

Git系列(1) ----单人本地库操作