一、GIT工作流程
使用git就是将本地文件(工作目录workspace)的文件,添加到暂存区(stage),然后提交到本地仓库(repository),最终可以协同开发,推送到远程仓库(remote)
二、建立Git仓库
git版本库,也叫做git仓库(repository),也就是一个文件夹。
这个目录的所有内容被git软件管理,所有的修改,删除,git都会跟踪记录,便于可以跟踪历史记录,以后可以还原文件。
2.1 把已有的项目代码,纳入git管理:
cd mysite # mysite项目所在代码
git init # 初始化git仓库
git init命令会创建一个.git隐藏子目录,这个目录包含初始化git仓库所有的核心文件。
此步仅仅是初始化,此时项目里的代码还没有被git跟踪,因此还需要git add对项目文件跟踪,然后git commit提交到本地仓库
想知道.git文件做了什么事,请看git原理 >Git 内部原理
2.2 新建一个项目,直接用git管理:
cd 某个文件夹
git init mysite # 此步会在当前路径创建mysite文件夹,mysite文件夹中包含了.git的初始化文件夹,所有配置
那么.git文件夹中有什么呢?
[root@pyyuc ~/git_learning/mysite 11:08:19]#tree .git
.git
├── branches
├── config 这个项目独有的配置
├── description
├── HEAD head文件指示目前被检出的分支
├── hooks hooks目录包含服务端和客户端的钩子脚本 hook scripts
│ ├── applypatch-msg.sample
│ ├── commit-msg.sample
│ ├── post-update.sample
│ ├── pre-applypatch.sample
│ ├── pre-commit.sample
│ ├── prepare-commit-msg.sample
│ ├── pre-push.sample
│ ├── pre-rebase.sample
│ └── update.sample
├── index index文件保存暂存区的信息,只有git add之后才会生成,默认还没有这个文件
├── info info目录是全局性排除文件,用于放置不想被记录在.gitignore文件中的忽略模式(ignored patterns)
│ └── exclude
├── objects 存储所有数据内容
│ ├── info
│ └── pack
└── refs refs目录存储指向数据(分支)的提交对象的指针
├── heads
└── tags