前言
Git的理论非常重要和基础,学习git理论能够更加清晰的了解Git的工作步骤。
工作区域
Workspace :工作区,就是本地代码的存放地。 Index/Stage: 暂存区。用于临时存放你的改动,事实上它只是一个文件,保存即将提交的文件列表。 Reposity: 仓库(本地仓库), 就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中包HEAD指向最新存入仓库的版本。 Remote: 远程仓库,托管代码的服务器。
ref: refs/heads/master 指向master分支
Git的工作流程
- 在工作目录种添加,修改文件
- 将需要进行版本管理的文件放入暂存区
- 将暂存区的文件提交到git仓库
因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
Git项目搭建
创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库。
创建全新仓库
- 创建全新的仓库,需要用GIT管理的项目根目录执行
git init
- 执行后可以看到,仅仅在项目目录下多出一个.git目录,古纳于版本等的所有信息都在这个目录里。
克隆远程仓库
- 另一种方式是克隆远程,由于是将远程服务器上的仓库完全镜像一份至本地
git clone [url]
- 去gitee 或者github上找链接
Git文件操作
文件的4种状态
版本控制就是对文件的版本控制,要对文件进行修改,提交等操作,首先要知道文件当前是什么状态,不然可能会提交了现在还不想要提交的文件,或者提交的文件没提交上。
- Untracked:未跟踪。此文件在文件夹种,但并没有加入到git库,不参与版本控制。通过git add 状态可以变成staged
- Unmodify: 文件已经入库,未修改,即版本库种的文件快照内容和文件夹中完全一致,这种类型的文件有两种去除,如果它被修改。
- Modified: 文件已修改,仅仅是修改,并没有进行其它的操作。这个文件也有两个去处,通过git add 可进入暂存staged状态,使用git checkout 则丢失修改过,返回到unmodify 状态,这个git checkout 则从库中取出文件,覆盖当前修改!
- Staged:暂存状态。执行git commit 则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为Unmodify状态。执行git reset HEAD filename取消暂存,文件状态为Modifed
查看文件状态
上面说文件有4种状态,通过如下命令可以查看文件的状态
git status [filename]
git status
git add .
git commit -m "描述信息"
忽略文件
有时候我们不想把某些文件纳入版本控制种,比如数据库文件,临时文件。 在住目录下建立.gitignore文件,此文件有一下规则
- 忽略文件种的空行或以#开头的行会被忽略
- 可以使用linux通配符。例如星号代表任意多个字符,问好代表一个字符,方括号[abc]代表可选字符范围,大括号({string1,string2,…})代表可选的字符串等。
- 如果名称的最前面有一个感叹号!,表示例外规则,将不被忽略
- 如果名称的最前面是一个路径分隔符,表示要忽略的文件在此目录下,而子目录中的文件不忽略。
- 如果名称的最后面是一个路径分割符,表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
*.txt
!lib.txt
/temp
build/
doc/*.txt
```bash
在这里插入代码片
|