目录
1什么是git?
1.1了解版本控制
1.2常见的版本控制工具
1.3版本控制分类
2配置git
2.1下载软件
2.2启动git (推荐使用linux命令行启动)
2.3常用linux命令练习
2.4git的配置
3git基本理论
3.1四大区域
3.2git的工作流程
4在项目中使用git
4.1本地仓库搭建
4.2文件的四种状态
4.3忽略文件
5码云的使用
6idea集成git
7git工作流程
1什么是git?1.1了解版本控制
在了解git之前,我们首先要明白什么是版本控制
版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。
实现跨区域多人协同开发
追踪和记载一个或者多个文件的历史记录
组织和保护你的源代码和文档
统计工作量
并行开发、提高开发效率
跟踪记录整个软件的开发过程
减轻开发人员的负担,节省时间,同时降低人为错误
而控制版本的工具有很多,git就是其中之一
1.2常见的版本控制工具
- git
- svn
- cvs
- vss
- tfs
- visual studio online
现在最主流,最常用的工具是git和svn
1.3版本控制分类
- 本地版本控制 --rcs
在本地记录文件的每次更新,适合个人使用
- 集中版本控制 --svn
将所有的版本数据全部保存到服务器上,协同开发者可以从服务器上同步更新或者上传自己的修改
- 分布式版本控制 --git
当服务器崩掉之后,svn上的所有用户都无法进行下一步开发,使用具有风险,于是就出现了分布式开发git,它将所有的版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有的历史版本,同时可以离线在本地进行提交的操作,将信息先提交至暂存区,连接网络后再push到服务器中
2配置git2.1下载软件在官网 https://git-scm.com/
或者 淘宝镜像 http://npm.taobao.org/mirrors/git-for-windows/
下载git
2.2启动git (推荐使用linux命令行启动)1开始菜单启动
2 任何一个位置(桌面 文件夹)下鼠标右键选择
2.3常用linux命令练习在桌面新建练习文件夹,双击进入练习文件夹,鼠标右键 选择 git bash here 打开命令行页面,发现此时已经定位到了当前目录下
mkdir命令在该目录下新建两个目录test1和test2
cd 进入test1
cd ..退回到test1
ls 列出所有目录
pwd显示根目录
touch创建一个文件
mv移动一个文件 将tete.html移动到test1文件夹下
rm删除文件
reset重新初始化终端/清屏 clear查看历史命令 help帮助 exit退出
2.4git的配置查看配置 git config -l
查看系统config
查看当前用户config
git配置文件存放位置
C:\Users\自己的账户名\ .gitconfig
3git基本理论3.1四大区域3.2git的工作流程
- 工作区 项目代码的存放位置
- 暂存区 用于临时存放改动,事实上它只是一个文件,保存即将提交到文件的列表信息
- 资源库 安全存放数据的位置,这里面存放着所有版本的数据,其中head指向最新放入仓库的版本
- 远程的git仓库 用于托管代码的服务器
- 在工作区域编写代码
- 将新增的代码或者需要改动的代码文件放入暂存区 (add命令)
- 将暂存区的文件提交到资源库 (commit命令)
- 将资源库的文件提交到git仓库(push命令)
所以,git管理的文件有三种状态,分别是已修改(modified),已暂存(staged),已提交(commited)
4在项目中使用git
4.1本地仓库搭建创建本地仓库
git init
克隆远程仓库
git clone [url]
随便找一个开源项目
4.2文件的四种状态Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件
Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改 !
Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified
git status [filename] 查看文件当前状态
git status 查看所有文件状态
4.3忽略文件在主目录下建立 .gitignore文件
规则:
- 以空行或者#开始的行会被忽略
- 可以使用linux通配符 *代表任意多个字符 ?代表一个字符 [abc]代表可选字符范围 {string}表示可选字符串
- 如果名称前以!开始 表示例外规则,将不被忽略
- 如果名称的最前面是一个路径分隔符/ 表示要忽略的文件在此目录下,而子目录中的文件不忽略
- 如果名称的最后面是一个路径分隔符/ 表示要忽略的是次目录下该名称的子目录
eg
#为注释*.txt #忽略所有 .txt结尾的文件,这样的话上传就不会被选中!!lib.txt #但lib.txt除外/temp #仅忽略项目根目录下的TODO文件,不包括其它目录tempbuild/ #忽略build/目录下的所有文件doc/*.txt #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
5码云的使用设置本机绑定ssh公钥,实现免密码登陆
把id_rsa.pub中的公钥信息粘贴到 设置->安全设置->ssh公钥->公钥
6idea集成git新建一个仓库,将git相关文件拷贝到对应的代码目录下
打开idea
add到缓存区项目右键 -》git-》 add
或者使用命令 git add .
add到缓存区后 项目文件颜色变为绿色
提交右上方快捷commit或者命令行 commit -m "信息"
push到远程仓库命令行 git push
查看仓库 提交成功
7git工作流程这篇文章写的很详细,推荐给大家~
https://www.ruanyifeng.com/blog/2015/12/git-workflow.html
,