认识 git


什么是git?

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

什么是版本控制?

版本控制是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。简单的说就是管理多人协同开发项目的技术。

实现跨区多人协同开发
追踪和记载文件的历史记录
更好的统计工作量
并行开发、提高开发效率
跟踪记录整个项目软件的开发过程
减轻开发人员的负担,节省时间

git与svn的区别

svn是集中式版本控制系统,git是分布式版本控制系统

集中式版本控制:所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改

集中式.png


分布式版本控制:客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。这类系统都可以指定和若干不同的远端代码仓库进行交互。介此,你就可以在同一个项目中,分别和不同工作小组的人相互协作。你可以根据需要设定不同的协作流程。

分布式.png

git是将文件存到本地然后再推送到服务器,svn是直接与服务器进行交互

git可以不连网进行工作,svn必须在连网的情况下工作

git内容按元数据方式存储,svn是按文件

git只关心文件数据的整体是否发生变化,而svn则只关心文件内容的具体差异。
git为每个项目在根路径下建立一个.git目录,它是git用来保存元数据和对象数据库的地方,该目录非常重要,每次克隆镜像仓库的时候,实际拷贝的就是这个目录里面的数据。

git没有全局的版本号,svn有全局版本号

git可以任意在自己的本地版本库开启无限个分支,svn分支是一个完整的目录,且这个目录拥有完整的实际文件

工作区

在电脑上能看到的目录。

暂存区

存放工作区未提交的改动。

工作区有一个隐藏目录.git,这个不是工作区,而是git的版本库;git的版本库里存了很多东西,其中最重要的就是称为stage的暂存区,还有git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。git把需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

git配置及连接远程仓库


在git客户端配置本地email和user,

image.png

创建本地ssh

image.png

在github中添加ssh密钥

image.png

将ssh配置到GitHub,使用命令验证是否配置成功:ssh -T git@github.com

image.png

常用的git操作指令


git clone

拷贝git仓库到本地

image.png

git log

查看所有提交过的项目版本信息

git reflog: 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)

git status

查看文件状态

git add

把改动文件提交到暂存区

git add . 把所有修改变化提交到暂存区,不包括被删除的文件
git add -A 提交所有变化

git commit

把暂存区文件提交到本地的版本库

git commit -m 'msg' 提交添加备注,smg为备注信息
如果备注信息太多,可以通过以下形式备注:
git commit -m '
    msg1
    msg2
    msg3
    '

git push

把本地版本库分支提交到远程分支

git push origin master  将本地分支推送到与之存在追踪关系的远程分支,如果该远程分支不存在,则会被新建

git pull

获取远程分支更新内容

git pull origin test1 远程分支test1与当前分支合并
git pull origin test1:master origin主机的test1分支,与本地的master分支合并

git branch

查看分支

git branch              查看本地分支
git branch -r           查看远程分支
git branch -a           查看所有分支
git branch test1        创建分支名为test1的本地分支
git branch -d test1     删除本地分支test1

git checkout

切换分支

git checkout -b 创建并切换分支

git fetch

获取远程分支到本地

git fetch --all 获取所有的远程分支

git merge

合并分支

使用git的开发步骤(个人心得)


使用一般工作流程:

  1. git pull 更新本地的文件;如果远程修改了,需要同步远程的内容
  2. 本地在修改之后,可以通过git status 查看修改的文件
  3. 使用git add 添加修改的文件暂到缓冲区
  4. git commit 把暂存区内容添加到当前的工作区
  5. git push 将本地的修改提交到远程git服务器

m小白
175 声望1 粉丝

前端工程师