git笔记

git简介

linus在2008年创建

git和svn的区别

svn是集中式版本管理工具在这里插入图片描述
git是分布式版本管理工具

Git对网络的依赖性低,非传输阶段无需联网;SVN完全依赖于网络,Git天生使用于敏捷开发/测试

是否有中央服务器:

对于网络的依赖程度不同:

资源存储格式不同:Git在保存时将文件内容读取后拆成原数据保存至自己本身的数据库中,Git存储空间占用小

版本号的不同:

分支操作的影响不同:SVN大部分人认为没有分支,但其实是有的,只是不好用而已。在Git环境中可以另起分支做项目调试,分支没有数量限制,分支可以是依赖关系,也可以是并行关系,Git拉分支几乎不占用时间成本,秒完成的,效率高,易用性强。

提交操作不同:SVN提交必须有网络,风险大;Git提交至本地,不受网络因素影响,提交至本地自动push至中央服务器,不存在数据丢失的情况。

应用场景的不同:一般在项目规模不大,团队参与人员水平参差不齐,项目的版本更新迭代不频繁,权限要求不高时使用SVN;项目规模大,开发人员多,开发人员所处地域较为分散的项目通常使用Git,但是Git没有权限管理,所以适用于安全性能较低的项目,但目前有一些公司对Git进行了权限的增强,所以现在很多企业使用Git时仍然可以保证安全性不被干扰。

在这里插入图片描述

git的分区

  1. 工作区workspace
  2. 暂存区stage
    用来保存本地版本库的所有文件
  3. 版本库repository
    一个简单的数据库,分为两个部分
    • 本地仓库local
    • 远程仓库remote
      在这里插入图片描述

git工作流程

  1. 初始化项目文件夹为git的工作区
  2. 在公共作区中新增修改删除文件
  3. 利用add命令将发生了改变的文件添加到暂存区中
  4. 确认没有问题后,就可以进行提交工作
  5. 利用commit进行提交到本地仓库
  6. 利用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 分支名 //再主分支上才能使用
  • 非快速合并

当非快速合并冲突时,余姚手工解决冲突问题,然后添加冲突文件到暂存区,最后提交暂存区的内容到本地仓库,这样就解决了冲突问题

  • 快速合并

就是单分支合并

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zerobyte_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值