Git的不完全使用指南

 

1.分布式管理集中式管理

 

  版本管理工具的主要是用来记录追踪文本文件修改记录,常见的有SVN,TFS,FireFly。这些都属于集中式管理工具。需要管理的文件统一放到服务器上面,版本树当然也在服务器。客户端要进行获取,修改,更新,必须首先与服务器联网。客户端仅仅是一个工作区。服务器一旦挂掉文件可能丢失。 而git采取的是分布式的管理策略,客户端和服务器的地位是平等的,也就是说所有的客户端和服务器都保存了一份完整的版本树。客户端之间也可以进行文件的同步,服务器的存在仅仅是为了使同步更方便而已。

 

 

2.git的内部结构

 

  • 工作区:本地工作目录,通常就是项目文件所在目录
  • 版本库:git管理、跟踪修改的地方。(对应.git隐藏目录)
  • Stage暂存区:

    工作区修改的每次提交都会产生一个版本号,一般情况下是完成一个阶段的工作后再提交,避免生成过多的版本意义不大。可是如果长时间提交有担心修改的丢失,所以有了暂存区的概念。

    我们可以分任意次将修改后的文件先添加到Stage区,等完成一阶段的工作后统一提交到分支。

  • Master:主分支,保存的是一棵完整的版本树。
  • Head:一个指针,指向的是当前版本。可以通过修改Head指针来回退版本

 

 

3.常用命令

  • git init 创建本地仓库

创建完成之后发现 .git目录就是本地仓库所在的目录

 

  • git add 将工作区的文件添加到暂存区 
  • git status 查看工作区和暂存区的状态

在当前工作区新增两个文件test1、test2。将test1添加到暂存区。然后使用git status命令查看

Changes to be committed:是暂存区中的文件

Untracked files:未跟踪的文件,没有添加过版本控制

git add 可以一次添加多个文件或者目录。

git add <file1> <file2>....
git add <directory1> <directory2>...

 

 

  • git rm --cached <filename>  删除暂存区的文件(git add 的逆操作)
  • git diff <filename>将工作区的文件跟Stage比较,如果Stage不存在则跟HEAD版本比较
  • git checkout <filename> 用Stage或者HEAD版本覆盖本地工作区,策略同上。
  • git commit 将Stage版本提交到分支

 

posted @ 2019-10-06 11:10  Programmer_Life  阅读(182)  评论(0编辑  收藏  举报