Git基本工作流程

来源:互联网 发布:掌上贵金属软件下载 编辑:程序博客网 时间:2024/04/30 15:29

首先在了解Git基本工作流程之前我们需要对Git如何存储文件和历史记录有个浅显的了解。


Git如何存储文件

Git使用的是40个16进制的SHA-l Hash来标识对象,Git有四种对象


1. blob    文本文件,或者二进制文件,.java .cs .html  等源代码都属于blob对象

2. tree    目录

3.commit   提交

4.tag  指定commit对象的一个标识


这四种对象有这样一种关系,一个tag指向一个commit历史提交,一个commit历史提交指向一个tree目录,一个tree目录指向一个或多个tree或blob对象。



Git仓库

Git仓库分为两种,bare(裸仓库,不带工作区,用于团队协作,没有 .git 目录)、non-bare(带工作区的Git仓库)


接下来我们将演示如何创建一个Git仓库,创建Git仓库分两种方式,一种是本地  git  init,另外一种是git clone


git  init 创建Git仓库

我们通过Git来管理代码都是需要带工作区的Git仓库,所以我们先来介绍如何创建一个带工作区的Git仓库。

先进入到随便一个盘符,我这里以 F:\less\Git 为例,右键打开 Git  Bash Here,输入如下命令即可,

git init git_non_bare_repo

这时,我们发现Git目录下多了一个 git_non_bare_repo目录,而这个目录里面又有个.git目录,这个目录是隐藏的需要打开文件选项显示隐藏文件,.git下又有许多目录和文件,这些文件就是Git用了管理仓库所需要的文件,我们只要把需要管理的源码放到git_non_bare_repo目录下即可,如图:




假设,先前我们开发已经有段时间,存在很多源码了,那么如何把这些源码加入到Git仓库呢?这就好比,我手动创建了一个git_init_repo目录,如何把它纳入管理?

只要在git_init_repo目录里执行如下语句即可:

git init

创建一个裸仓库也是很简单的,当然,你也可以查看裸仓库和带工作区的仓库有什么区别,其实就是多个.get目录



git clone克隆仓库

上面所介绍的都是本地创建仓库,但是一进公司,肯定是让你从远程拉代码下来的,这就是克隆远程仓库,因为是测试,我们打开 https://github.com   随便找个项目,

比如:https://github.com/usds/playbook



复制这个地址然后执行:

git clone https://github.com/usds/playbook.git

如下图:



至此,我们已经掌握了如何创建和克隆Git仓库,休息一下,接下来将正式进入Git的工作流程.

Git工作流程

git的工作流程都是围绕下图进行的,



1. 工作区      其实就是我们电脑  F:\less\Git\git_non_bare_repo  目录

2. 暂存区    是工作区和历史提交的一个桥梁

3.历史提交   就是commit对象对应的一个提交

我们首先需要把工作区的代码文件添加到暂存区,然后在提交。也可以从commit中检出一个历史提交

首先,准备一下需要操作的文件,



.config   和bin目录下的文件是我们需要忽略的文件,cs  html java是要提交的源码文件,提交完成之后中途我需要删除 txt 文件

Git  Status 查看状态

可以通过

git status

来查看状态

Git   Add 加入暂存区

git add -A

将里面所有的文件添加到暂存区

Git    Commit  提交到仓库

git commit -m '本次提交的注释'

将暂存区中的文件提交到本地Git仓库中



这样,一个基本流程就已经走完了。

如果不相信,我们可以在本地电脑删除.txt文件,然后通过git checkout来撤销本次未提交的修改

Git Checkout 撤销修改


通过

git checkout .

撤销本次所有未提交的修改

删除Git仓库中的文件

这个简单,只要把本地对应的文件删除掉,在重新 add -A    commit一下就可以了,同样,本地文件如有修改过或者重命名移动过,也需要add -A  commit提交

.gitignore设置忽略文件

我们重新准备一个新的仓库,结构如图



bin目录中有个.cs和.config文件。

准备工作做完后,使用git status查看下状态,很多需要Add的,但是我们不希望把.config文件和bin目录纳入管理。那么就要设置忽略文件了   .gitignore

因为是windows环境,采用点开头的文件不能直接创建,要用linux下的vim来创建,

vim .gitignore

创建好后可以按 i 进入插入模式编辑文件,编辑完成后按 esc 到操作模式,在输入 :wq保存并退出,一时不太习惯VIM  所以这里我就直接保存退出了。

忽略文件创建好之后,我们用文本文件打开进行编辑。



这样就设置好了,可以通过status来查看。

如遇到:.gitignore设置好还是无效,那么原因是git库中已经存在有这些文件了,所以忽略不了,需要把git库中的这些文件删除掉之后才能过滤,至于如何删除,上面已经提到过了



上图:

1. 过滤后缀是o或者a的文件

2.过滤以~结尾的文件

3.过滤 .pyc文件

4.但是不过滤  test.pyc

5. 对于  本身文件名是  !test.py 的文件  需要 纳入进来  那么要用反斜杠

6. 过滤 foo 文件夹下所有文件

7. 过滤所有 res 目录,就算它是某个目录的子目录

0 0
原创粉丝点击