git简介
linus在2008年创建
git和svn的区别
svn是集中式版本管理工具
git是分布式版本管理工具
Git对网络的依赖性低,非传输阶段无需联网;SVN完全依赖于网络,Git天生使用于敏捷开发/测试
是否有中央服务器:
对于网络的依赖程度不同:
资源存储格式不同:Git在保存时将文件内容读取后拆成原数据保存至自己本身的数据库中,Git存储空间占用小
版本号的不同:
分支操作的影响不同:SVN大部分人认为没有分支,但其实是有的,只是不好用而已。在Git环境中可以另起分支做项目调试,分支没有数量限制,分支可以是依赖关系,也可以是并行关系,Git拉分支几乎不占用时间成本,秒完成的,效率高,易用性强。
提交操作不同:SVN提交必须有网络,风险大;Git提交至本地,不受网络因素影响,提交至本地自动push至中央服务器,不存在数据丢失的情况。
应用场景的不同:一般在项目规模不大,团队参与人员水平参差不齐,项目的版本更新迭代不频繁,权限要求不高时使用SVN;项目规模大,开发人员多,开发人员所处地域较为分散的项目通常使用Git,但是Git没有权限管理,所以适用于安全性能较低的项目,但目前有一些公司对Git进行了权限的增强,所以现在很多企业使用Git时仍然可以保证安全性不被干扰。

git的分区
- 工作区workspace
- 暂存区stage
用来保存本地版本库的所有文件 - 版本库repository
一个简单的数据库,分为两个部分- 本地仓库local
- 远程仓库remote

git工作流程
- 初始化项目文件夹为git的工作区
- 在公共作区中新增修改删除文件
- 利用add命令将发生了改变的文件添加到暂存区中
- 确认没有问题后,就可以进行提交工作
- 利用commit进行提交到本地仓库
- 利用push命令完成分享工作
git的分支

git图形化工具
- TortoiseGit
- Sourcetree
- IDE开发工具
git的使用前配置
不配置的话commit会报错
git config --global user.name "abc"
git config --global user.email "2143141124@qq.com"
git的基本操作命令
- 暂存区
//暂存区
git init [path] //对指定路径文件夹进行初始化操作
git init --bare [path] //初始化为裸仓库 ,不支持add,commit
git status //目前工作区的状态
git add . //将目录下下所有文件放入暂存区
git add -A
git add -u //所有当前路径下,修改过的删除的添加进暂存区,不包括新增的
git add [-A] <file>
git rm --cached <file>//将文件从暂存区删掉
- 本地仓库
//本地仓库区
git commit -m "提交消息" //提交到本地仓库
git diff <file> //显示文件的区别
- 打印本地日志
git log //查看当前仓库群补版本信息
git log --graph --pretty=oneline//查看简写的版本操作
git reflog // 查询操作历史
- 版本比较操作
git diff <commit> <file>
git diff head head^ //当前版本和上一次版本比较
git diff head@{0} head@{1} //同上
- 恢复重置命令
git reset [soft|mixed|hard] <commit> //将数据恢复到指定提交
//soft:将会修改本地仓库的内容,保留暂存区内容,保留工作区内容
//mixed:这是默认修改参数,将会修改本地仓库,清空暂存区,保留工作区内容
//hard:将会修改本地仓库的内容,清空暂存区的内容,修改工作区的内容为指定的恢复内容
git reset --hard head@{1}
- 从本地仓库获取文件
git checkout . //获取当前版本下的全部文件
- 远程仓库关联
git remote //远程仓库指令
git remote -v //查看当前仓库关联的远程仓库情况
git remote add origin root@172.16.6.69:/root/git/woniuboss.git //关联远程仓库
- 推送命令
git push 远程数据库名 本地分支名:远程分支名// 将本地仓库指定分支内容推送到远程指定分支中
-u参数:执行一次后,未来都可以直接执行git push,pull同理
- 拉取命令
git pull 远程数据库名 远程分支名:本地分支名 //将远程仓库指定分支内容拉取到本地仓库分支中
- 克隆命令
git clone url
- 分支操作
git branch
git branch -r // 查看远程分支
git branch -a//查看远程分支和本地分支
git branch 分支名 // 创建分支
git branch -d 分支名 // 删除指定分支,未被合并分支,不允许这么删除
git branch -m 旧分支名 新分支名 //对分支进行改名操作
- 合并分支
git merge 分支名 //再主分支上才能使用
- 非快速合并
当非快速合并冲突时,余姚手工解决冲突问题,然后添加冲突文件到暂存区,最后提交暂存区的内容到本地仓库,这样就解决了冲突问题
- 快速合并
就是单分支合并
1691

被折叠的 条评论
为什么被折叠?



