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)具体设定编辑软件在后面会讲解。

通常是在第一行输入提交说明,之后使用vim的命令:wq保存说明并退出,这时会显示提交成功

这样所有的文件就全部进入仓库区了。

总结

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

原文地址:https://www.cnblogs.com/haoocker/p/12252711.html

时间: 2024-10-12 12:31:46

git工作流,生命周期和最基础的命令的相关文章

实体生命周期(EF基础系列8)

在我们进行增删查改操作之前,相当重要去理解实体的生命周期,它是怎么被EF操作的. 在实体的生命周期过程中,每个实体基于上下文的操作都会有一个实体状态,实体状态是一个枚举类型的值:System.Data.Entity.EntityState,包含下面的值: 1.Added 2.Deleted 3.Modified 4.Unchanged 5.Detached 数据上下文不仅包含所有从数据库中检索的对象的引用,并且它有这个实体对象的实体状态,维护修改实体的属性,这个特性叫做更改跟踪. 实体状态从“U

maven的生命周期,和maven常用命令

Maven是围绕着构建生命周期的核心概念为原型,整个项目的创建和部署都是围绕着生命周期展开的,一个生命周期由若干个生命周期阶段组成. maven有三个内置的默认生命周期分别是default, clean and site. 默认(default)的生命周期处理你的项目部署,clean生命周期处理项目的清洗,而(site)网站的生命周期处理你的项目的站点文档的创建. 这些构建的生命周期中的每一个由编阶段的一个不同的列表,其中,构建阶段表示在生命周期的一个阶段所定义. 例如,default的生命周期

git的生命周期的一些事

一般工作流程是这样的: 克隆Git仓库作为工作副本. 可以添加/编辑文件,修改工作副本. 如果有必要,你还服用其他开发人员的变化,更新工作副本. 审查前提交. 提交修改.如果一切都很好,然后推到存储库的更改. 提交之后,如果知道是什么错误,那么纠正最后一次提交,并推送修改到版本库. 以下是工作流程的图形表示.

Git 生命周期

在本章中,我们将讨论的Git的生命周期.在后面的章节中,我们将看到的Git命令为每个操作. 一般工作流程是这样的: 克隆Git仓库作为工作副本. 可以添加/编辑文件,修改工作副本. 如果有必要,你还服用其他开发人员的变化,更新工作副本. 审查前提交. 提交修改.如果一切都很好,然后推到存储库的更改. 提交之后,如果知道是什么错误,那么纠正最后一次提交,并推送修改到版本库. 以下是工作流程的图形表示. PS:如果您想和业内技术大牛交流的话,请加qq群(521249302)或者关注微信公众 号(As

Maven学习(四):生命周期与maven插件

一.maven 生命周期 (一)简介 Maven强大的一个重要的原因是它有一个十分完善的生命周期模型(lifecycle),这个生命周期可以从两方面来理解: 1.顾名思义,运行Maven的每个步骤都由它来定义的,这种预定义的默认行为使得我们使用Maven变得简单,相比而言,Ant的每个步骤都要你手工去定义. 2.这个模型是一种标准,在不同的项目中,使用Maven的接口是一样的,这样就不用去仔细理解每个项目的构建了,一般情况下,mvn clean install  这样的命令是通用的. 3.一个M

Cocos2d-x 场景的生命周期

***************************************转载请注明出处:http://blog.csdn.net/lttree******************************************** 又是一年毕业季啊... 毕业的学长学姐们分享各种经验--考研.考公.培训 ,巴拉巴拉.... 继续做我的cocos2d-x吧 今天看一看场景的生命周期(这种基础东西,实在不该现在才注意到o(╯□╰)o) 这个生命周期,其实很重要,比如,在播放背景音乐的时候,什么

Maven实战——生命周期和插件

Maven的构建过程包括:初始化.编译.测试.打包.集成测试.部署 Maven拥有三套相互独立的生命周期:clean(清理项目).default(构建项目).site(建立项目站点) 每个生命周期包含一些阶段,这些阶段是有顺序的,并且后面的阶段依赖于前面的阶段,以clean为例: pre-clean:执行一些清理前需要完成的工作 clean:清理上一次构建生成的文件 post-clean:执行一些清理后需要完成的工作 site的生命周期包括:pre-site,site,post-site,sit

Maven专题3——生命周期与插件

三套生命周期 Maven有3套相互独立的生命周期,用户可以调用某个生命周期的阶段,而不会对其他生命周期产生影响. 每个生命周期包含一些有先后顺序的阶段,后面的阶段依赖于前面的阶段,意味着用户调用后面的生命周期阶段时,同一生命周期中前面的阶段也将被执行. clean生命周期 pre-clean clean post-clean default生命周期 validate initialize generate-sources process-sources generate-resources pr

项目管理【02】 | 项目管理基础-信息系统项目的生命周期模型

项目生命周期指项目从启动到收尾所经历的一系列阶段,生命周期可为管理项目提供基本框架.在本篇中,我们将着重介绍项目生命周期模型方法和典型的6种生命周期模型,区别各自的优缺点,以便在实践中灵活运用. 11.项目生命周期的模型方法有三种: (1)预测型生命周期. 预测型生命周期(也称为完全计划驱动型生命周期)是在项目生命周期的尽早时间,确定项目范围及交付此范围所需的时间和成本. 优先选择预测型生命周期的情况:充分了解拟交付的产品,有厚实的行业实践基础,或者整批一次性交付产品有利于干系人. (2)迭代和