git学习笔记

git笔记

大学期间只是简单的了解了一下git,工作之后才真正用到了git

本文仅仅是作者是刚开始学习git的笔记,只包含一些指令操作,没有更深一步了解使用

推荐一个网站,可以有效帮助熟练使用git的各种指令:https://oschina.gitee.io/learn-git-branching/

一.版本控制

1.版本控制应该有的功能

  • 协同修改

    多人并行修改服务器端的同一个文件

  • 数据备份

    不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态

  • 版本管理

    在保存每一个版本的文件信息时做到不保存重复数据

    svn采用的时增量式管理的方式

    git采取了文件系统快照的方式

  • 权限控制

    对团队中参与开发的人员进行权限控制

    对团队开发者贡献的代码进行审核–git独有

  • 历史记录

    查看修改人、修改时间、修改内容、日志信息

    将本地文件恢复到某一个历史状态

  • 分支管理

    允许开发团队在工作过程中多条生产线同时推进任务,进一步提高效率


二.Git简介

1.git优势

  • 大部分操作在本地完成,不需要联网
  • 完整性保证
  • 尽可能添加数据而不是删除或修改数据
  • 分支操作非常快捷流畅
  • 与Linux命令全面兼容

2.git安装

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述


3.git结构

  • 本地结构
    在这里插入图片描述

4.git和代码托管中心

​ 代码托管中心任务:维护远程库

  • 局域网下

    GitLab服务器

  • 外网环境下

    GitHub

    码云(Gitee)


5.本地库和远程库

  • 团队内部协作
  • 跨团队协作

三.命令行操作

1.本地库初始化

  • 命令:git init

  • 效果:
    在这里插入图片描述

  • 注意:./git目录中存放的时本地库相关的子目录和文件,不要对它进行操作


2.设置签名

  • 形式:

    用户名:***

    Email地址:***@email.com

    信息保存位置:./git/config

  • 作用:区分不同开发人员的身份

  • 辨析:这里设置的签名和登陆远程库的账号密码没有任何关系

  • 命令:

    1. 项目/仓库级别:仅在当前本地库范围内有效

      git config

    2. 系统用户级别:登陆当前操作系统的用户范围

      git config --global

  • 级别优先级:

    就近原则:项目级别优先于系统级别

    二者必须要有一个


3.查看状态

git status


4.添加到暂存区

git add 文件名


5.提交

git commit 文件名


6.查看历史记录

git log 查看版本记录

多屏显示控制方式:

  • 空格向下翻页
  • b向上翻页
  • q退出

参数:

  • --pretty=oneline :每条记录只显示一行
  • --oneline 只显示部分hash值

git relog 除了显示记录之外,还会显示回退到当前版本的步数


7.删除文件并找回

退回到删除前的版本即可


8.前进后退

  • 基于索引值操作(推荐)

    git reset --hard 索引值

  • 使用^符号

    只能后退

    git reset --hard HEAD^ 后退几个版本,就加几个^

  • 使用~符号

    只能后退

    gie reset --hard HEAD~回退的步长


9.比较文件

git diff 文件名 展示文件变化的内容


四.分支管理

1.优点

  • 同时并行推进多个功能开发,提高效率
  • 各个分支独立

2.操作

  • git branch -v 查看各分支

  • git branch 分支名 创建分支

  • git checkout 分支名 切换分支

  • 合并分支

    1. 切换到被合并的分支上
    2. 执行git merge 分支名 将其他分支内容到当前分支
  • 解决冲突

    1. 编辑文件,删除特殊符号
    2. 把文件修改到满意的程度
    3. git add[文件名]
    4. git commit -m “日志信息”
  • git remote add 别名 远程仓库地址 保存远程仓库地址

  • git push 别名/地址 分支名

  • git clone 地址

    1. 完整的把远程库下载到本地
    2. 创建origin远程地址别名
    3. 初始化本地库
  • git pull = fetch + merge

    git fetch[远程库地址别名][远程分支名]

    git merge [远程库地址别名/远程分支名]


3.协同开发时的冲突解决

  • 如果不是基于最新版所作的修改,不能推送,必须要先拉取
    远程仓库地址 ` 保存远程仓库地址

  • git push 别名/地址 分支名

  • git clone 地址

    1. 完整的把远程库下载到本地
    2. 创建origin远程地址别名
    3. 初始化本地库
  • git pull = fetch + merge

    git fetch[远程库地址别名][远程分支名]

    git merge [远程库地址别名/远程分支名]


3.协同开发时的冲突解决

  • 如果不是基于最新版所作的修改,不能推送,必须要先拉取
  • 拉取下来后如果进入冲突,则按照分支冲突操作解决即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值