前言
平时我都是用SVN进行版本,终于是花了一下午的时间简单把Git入门了一下。平时用小乌龟的话,Git和SVN一样还是很容易入门的。
Git基本概念及命令行
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
创建出来的.git内的是仓库区
.git外面的目录是工作区
Git常用命令行
git init xx:在右键的位置创建一个名为xx的文件夹
git status:查看当前文件夹状态:
git add a.txt:将a.txt这一未被管理的文件放进暂存区
git add .:将所有的当前修改放进暂存区
git commit -m“创建了xxx”:将暂存区的变化生成一个新的版本,“”中的内容是日志
git log:输出之前的版本变化
git clone xx:从服务器上克隆项目
touch .gitignore :创建一个忽略文件
touch xx.txt:创建一个xx.txt文件
vim命令行
vim编辑器: i 编辑模式
esc 退出当前模式
shift+zz退出vim
访问Git的方式
https方式:
第一次克隆需要我们输入账号密码(私有项目)
ssh方式:
- ssh是一种开源非对称加密通信协议,
- ssh只是一种协议,有开源实现也有商业实现,git默认使用开源实现的openssh
- ssh通信需要一对密钥(公和私一对),私钥留在自己电脑上,公钥给其他的电脑
- 使用GitGUI生成密钥,并把公钥放在服务器上
添加、提交、推送、拉取
添加 add (如果使用使用小乌龟 勾选即为add)
提交 commit:提交只提交到本地仓库,需要推送才会到把变化更新到服务器仓库
推送 push:如果服务器版本比我们新则不会推送不成功,需要先拉取
拉取 pull:拉取时应确保工作区整洁(先提交本地再拉取服务器的变化)
冲突
冲突如何产生的:两个分支修改了同一个文件,合并的时候会发生冲突
如何解决冲突:协商修改冲突位置,并重新提交
如何减少冲突:
- 先pull再修改
- 确保自己正在修改的文件是最新版本的
- 各自开发各自的模块,如果要修改公共文件,最好先确认有没有人正在修改
- 不要擅自修改他人的代码
忽略文件
忽略文件:.gitignore
作用:带有被忽略的文件后缀的文件不会被提交
按文件名忽略文件夹:文件夹名/ ([Aa]忽略大小写)
按路径忽略文件夹:/文件夹名(路径)/
忽略文件:*.后缀名
反忽略:忽略次级文件夹,反忽略对文件和文件夹都有效,!*.文件名、!A/
版本回退
版本回退的本质就是head指针指向的改变
在版本日志界面选择一个节点,使用重置(Reset)命令
Head 当前分支的引用指针(重置就是移动Head这个指针)
Index 就是缓存区(被Add的,也可以说是将要提交的,文件的快照)
工作区 .git所在的目录以及子目录
一半选择硬重置
子模块
子模块就是一个git仓库包含其他git仓库
当我们需要把其他开源项目作为本项目的一个库,并可可以随时拉取更新的时候
或者我们的项目需要分模块独立开发的时候可以使用子模块
克隆有子模块的仓库,需要选择递归
issue和PullRequest(github、gitee)
issue:讨论
PullRequest:拉取请求,为项目贡献代码,请求项目管理者合并自己的代码
git非常灵活,可以根据自己的需要构思出来不同的工作流(团会开发的方式和流程)
资料下载
提取码:5io6