当前位置: 首页 > news >正文

[GIT]版本控制工具

[GIT]版本控制工具

  • Git 的命令
  • Git 的配置信息
    • 查看现有 Git 配置信息
    • 设置 Git 配置信息
      • 用户信息配置
      • 文本编辑器配置
      • 差异分析工具配置
    • 编辑 Git 配置文件
  • Git 仓库操作
    • 初始化 Git 仓库
    • 克隆 Git 仓库
    • Git 分支仓库创建
    • Git 远程仓库命令
  • Git 提交历史
  • Git 标签
    • 添加标签
    • 查看已有标签
    • 删除标签
    • 查看标签版本的修改内容
  • 其它操作

Git 是分布式的版本控制工具

Git 的命令

可以直接在终端输入 git+回车,此时会出现提示信息

此时查看提示信息,列出了常用的 git 的可执行命令以及简介

usage: git [--version] [--help] [-C <path>] [-c <name>=<value>][--exec-path[=<path>]] [--html-path] [--man-path] [--info-path][-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare][--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]<command> [<args>]These are common Git commands used in various situations:start a working area (see also: git help tutorial)clone             Clone a repository into a new directoryinit              Create an empty Git repository or reinitialize an existing onework on the current change (see also: git help everyday)add               Add file contents to the indexmv                Move or rename a file, a directory, or a symlinkrestore           Restore working tree filesrm                Remove files from the working tree and from the indexsparse-checkout   Initialize and modify the sparse-checkoutexamine the history and state (see also: git help revisions)bisect            Use binary search to find the commit that introduced a bugdiff              Show changes between commits, commit and working tree, etcgrep              Print lines matching a patternlog               Show commit logsshow              Show various types of objectsstatus            Show the working tree statusgrow, mark and tweak your common historybranch            List, create, or delete branchescommit            Record changes to the repositorymerge             Join two or more development histories togetherrebase            Reapply commits on top of another base tipreset             Reset current HEAD to the specified stateswitch            Switch branchestag               Create, list, delete or verify a tag object signed with GPGcollaborate (see also: git help workflows)fetch             Download objects and refs from another repositorypull              Fetch from and integrate with another repository or a local branchpush              Update remote refs along with associated objects'git help -a' and 'git help -g' list available subcommands and some
concept guides. See 'git help <command>' or 'git help <concept>'
to read about a specific subcommand or concept.
See 'git help git' for an overview of the system.

Git 的配置信息

查看现有 Git 配置信息

git config --list

输出

diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
pull.rebase=false
credential.helper=manager-core
credential.https://dev.azure.com.usehttppath=true
user.name=xxxx
user.email=****@xx.xx****
credential.helper=store
http.sslverify=false

设置 Git 配置信息

用户信息配置

  • user.name:提交的用户名称
  • user.email:提交的用户邮件
  • global: global 设置全局配置,否则设定的为当前项目的配置
git config [--global] user.name xxxx
git config [--global] user.email xxxx

文本编辑器配置

一般 Git 使用的文本编辑器是 Vi 或者 Vim,也可设置为 Emacs

git config [--global] core.editor emacs

差异分析工具配置

解决合并冲突时使用的差异分析工具,git 的差异分析工具选项包括:
kdiff3,tkdiff,meld,xxdiff,emerge,vimdiff,gvimdiff,ecmerge,和 opendiff 等合并工具的输出信息

git config [--global] merge.tool vimdiff

编辑 Git 配置文件

git config -e [--global]

输出:

[core]repositoryformatversion = 0filemode = falsebare = falselogallrefupdates = truesymlinks = falseignorecase = true
[remote "origin"]url = https://github.com/******/xxxx.gitfetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]remote = originmerge = refs/heads/master

Git 仓库操作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tQwoB3Mr-1682055699588)(2023-04-21-13-33-00.png)]

  • workspace : 工作区
  • staging area : 暂存区/缓存区
  • local repository : 版本库或本地仓库
  • remote repository : 远程仓库

初始化 Git 仓库

git init [path]// 初始化 [指定路径] git 仓库
git add *.c //新增.c结尾的文件为版本控制范围
git add README //新增README文件为版本控制范围
git commit -m '提交说明'

克隆 Git 仓库

git clone <repo> [<directory>]
  • repo: git 仓库
  • directory: 本地目录

Git 分支仓库创建

命令说明
git branch列出所有分支
git branch (branchname)创建分支命令
git checkout (branchname)切换分支命令
git merge [alias]/[branch]合并分支命令
git branch -d (branchname)删除分支命令

当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录

Git 远程仓库命令

命令说明
git remote查看用户远程库
git remote add [shortname] [url]添加远程仓库
git remote rm [别名]删除远程仓库
git fetch从远程库获取代码
git pull下载远程库代码并合并
git push [alias]/[branch]推送分支数据到远程仓库

Git 提交历史

命令说明
git log查看历史提交记录
git blame [file]以列表形式查看指定文件的历史修改记录

git log [attr]:

  • –oneline : 提交记录简洁版本
  • –graph : 提交历史拓扑
  • –reverse : 逆向显示提交历史
  • –author : 查找指定用户的提交日志
  • –since : 查找指定日期的提交日志
  • –before : 查找指定日期前的提交日志
  • –until : 查找到指定日期的提交日志
  • –after : 查找指定日期后的提交日志
  • –no-merges : 隐藏合并提交
  • –decorate : 查看日志标签
git log --before={3.weeks.ago}
git log --after={2010-04-18}

Git 标签

添加标签

希望记住特别的提交快照,可以使用 git tag 打上标签

git tag -a <tagname> [-m "runoob.com标签"] [commitId]
  • [-a] 创建一个带注解的标签,记录添加标签的原因,GIT 打开编辑器写注释
  • [commitId] 之前忘记添加标签时,可以通过 commitId 指定之前提交的版本添加注释

查看已有标签

git tag

删除标签

git tag -d [tagname]

查看标签版本的修改内容

git show [tagname]

其它操作

命令说明
git add .添加文件到暂存区
git commit将暂存区内容添加到版本库或本地仓库中
git status查看仓库当前状态
git diff比较文件的不同,即暂存区和工作区的差异。
git reset回退版本
git rm将文件从暂存区和工作区中删除
git mv移动或重命名工作区文件
http://www.lryc.cn/news/170241.html

相关文章:

  • Linux文件管理命令
  • Netty面试题(三)
  • risc-v dv源代码分析
  • C语言基础语法复习07-c语言关键字的解释
  • 阿里巴巴全店商品采集教程,阿里巴巴店铺所有商品接口(详解阿里巴巴店铺所有商品数据采集步骤方法和代码示例)
  • Android 白天黑夜模式设置
  • FFMpeg zoompan 镜头聚焦和移动走位
  • 利用hutool工具类实现验证码功能
  • 前端面试题: 请解释什么是函数的作用域?
  • 华为云云服务器云耀L实例评测 | 华为云云服务器实例新品全面解析
  • Nginx配置SSL证书
  • 一,安卓aosp源码编译环境搭建
  • video 视频编解码一些debug方法
  • 中秋国庆假期——模板推荐
  • 【配代码演示】Cookie和Session的区别
  • 【Linux初阶】信号入门2 | 信号阻塞、捕捉、保存
  • 【已解决】:该该虚拟机似乎正在使用中。如果该虚拟机未在使用,请按“获取所有权(T)“按钮获取它的所有权。否则,请按“取消(C)“按钮以防损坏。
  • 系统架构常用的工具
  • 腾讯云2核4G服务器5M带宽 218元一年 优惠价格明细表
  • [C++ 网络协议] 多播与广播
  • IOS17正式版今日发布
  • 2560. 打家劫舍 IV
  • java web中部署log4j.xml
  • 【张兔兔送书第一期:考研必备书单】
  • 基于Spring Boot+ Vue的健身房管理系统与实现
  • ThreadLocal线程局部变量
  • C++ Primer (第五版)第一章习题部分答案
  • Python与GUI集成:零基础也能开发国际象棋游戏
  • SaaS软件能保证数据安全吗?
  • 方案:基于AI烟火识别与视频技术的秸秆焚烧智能化监控预警方案