参考 https://blog.csdn.net/web_csdn_share/article/details/79243308
一、GIT版本控制系统介绍
版本控制系统:
1、 记录历史版本信息(记录每一次修改的记录)
2、 方便团队相互之间协作开发
常用的版本控制系统:
csv/svn: 集中式版本控制系统
git:分布式版本控制系统
git分布式:每个开发者本地就是一个代码管理仓库
使用git init创建一个本地项目仓库,这个项目仓库分为:工作区、暂存区和历史区。在工作区中写的代码提交到暂存区,然后通过暂存区提交到历史区,这样以后如果想要看原来的代码就可以从历史区中将某个版本信息回退到工作区。
如果是团队开发的话,和SVN一样,需要一个服务器,也就是git-hub。
git安装
git官网:https://git-scm.com/downloads 官网速度比较慢,可以在腾讯腾讯软件中心下载。
下载完成后,进行安装,默认安装即可。
二、git的工作原理
工作区:我们能看到的,并且用来写代码的区域。
暂存区:临时存储用的
历史区:生成历史版本
提交时候:工作区-》暂存区-》历史区
回滚的时候:可以从暂存区回滚到工作区;也可以从历史区直接回滚到工作区。注意,不能从历史区回滚到暂存区。
文件的状态类型分为已追踪文件(在仓库之前的版本快照中包含文件的记录,在用户工作一段时间后,这些文件同样被追踪到, 修改删除)
未追踪的文件(新增)
文件状态的变更
untracked 通过add命令进入staged(红色,暂存区)
unmodifed编辑之后变成Modified状态,如果被删除则变为untracked状态
Modified通过add命令进入staged(红色, 暂存区)
staged状态一旦commit之后变为unmodified状态
git status 显示3中状态
已添加至暂存区,待提交的 (git add后)
已修改,未暂存
未追踪状态的文件
下面介绍git如何使用
1 git的全局配置
第一次安装完成git后,在全局环境下配置基本信息:用来确认用户
$ git config -l 查看配置信息
$ git config --global -l 查看全局配置信息
$ git config --list 查看所有配置信息
配置全局信息:用户名和邮箱
$ git config --global user.name ‘merlin’
$ git config –global user.email ‘merlinzjl@163.com’
配置局部信息
$ git config --local user.name ‘merlin’
$ git config -- user.name ‘merlin’
配置别名
git config --global alias.st status
调用 git status时 只需要git st即可
设置属性
git config --global pull.rebase true
全局配置文件存放在~/.gitconfig文件中
局部配置文件当前文件下的.git/config文件中
优先级 local > global
2 创建仓库,完成版本控制
创建本地git仓库
$ git init
会生成一个隐藏文件夹”.git“,暂存区和历史区还有其他版本信息都存储在这个文件。
在本地编写完成代码后(在工作区),把一些文件提交到暂存区。
$ git add xxx 把某个文件或者文件夹提交到暂存区完成文件名包含后缀名
$ git add . / git add -A 把当前仓库中所有最新修改的文件都提交到暂存区
删除工作区文件或者文件夹,并将这次删除提交到工作区
$ git rm xxx / $ git rm –r xxx
$ git status 查看当前文件的状态(红色代表在工作区,绿色代表在暂存区,看不见东西证明所有修改后的信息都已经提交到历史区)
把暂存区内容提交到历史区
$ git commit –m’描述信息’
注意–m后面没有空格
查看历史版本信息
$ git log 查看历史区文件的提交信息
$ git reflog 包含回滚的信息
$ git reset --hard 版本号(reflog中的版本号)
三、GIT-HUB
github是一个开源的源代码管理平台,用户注册后,可以在自己账户下创建仓库,用来管理项目的源代码。
将本地仓库信息提交到远程仓库
查看本地仓库和哪些远程仓库链接
$ git remote -v
建立本地仓库和远程仓库的链接,origin是一个常用名
$ git remote add origin [GIT仓库地址]
删除关联信息
$ git remote rm origin
从远程仓库拉取
$ git pull origin master
把本地代码提交到远程仓库
$ git push origin master
$ git clone [远程仓库git地址] [别名,可以不设置,默认是仓库名] 默认是master分支
git clone -b 分支名 地址 这样可以clone分支
/*
真实项目开发流程:
- leader负责创建好中央仓库(增加远程操作)
- 小组成员基于git clone 把远程仓库及默认的内容clone到本地。
git clone 将本地仓库”git init” 和对应的远程仓库也保持了关联”git remote add”, 把远程仓库默认的内容拉取到本地”git pull”
此时如果从远程仓库拉取或者提交,只需直接 $git pull或者$git push即可。
*/
git tag -a v0.1 -m '补充说明信息' 打标签命令 将当前版本代码打上标签
git tag -a v0.02 版本id -m'' 指定版本代码上打上标签
git push --tag 将结果推送到远程仓库中
git diff 默认查看没有存在暂存区的文件修改
git diff --staged 查看暂存区的修改
参考
https://www.cnblogs.com/miracle77hp/articles/11163532.html