- 开篇我引导一下,因为我之前就被这几个词给搞混淆了,希望初学者们不会再有这种事儿出现
- 本地仓库:也就是自己的电脑上的一些操作,没有链接到网上,磁盘上丢失,彻底丢失(本地电脑)
- 远程仓库:也就是将自己些的一些东西,放到了网上,如GitHub,Gitee等,电脑丢失后可以通过网络可找回(远程电脑)
- Git和Github:Git是一个版本管理管理工具,Github主要是用来存放写的代码的以及程序员之间相互交流和学习的网站,一个是工具,一个是网站,不要混淆。
Git工具安装完后相关的配置
- 当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中。
git config user.name --global "你的姓名" //配置邮箱
git config user.email --global "你的邮箱" //配置密码
git config --list //该命令可以查看你自己设置好的姓名和邮箱等等配置(打印所有配置)
git config user.name //打印指定config
相关操作命令
1.git的入门级操作
git init- 初始化创建仓库,会创建一个隐藏的.git文件,所有的操作记录都会存入其中
git status- 查看当前仓库所在的目录的文件状态
- Untracked 未追踪的
- Committed 可被提交的
- modified 已修改的(已修改的文件在提交前,需要再git add一次)
- 查看当前仓库所在的目录的文件状态
git add filename- 使某个文件加入追踪,将文件加入暂存区域等待提交
git commit(会进入vim编辑模式,然后输入相关本次提交的信息)- 提交(并且附带:对此次操作的描述信息)
git log- 查看提交记录(会显示相关提交人,和相关提交日志)
2.git入门级操作扩展
git add . //将多个文件加入追踪,将文件加入暂存区域等待提交
git commit -m '描述' //在引号中写此次操作的描述信息,就不用进入vim模式
git commit -a -m '描述' //这样写可以省略git add .操作(但是不能对没有进行追踪的文件进行操作)
3.删除文件
git rm filename- 这句命令是将git区域中记录的文件,并不保留在工作目录中
git rm -f filename- 这句命令用于强制删除,当文件修改后没有进行提交,一般不允许删除,该命令可以进行强制删除操作
git rm --cache filename- 该命令用于删除Git仓库中的文件记录,但是不删除工作目录中的文件(磁盘里面的文件)
4.移动文件(重命名)
-
git mv [file_from] [file_to](其实这相当于是对文件进行了一次重命名的操作,如果操作前和操作后目录不变,文件名更改则为重命名,具体可看下方例子)-
该代码的意思是将文件进行移动,从初始位置移动到指定位置,并可对文件名进行更改,文件内内容不变
-
第一个file_from是文件的当前位置(以及当前文件名),第二个file_to是文件所需要移动到的指定位置(以及移动后的文件名)
-
格式:path/filename 文件位置加上文件名字,默认是终端当前所在文件夹
-
例子:
git mv a.txt b.txt //该段代码的意思就是将a.txt文件重命名为b.txt(下面有相关该代码的具体解释) git mv a.txt file/a.txt //该段代码的意思就是将a.txt文件放入文件夹file当中,名称仍为a.txt git mv a.txt file/b.txt //该段代码的意思就是将a.txt文件放入文件夹file当中,名称改为b.txt
-
-
-
git mv a.txt b.txt-
它的工作原理是:将当前工作目录中将(a.txt)文件删除→在指定目录下生成一个(b.txt)文件并保留a.txt的全部内容(我们文件管理系统所拥有的重命名能也是这个原理)
-
相当于执行了以下三条命令
mv a.txt b.txt //将目标文件移动到指定位置的代码 git rm a.txt //将目标文件原来的位置的文件删除(a.txt) git add b.txt //再将指定文件生成的文件添加追踪(b.txt)
-
5. 查看命令
-
git status- 显示未追踪文件,已追踪文件,已修改文件,相应的比较全面的情况
-
git status -s-
用相应的short符号来表示每一个文件当前所处的状态:
?? //文件名前面跟的是??表示文件未追踪文件 A //文件名前面有一个大写字母A,表示文件为添加到暂存区的文件 M //右边的大写M,表示被修改但未放入暂存区的文件 MM //两个大写的M,表示修改后放入暂存区后,但是又被修改的文件 M //左边大写的M,表示被修改后放入暂存区了的文件 D //左边大写的D,表示该文件被删除了(用git rm filename解决后提交) R //左边大写的R,表示文件重命名
-
-
git diff-
查看当前文件的修改(主要看工作区文件),也就是未添加到工作区域的文件,与之前的文件的差异
-
输入该条命令后得到如下图:
- --- a/a.txt:表示之前添加到暂存区中的文件(git add a.txt)
- +++ b/b.txt三个加号后面修改文件后没有添加到暂存区的文件,后面显示出对应的修改
- 蓝色字体代表的是我们所打印出来的行号
- -1:代表的是已添加到暂存区的a.txt的行为1行
- +1,2:代表的是未添加到暂存区的a.txt的行为1到2行,具体显示,针对的是文件所对应的行数
- 红色部分代表的是添加到暂存区的a.txt文件中的内容
- 绿色部分是修改后没有添加到暂存区的已修改的内容,可以看出他们的内容是全部进行替换的
-
-
git diff --staged- 显示与
git diff类似,但是主要对比的是本次暂存区与上次提交后的文件之间的差异
- 显示与
-
git log-
查看日志的操作,这种查看方式会显示具体的ID(也就是校验和,也称之为ssha-1),具体作者,提交时间,以及提交时输入的描述/信息
-
打印比较多的时候,会进入日志模式,不能继续敲击命令,此时按q即可退出
-
还有许多有关命令,我简单列举一些:
git log -p //详细信息的打印,该命令会将具体的所有信息全部显示出来,包括diff所包含的信息 git log -[Number] //[Number]是自己输入的数字,用来控制显示日志的条数 git log --stat //该命令打印简陋的统计信息出来给我们看(很少使用) git log --pretty=online //该命令用于显示ID和提交描述,一行显示一条提交 git log --pretty=format:"%H %h" //打印完整哈希值和简短哈希值
-
-
关于查看命令还有非常多,这里无法给大家每一个都做解释,挑选了几个我常用的,大家可以通过
git help log和git help status命令获取相关帮助,那里的解释非常全面。(小声嘀咕:那里面好多东西我看不懂)
补充知识(Git 相关知识)
相关底层原因
- 在本地的Git中,已追踪的文件有以下三种状态,未追踪(Untracked)的文件Git不会进行管理,也就没有状态可言
- 已修改:已经被追踪的文件发生更改后的状态(已提交过的文件发生改变后同样是进入已修改状态)
- 已暂存:代表已经通过git add filename操作后的文件,等待被提交
- 已提交:代表文件已经提交并且已备注,后面可以进行相应的回退操作。
- 在git文件中有三个工作区域(前提:文件已追踪)
- 工作目录:也就是当前磁盘的目录所呈现的内容,当前已修改的文件会在此处存放,并且显示当前版本的全部文件在磁盘
- 暂存区域:文件修改后,通过git add filename操作后,进入的下一个区域,这个区域,等待提交(git commit -m ‘相关描述’)
- git仓库: 这里存放的是已经提交的文件,将暂存区域中的文件保存到仓库中,后续可以进行版本回退等操作
vim编辑模式相关的简单操作
i //敲击小写i进入vim的编辑模式,然后进行编辑(输入自己需要输入的内容)
ZZ //两个大写的Z可以保存并退出vim编辑模式
笔记二的链接:有关Git本地仓库的操作(笔记二)