git工作流和最基础的命令

git的工作流

git的本地仓库一般有三颗“树”组成,也可以当做有三个区域,第一个是你的工作目录(working directory)它存有一个文件夹(windows)下的实际文件。第二个是暂存区(index)它像一个缓存区,只是暂时保存你的文件,第三个可以理解成仓库区(HEAD)它是你用来存放你所提交的代码的区域,当然上面三个区域不是在你的磁盘中真实存在的,它是虚拟的git的工作流。
在这里插入图片描述

git的生命周期

一般在git版本控制下的文件莫过于有两种状态:已跟踪状态和未跟踪状态,在跟踪状态下一个文件可能在暂存区,也可能被提交到了仓库中。(以下的git都是基于本人的本地情况)
使用git时文件的生命周期如下
在这里插入图片描述
其中没有被git跟踪的文件处于Untracked的状态,一般处于Untracked的状态的文件是新添加到当前文件夹下的文件,如果文件被跟踪之后便进入暂存区,文件变成Staged状态,如果暂存区的文件被提交了(commit)之后文件便进入仓库区,处于Unmodified的状态,如果文件再一次被修改之后便处于modified的状态,这时需要将该文件放入暂存区(git add),然后再一次提交到仓库(git commit),处于Unmodified状态一定是被跟踪的文件。

基本的git命令

检查当前文件状态
$ git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean

因为我的仓库是从github上clone到本地的,因此会有中间的一行:"Your branch is up to date with ‘origin/master’."关于这句话的详细解释到分支部分会详细解释的,这里先存有疑问.此时说明当前目录下没有任何未跟踪的文件.
当在文件中新建一个Test1.md文件的时候,此时再使用git status命令,将会看到一个新的未跟踪的文件:
在这里插入图片描述

当前目录中存有的文件:
在这里插入图片描述
此时Test1.md就是处于Untracked状态

跟踪新文件
$ git add Test1.md

可以看到此时Test1.md已被跟踪,处于暂存状态
在这里插入图片描述
git add 命令使用文件或目录的路径作为参数;如果参数是目录的路径,该 命令将递归地跟踪该目录下的所有文件。下面的例子则是使用目录的路径。
此时,在目录下新建一个文件夹Files,并在文件夹目录下新建两个文件:Test2.md和Test3.md
在这里插入图片描述

使用gitstatus查看其状态,可以看见文件夹Files处于未跟踪状态。
在这里插入图片描述
使用git add Files命令之后:
在这里插入图片描述
可以看见所有的文件都已经被跟踪

暂存已修改文件

如果一个文件已经处于暂存状态,这时如果修改了文件的内容,则文件会处于modified的状态,这时要重新提交到暂存区。当我在Test1.md文件中添加了内容时:
在这里插入图片描述

可以看到Test1.md同时处于Staged和modified状态,这里要说明的是,staged状态的Test1.md是未添加内容之前的Test1.md,而处于modified状态的是添加内容之后的Test1.md,如果想要暂存修改之后的Test1.md则使用git add Test1.md命令,现在的状态是:
在这里插入图片描述
可以看到三个文件都已经处于暂存区

提交更新
$ git commit

以这种方式会启动文本编辑器以便输入本次提交的说明,(默认会启用 shell 的环境变量 $EDITOR 所指定的软件, 一般都是 vim 或 emacs)具体设定编辑软件在后面会讲解。
在这里插入图片描述
通常是在第一行输入提交说明,之后使用:wq保存说明并退出,这时会显示提交成功
在这里插入图片描述
这样所有的文件就全部进入仓库区了。

总结

以上就是基本的git的流程和命令,其实掌握了以上命令和概念基本上使用git不是问题,但是如果想要更加详细了解和更加高效利用git这个强大工具需要继续深入学习下去。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值