Git理论基础
1.1、工作区域
Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:
- Workspace:工作区,就是你平时存放项目代码的地方
- Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
- Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
- Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
1.2、工作流程
git的工作流程一般是这样的:
1、在工作目录中添加、修改文件;
2、将需要进行版本管理的文件放入暂存区域;
3、将暂存区域的文件提交到git仓库。
因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
Git操作
2.1:创建工作目录与常用指令
工作目录(WorkSpace)一般就是你希望Git帮助你管理的文件夹,可以是你项目的目录,也可以是一个空目录,建议不要有中文。
日常使用只要记住下图6个命令:
2.2:git clone或git init(获得GIT仓库)
创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库。
方法一:获取远程仓库,clone代码
把远程仓库的代码clone到本地:
git clone https://......
查看当前的git仓库状态,可以使用git status:
git status
如果是在刚才新建的文件夹输入git status会出现下图1所示,git目录不对;先用cd 命令切换到yoyoketang这个repository目录,再输入git status可以看到On branch master,这个说明已经在master分支上了
方法二:创建全新仓库
# 在当前目录新建一个Git代码库 git init
执行后可以看到,仅仅在项目目录多出了一个.git目录,关于版本等的所有信息都在这个目录里面。
新建一个目录,将其初始化为Git代码库:
git init [project-name]
2.3、add(把文件添加到暂存区)
2.3.1、添加文件与目录
工作区(Working Directory)就是你在电脑里能看到的目录。
版本库(Repository)工作区有一个隐藏目录.git
,这个不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master
,以及指向master
的一个指针叫HEAD
。
将untracked状态的文件添加到暂存区,语法格式如下:
# 添加指定文件到暂存区 $ git add [file1] [file2] ... # 添加指定目录到暂存区,包括子目录 $ git add [dir] # 添加当前目录的所有文件到暂存区 $ git add .
2.3.2、移除文件与目录(撤销add)
当执行如下命令时,会直接从暂存区删除文件,工作区则不做出改变
#直接从暂存区删除文件,工作区则不做出改变 git rm --cached <file>
2.4、commit(提交)
git commit 主要是将暂存区里的改动给提交到本地的版本库,即使用 git commit 命令对暂存的内容进行提交;
通过add只是将文件或目录添加到了index暂存区,使用commit可以实现将暂存区的文件提交到本地仓库:
git commit -m "更新说明“
2.5、pull(拉取),注:这步可选
如果是多人同时开发维护代码,得先git pull ,拉取当前分支最新代码:
git pull
2.6、push(推送)
添加远程主机,主机名为origin 地址为https://.....
git remote add origin https://.....
下一步,就可以把本地库的所有内容推送到远程库上
git push -u origin master
由于远程库是空的,我们第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令
从现在起,只要本地作了提交,就可以通过命令:
git push origin master
如果已经创建则只需要这步就好了。
总结
首次提交代码到git仓库:
第一步:git init 初始化项目文件夹
第二步:git add . 键所有文件添加到暂存区
第三步:git commit -m "first commit" 提交到本地仓库
第四步:git remote add origin XXX(XXX就是你github或者码云等远程仓库的地址,git branch这个命令可以看到你所在的分支,删除某个仓库地址使用git remote rm origin)
第五步:git pull 拉取远程分支信息,首次拉取合并信息
第六步:git push -u -f origin master 提交到远程仓库,这个命令中的 -f 是强制推送,因为远程仓库只有初始化的文件,所以强制推送上去就行了,不加-f 会报当前分支没有远程分支,强制推送可以覆盖master,这样就完成了第一次提交的步骤)
如果不是首次提交,就执行以下几步:
第一步:git add . 键所有文件添加到暂存区
第二步:git commit -m "first commit" 提交到本地仓库
第三步:git pull 拉取远程分支信息,首次拉取合并信息(可选)
第四步:git push origin master 提交到远程仓库