Git的使用

Git概述

  1. Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件,Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

  2. Git 与 SVN 区别

    • Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。
    • Git 与 SVN 区别点:
      • Git 是分布式的,SVN 不是(开发人员具有远程和本地Git仓库)
      • Git 把内容按元数据方式存储,而 SVN 是按文件
      • Git 分支和 SVN 的分支不同
      • Git 没有一个全局的版本号,而 SVN 有
      • Git 的内容完整性要优于 SVN
  3. SVN是集中式版本控制系统(远程服务器)

    • 缺点
      • 服务器单点故障
      • 容错性差
        在这里插入图片描述
  4. Git的工作流程

    • 从远程仓库中克隆代码到本地仓库
    • 从本地仓库中checkout代码然后进行代码修改
    • 在提交前先将代码提交到暂存区
    • 提交到本地仓库,本地仓库中保存修改的各个历史版本
    • 修改完成后,需要和团队成员共享代码时,将代码push到远程仓库

在这里插入图片描述

Git常用命令

  1. 环境配置 :
    • 设置用户信息
      • git config --global user.name " "
      • git config --email user.email " "
    • 查看配置信息
      • git config --list
      • git config user.name
    • 通过上面的命令设置的信息会保存在~/.gitconfig文件中
  2. 获取git仓库
    • 在本地初始化一个仓库 : git init
    • 从远程仓库克隆 : git clone URL
  3. Git的工作区,暂存区,版本库
    • 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。
    • 暂存区:叫 stage 或 index.一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index).
    • 工作区:包含.git文件夹的目录,主要用于存放开发代码

在这里插入图片描述

  1. Git工作目录下文件的两种状态

    • untracked 未跟踪 (未被纳入版本控制)
    • tracked已跟踪 (被纳入版本控制)
      • Unmodified 未修改状态
      • Modified 已修改状态
      • Staged 已暂存状态
    • git status 查看文件状态
    • git status -s 使输出信息更加简洁
  2. 本地仓库 :

    • git add 文件名称 (将未跟踪的文件添加到暂存区)
    • git reset HEAD 文件名称 (将暂存区的文件重新变成未跟踪状态)
    • git rm “文件名称” (删除文件,默认进入暂存区)
    • git commit -m “日志信息” (提交到本地版本库)
    • git log (查看日志记录)
    • 将文件添加至忽略列表
      • 一般有一些文件无需纳入Git的管理,也不希望它们总出现在未跟踪文件列表,可以在工作目录中创建一个名为.gitignore的文件,列出要忽略的文件模式
        在这里插入图片描述
        在这里插入图片描述
        在这里插入图片描述
  3. 远程仓库的操作

    • 查看远程仓库 :
      • git remote (-v)
      • git remote show origin
      • origin : 是克隆的远程仓库的默认名字
    • 添加远程仓库
      • git remote add < shortname > < url> (添加一个新的远程Git仓库,同时指定一个可以引用的简写)
      • 可以添加多个远程仓库关联
    • 移除无效的远程仓库:(只是从本地移除远程仓库的记录,并不会真正影响到远程仓库)
      • git remove rm 远程仓库的默认名字
    • 从远程仓库中抓取与拉取
      • git fetch origin master (是从远程仓库获取最新版本到本地仓库,不会自动merge)
      • git merge origin/master (合并文件)
      • git pull origin master (从远程仓库获取最新的版本并merge到本地仓库)
        • 如果本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错,解决问题,可以在git pull 命令候加入参数 --allow-unrelated-histories
    • 推送到远程仓库
      • git push [ remote-name ] [ branch-name ]
  4. Git分支

    • 查看分支
      • 列出所有本地分支 : git branch
      • 列出所有远程分支 : git branch -r
      • 列出所有本地分支和远程分支 : git branch -a
    • 创建分支
      • git branch 分支名称
    • 切换分支
      • git checkout 分支名称
    • 推送至远程仓库分支
      • git push 远程仓库的默认名称 分支名称
    • 合并分支
      • git merge 分支名称
      • 如果在两个不同的分支,对同一个文件的统一部份进行了不同的修改,Git就没有办法合并他们,同时会提示文件冲突,此时需要我们打开冲突的文件并进行手动修复冲突内容,最后执行 [ git add 文件名字 ] 命令来标识冲突已解决
    • 删除分支
      • 删除本地分支 : git branch -d 分支名称
        • 如果要删除的分支中进行了一些开发动作,此时执行上面的删除命令并不会删除分支,如果坚持要删除此分支,可以将命令中的参数改为 -D
      • 删除远程分支 : git push origin -d 分支名称
  5. Git标签

    • Git可以给历史中的某一个提交打上标签,以示重要,会使用这个功能来标记发布结点(v1.0,v1.2等),标签指的是某个分支某个特定时间点的状态,通过标签,可以很方便的切换到标记时的状态
    • 列出已有的标签
      • git tag (列出所有tag)
      • git show [tag] (查看tag的信息)
    • 创建新的标签
      • git tag [tagname]
    • 将标签推送至远程仓库
      • git push [ remote ][ tag ]
    • 检出标签 : 新建一个分支,指向某个tag
      • git checkout -b [ branch ] [ tag ]
    • 删除标签
      • git tag -d [ tag ] : (删除本地tag)
      • git push origin :refs/tags/[ tag ] (删除远程tag)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值