一、四个工作区
- 工作目录(Working Directory);
- 暂存区(Stage/Index);
- 资源库(Repository或Git Directory);
- 远程的git仓库(Remote Directory);
二、四个工作区转换关系
默认目录是本地目录(Work Directory),先把本地目录git add到暂存区(Stage),然后git commit到本地仓库(History),然后git push到远程仓库(Remote Directory);
从远程仓库把代码拉下来用git pull,从本地仓库把代码拉下来用git reset,从暂存区获取代码用git checkout;
三、基本知识
- Workspace:工作区,就是平时存放项目代码的地方;
- Stage/index:暂存区,用于临时存放你的改动,事实上他只是一个文件,保存即将提交到文件列表信息;
- Repository:本地仓库,就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中Head指向最新放入仓库的版本;
- Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目中的一台服务器用于远程数据交换;
- master:主分支;
- Directory:使用git管理的一个目录,也就是一个仓库,包含我们的工作空间和git的管理空间;
四、git的工作流程
1.在工作目录中添加,修改文件;
2.将需要进行版本管理的文件放入暂存区域(git add);
3.将暂存区域的文件提交到git区域;
因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
五、git项目搭建
(一)本地仓库搭建
git init
创建全新的仓库,需要用git管理的项目的根目录执行;执行后可以看到,仅仅在项目目录多出了一个.git目录,关于版本等的所有信息都在这个目录里面
(二)克隆远程仓库
git clone [url]
六、文件4种状态
untracked:未跟踪,此文件在文件夹中,但并没有加入git库,不参与版本控制,通过git add状态变为Stage;
unmodify:文件已经入库:
modified:文件已修改;
Stage:暂存状态;
ztt@ztt-System-Product-Name:~/gitcode$ sudo git add .
ztt@ztt-System-Product-Name:~/gitcode$ git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: index.js
七、一些命令
查看所有文件的状态
ztt@ztt-System-Product-Name:~/gitcode$ git status
On branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)
ztt@ztt-System-Product-Name:~/gitcode$ sudo touch index.js
[sudo] password for ztt:
ztt@ztt-System-Product-Name:~/gitcode$ ls
index.js
ztt@ztt-System-Product-Name:~/gitcode$ git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
index.js
nothing added to commit but untracked files present (use "git add" to track)
ztt@ztt-System-Product-Name:~/gitcode$
提交暂存区的内容到本地仓库
sudo git commit -m "new file indexJs"
关于不需要提交的文件
在目录下建立“.gitignore”文件,此文件有一下规则:
1.忽略文件文件中的空行或(#)开始的行会被忽略;
2.可以使用linux通配符。
3.最前面是一个 /:要忽略的文件在此目录下,而子目录中的文件不忽略;
4.最后面是一个/:表示忽略此目录下该名称的子目录,而非文件;
5.最前面是一个!:表示例外规则,将不被忽略;
例如:
*.class;
*.log;
* idea
八、使用码云
github是有墙的,比较慢,在国内的话,我们一般使用gitee,公司中有时候用自己的gitlab
1.注册登录码云,完善个人信息;
2.设置本机绑定SSH公钥,实现免密码登录;
3.将公钥信息public key添加到码云账户中即可;
4.使用码云创建一个自己的仓库;