命令 #
命令-设置用户签名
- 查看
git config user.name
git config user.email
- 设置
git config --global user.name ly001
git config --global user.email xxx@xx.com
- git的配置文件查看
- 作用:区分不同操作者身份,跟后面登陆的账号没有关系
- 查看
初始化本地库
git init
多出一个文件夹
查看本地库状态
git status
默认在master分支
- 新增一个文件
vim hello.txt
- 此时查看本地库的状态
untracketd files 未被追踪的文件,也就是这个文件还在工作区
添加暂存区
git add hello.txt
LF 将会被替换成 CRLF,windows里面是CRLF,也就是说
这个
换行符自动转换
会把自动把你代码里 与你当前操作系统不相同的换行的方式 转换成当前系统的换行方式(即LF
和CRLF
之间的转换)这是因为这个hello.txt是使用
vm hello.txt
在git bash里面添加的,如果直接在windows文件管理器添加一个文件(hello2.txt),就会发现没有这个警告,因为他已经是CRLF了 (为了和视频保持一致,git rm –cached hello2.txt 后删除这个文件)查看当前状态,绿色表示git已经追踪到了这个文件
文件已经存在于暂存区
使用
git rm --cached hello.txt
可以将文件从暂存区删除 使用后,文件又出现在工作区了(未添加)
提交本地库
git commit -m "first commit" hello.txt
会出现一些警告,以及此时提交的修改和生成的版本号(前七位)git status
使用git reflog查看引用日志信息 git log 查看详细日志信息
修改命令
前提,修改了文件
git status
红色表示git还没有追踪到这个修改,如果此时commit ,会提示没有需要commit的
使用git add hello.txt 将文件修改添加到暂存区 之后git status
注意,这里如果提交到暂存区之后,使用git restore是无法恢复文件的
git restore --staged <file>..." to unstage
使用这个命令丢弃这个文件的commit操作几个命令的区别:
- git restore file 的命令是丢弃你在工作区修改的内容,(修改的内容会丢失)
- git restore –staged file 丢弃你在工作区的修改不被 commit 。但是你的修改依然在工作区。
- git rm –cached file和git restore –staged file 效果好像一样,这里不做更进一步的分析
回到最初,这里主要是为了看修改,如最上面,将第一行后面添加了22222
commit 之后的提示,删除了一行,添加了一行(修改的另一种说法)
如果,HEAD -> master ,指针指向了第二个版本
这里再做第三次修改,并add 及commit
查看工作区,永远只有最后那次修改的文件
版本穿梭
git reflog和git log
回顾:hello.txt先是5行,然后第一行加了2,之后第二行加了3
使用git reset –hard 版本号进行穿梭,这里多了一行,是因为我复制的时候复制粗了版本号
使用cat 查看,发现文件已经在另一个版本
查看.git的一些文件
说明目前是在master这个版本上 下面这个文件 .git/refs/heads/master 记录了指向master分支的哪个版本号
这里将文件指向最初的版本
- 此时查看刚才说的那个记录某个分支当前指向版本的文件,已经做了更新
- 此时查看刚才说的那个记录某个分支当前指向版本的文件,已经做了更新
再穿梭为后面的版本 git reset –hard file
图片解释
master指针指向first,second,third head永远都是指向master(当前分支,目前只有master,所以不变)
分支 #
概述和优点
查看&创建&切换
git branch 分支名 #创建分支 git branch -v #查看分支 git checkout 分支名 #切换分支 git merge 分支名 #把指定的分支合并到当前分支上
查看分支并显示当前分支指向的版本 git branch -v
创建分支 git branch hot-fix git branch #再次查看
切换分支
git branch hot-fix 此时修改一个文件并提交
查看.git/head文件,会发现现在它指向hot-fix分支
合并分支(正常合并)
切换分支
将某分支xx合并到当前分支 git merge 分支名
如图,合并成功 以后面那个分支的修改为主
合并分支(冲突合并)
前提,现在master分支倒数第二行修改并添加和提交
此时切换到hot-fix分支 修改倒数第一行
将文件从工作区添加到暂存区并提交到本地库
此时再切回master
git checkout master git merge hot-fix
提示出错了,而且所有有异常的文件,都以下面的形式标注
按dd进行删除某一行
改完了之后,保存并提交即可
切回之后查看hot-fix分支,发现这里的文件是没有变化的
原理