Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库
Clone:克隆,就是将远程仓库复制到本地
checkout (检出):从本地仓库中检出一个仓库分支然后进行修订
add(添加): 在提交前先将代码提交到暂存区
commit:提交,将工作区代码提交到本地仓库
Pull:拉取,就是将远程仓库代码下载到本地仓库
Push:推送,就是将本地仓库代码上传到远程仓库
Git工作目录下的文件存在两种状态:
untracked未跟踪(未被纳入版本控制)
tracked 已跟踪(被纳入版本控制)
Unmodified 未修改状态
Modified 已修改状态
Staged 已暂存状态
新建代码库通常有两种方式:
①.先有本地仓库
- 在当前目录新建一个Git代码库
$ git init - 先初始化本地库,然后与已有的远程库建立连接
$ git remote add <远端名称> <仓库路径>
②.先有远程仓库 直接从远程仓库克隆一个仓库到本地
- 下载一个项目和它的整个代码历史
- $ git clone [url]
操作本地仓库
1.查看本地仓库的状态
$ git status [-s]
2.添加工作区到暂存区
$ git add 单个文件名|通配符 ( . 代表全部文件)
添加一个或多个文件到暂存区
3.取消已跟踪文件(从暂存区到工作区)
$ git reset 单个文件名或通配符 ( . 代表全部文件)
撤销当前文件或全部内容到修改之前的状态
4.提交暂存区到本地仓库
$ git commit -m '注释内容' 提交暂存区内容到本地仓库的当前分支
5.查看日志文件
$ git log
6.添加文件至忽略列表
一般我们总会有些文件无需纳入Git 的管理,也不希望它们总出现在未跟踪文件列表。
通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。
在这种情况下,我们可以在工作目录中创建一个
名为 .gitignore 的文件(文件名称固定),列出要忽略的文件模式。
**一定在工程初始化时,提前准备好需要忽略的文件列表**
7.文件恢复到工作区初期状态
临时改动了文件想恢复
$ git checkout 单个文件名或通配符 ( . 代表全部文件)
操作远程仓库
1.从远程仓库克隆
抓取 命令形式:git pull【remote name】【branch name】
抓取 命令形式:git pull【远端名称】【仓库路径】
远端名称,默认是origin,取决于远端服务器设置
仓库路径,从远端服务器获取此URL
2.推送到远程仓库
命令形式:git push 【remote name】【branch name】
**注意**
推送之前,需要先pull远端仓库,如果发现提交版本不一致,出现错误!!!
分支
几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的Bug修改、开发新的功能,以免影响开发主线。
在开发中,一般有如下分支使用原则与流程:
* master (生产) 分支
线上分支,主分支,中小规模项目作为线上运行的应用对应的分支;
* test(测试)分支
从master创建的分支,一般作为测试部门的测试分支,进行预发测试。测试完成后,需要合并到master分支,进行发版上线,中小规模项目可省略此分支;
* develop(开发)分支
从test创建的分支,如果开发没有test分支,是从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到test分支继续测试,如果没有test分支,可直接合并到master分支。
* develop_xxx分支
从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,一般是合并到develop分支。
* hotfix(bugfix)分支
从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、develop分支。
1.列出所有本地分支
git branch
2.列出所有远程分支
git branch -r
3.列出所有本地分支和远程分支
git branch -a
4. 新建一个分支,但依然停留在当前分支
git branch 【分支名】
5.切换到指定分支,并更新工作区
git checkout 【分支名】
6.分支推送至远程仓库
git push origin master
git push 【远程名称】 【分支名称】
7.合并指定分支到当前分支上
git merge 【指定分支名称】