四.将文件添加到仓库
创建仓库
git init
查看仓库的状态
git status
添加到暂存区
git add
提交
git commit
git status 可以查看当前仓库的状态信息,例如包含哪些分支,有哪些文件以及这些文件当前处在怎样的一个状态。
由于当前没有存储任何的东西,所以没有显示。
图片中当前分支是main而不是master,不用担心,这是由于git的版本更新,对其命令使用没有任何影响。
echo “这是第一个文件” file1.txt
查看仓库状态,就可以看出新创建的文件是Untracked files 未被管理的文件
使用git add file1.txt将该文件添加到暂存区,等待后续的操作。
可以看到文件的颜色从红色变成了绿色,并且系统给我们提示 Changes to be commited: 意思等待提交。并且系统给我们提示 可以使用 git rm --cached file 将放入暂存区的file1.txt文件再取消暂存。
我们的文件只有被commit到本地仓库,我们的文件才会被git管理起来。
我们需要知道git commit 这个命令只会提交暂存区中的文件,而不会提交工作区中的其他文件。
刚刚创建的file2是红色的未跟踪的状态,接下来提交一下
git commit -m "第一次提交" -m参数后可以填写本次提交的信息
不添加-m参数的话,会进入交互界面
在看一下git status,发现file1.txt已经不见了,这是因为已经提交了file1的文件。file2.txt没有添加到暂存区,所以不会被git commit命令所提交到仓库中。
git add 还可以使用通配符的形式添加文件到暂存区。
例如添加所有以txt结尾的文件到暂存区:
file5.sh未被添加到暂存区是因为他不是以.txt结尾的。
可以使用:git add . 将所有的文件添加到暂存区。
提交后,可以看见看到没有什么需要被commit了,所有的文件都提交完成了。
现在仓库中已经有了两次的提交,可以使用git log命令来查看提交记录
每次提交都有一个唯一的提交ID,就是commit后面的16进制的一串字符串,还有每次提交的作者和邮箱以及提交的时间。
注意:这里显示的名字和邮箱就是我们使用git config命令配置的
另外 git log 后面还可以添加一些参数,例如 git log --oneline ,这样就只显示提交的ID和提交信息了。
五.git reset 命令
在日常开发的时候,我们会经常撤销之前的一些修改内容,或者回退之前的某一个版本。
reset命令用于回退版本,可以退回到之前的某一个提交的状态
git reset的三种模式
git reset --soft 工作区和暂存区都不会被清除
git reset --hard 工作区和暂存区都会被清除
git reset --mixed(默认) 工作区不会被清除,暂存区会被清除
git ls-files 查看暂存区的内容
六.git diff 命令查看文件在工作区 暂存区以及版本库之间的差异
git diff 后面不加参数 默认会比较工作区与暂存区之间的差异内容
git diff HEAD 工作区与版本库的差异
git diff --cache 暂存区与版本库的差异
git diff 还可以显示两个不同版本的差异,只需要在后续加上版本id就可以查看版本id太麻烦了,我们可以使用git diff HEAD ~HEAD 表示与上一个版本的差异
git diff HEAD ~2 HEAD 表示HEAD之前的两个版本
git diff HEAD ~3 HEAD 表示HEAD之前的三个版本