目录
初始化用户名和邮箱
git config --global user.name '自己的名字' # (不用加引号)
git config --global user.email '自己的邮箱' # (不用加引号)
git config --list # 查看
基本操作
1.创建一个空的项目
可以在任意一个文件夹中创建一个目录,比如
- 打开uesr1文件夹,
- 在user1文件中,右键,选择Git Bash Here,这时路径就切换到了uesr1里面
此时已经需要进入第2步,初始化,才能建立本地仓库
2.在空的工程中通过 Git Bash Here命令窗口初始化仓库——git init
在 <步骤1> 中打开的窗口中,通过 git init 指令初始化,
表示这个工程已经生成了本地仓库,但是 user1 文件夹中什么也没有(是因为被隐藏了),需要显示隐藏文件才能看见。
- 查看
- 勾选 隐藏的项目
3.在空的项目当中创建添加一些文件
4.查看这些文件在 git 当中的状态
- git status
目前状态:已修改(红色文件)
- 发现文件和文件夹都是红色,当出现这种情况的时候,说明这些文件还没有添加到暂存区中,也没有添加到git仓库中去
5.把文件添加 git 本地仓库中
执行git add -A 命令(把所有内容添加到暂存区),再查看状态,也可以用git add *
此时全部变成绿色,文件已经添加到git暂存区当中,还没有提交。
6.提交
- 执行 git commit
- 在执行 commit的时候,会进入一个vi编辑器界面(linux中的编辑器),提示让输入信息,输入本次做了哪些操作,保存并退出即可。
- 不进入vi编辑器de方法 git commit -m ‘本次做了哪些操作’
此时已经把文件提交到了本地仓库,已经生成了一个记录,当你做完commit之后,再去查看状态
提示,没有任何信息需要提交
7.查看历史
git log # 查看提交日志
图中绿色框的这串数字,唯一记录你提交内容的记录。
对文件进行修改
假设操作完之后,我不想要这步操作了,想要回退(可以理解为撤回),
1.打开 index.html 对文件的内容添加进行修改
对index.html(已创建)进行编辑
vim index.html
回车后,进入下面的界面,
按一下 i ,则可以进入编辑状态
输入内容hello world
想要把输入的内容保存:先按Esc键,接着按Shift+冒号,看下图的变化
输入 wq 命令,保存这次操作
回车后,回到界面
查看文件内容
创建一个test.txt文本,使用touch命令,
此时,相当于在我们 user1 中修改了 index.html,并添加了一个文件,叫 test.txt,此时,再查看一下状态,使用 git status 命令,回车后,看到了红色的 index.html 和 test.html,此时还未添加到暂存区,所以状态为红色,
添加到暂存区,使用 git add *命令,执行之后,所有内容都已添加到暂存区,
2.修改之后再查看状态时,会出现modified状态
然后,再查看一下状态 git status 命令,执行之后,发现颜色已经变绿,
变绿之后,再提交到本地仓库,git commit -m + 信息说明,回车
3.通过 git log 查看日志,可以看到,有一条新的 sha 记录
回车之后,内容已经提交到了本地仓库,此时可以使用 git log 命令去查看日志,查看之后,发现又生成了一个版本(commit后保的一串字母+数字sha值),你每一次提交,都会给我们生成一个版本,下图中显示(第一次:创建了文件,创建了uer1项目 第二次:修改了index.html文件,添加了test.txt文件)
在 user1 路径中,ls 一下,能够看到刚操作过的 index.html 文件和 test.txt 文件
使用 cat 命令查看一下内容
此时,我想回退到第二次修改前的版本
4. 恢复历史
-
第一个sha值就是一个版本记录,可能使用reset命令回复到指定的版本
-
格式——git reset -hard sha值
-
示例(sha值可以只复制前几位,也可以全部复制)
- 回车之后,已经回退到上一个版本
用 ls 查看一下,只能看到以前的(index.html),而不能看到test.txt文件了
同时,index.html里面的内容也没了,用cat index.html 命令查看一下
发现回到了最初添加项目的版本,在这个版本中,并没有给index.html添加内容,所以 cat index.html 命令返回的内容为空。
- 回车之后,已经回退到上一个版本
HEAD和index
HEAD 记录了当前使用的哪个版本,它像一个指针一样,指向当前的版本。index记录了暂存区有哪些文件
创建一个文件 a.txt, touch a.txt,此时a.txt为红色
通过[git add *]命令,将其添加到暂存区中,添加到暂存区之后,就是一个索引,指向了a.txt,就告诉你现在a.txt文件在暂存区里面,是需要被提交到本地仓库的,
通过[git commit -m ‘说明’]命令,将暂存区中索引指向的文件(a.txt)提交到本地仓库,生成一个新的版本,此时HEAD将指向新的版本。