Git基本使用

69 阅读4分钟

Git

Git作为目前世界上最先进的分布式版本控制系统,是每个程序猿必须掌握的技能,本文将为你介绍git的图形化界面Github Desktop和Git Bash的使用

Github Desktop

  • git的图形化界面

标签功能

image-20230712192111658

创建标签标明提交原因

远程仓库

github

github desktop要求登录github账号,登录后可以直接拉取

gitee

拿到仓库的url,

image-20230712193945122

可能还需要gitee的账号密码

文件内容比对

image-20230712195114989

旧文件第一行改变,新文件第一行第二行

版本号

  • 通过 SHA-1算法得到

  • 是由以四十位十六进制的数组成

  • 可以用于定位文件:前二位为文件夹名字,后38位为文件名

  • git-bash中的版本号

    • 通过 git cat-file -p 版本号 可以查找对应文件的内容

    • 第一次用该命令查找github desktop中得到的版本号可以得到提交信息

      image-20230712203546266

      image-20230712203703586

      • 其中tree后面的版本号所指向的文件含有要查找的文件的状态

      • parent后面的版本号为上一次提交的版本号

        image-20230712203829171

    • 第二次用该命令查找tree后的版本号

      image-20230712204541884

      其中040000代表文件类型 tree后的版本号为其所指向文件,这里我是在src/com/learn下的文件,所以要多几次

    • 最后得到文件真正的内容

      image-20230712204813642

  • 对文件的增删改的变化

    • 增加则出现版本号
    • 修改则有版本号改变(文件引用改变)
    • 删除则有版本号消失
    • 但实际上,在仓库中的文件并不会真正的改变,实际上是出现新的文件,改变的是版本号所指向的版本号

Git Bash使用

image-20230712211840857

  • git -v ---查看git版本

  • gti init ---在要创建仓库的文件夹创建初始化仓库

    • 用git bash 和用 github desktop创建的不同
      • gb初始化为空仓库,什么都没有
      • gd初始化里面含有一个文件,并且已经提交过一次
  • git clone 仓库的url地址( 别名) --- 克隆远程仓库的内容到本地仓库(加上别名则克隆下来的文件夹就会加这个名字)

  • git (--global) config 配置名称 配置的值 ---给git进行配置(加上global就会为所有仓库配置)

    • 可以直接在config文件中修改,但要注意修改的格式

      [user]
          name = xxx
          password = xxx
      
  • git status -- 查看暂存区状态

  • git add 文件名 -- 添加工作区的文件到暂存区

    • git add *.xxx 将后缀为xxx的文件放到暂存区
  • git rm --cached<文件名> -- 将暂存区的文件放回工作区

  • git commit -m 日志 -- 提交暂存区的文件到仓库

    image-20230712215112647

  • git log --- 查看提交记录

  • gti log 版本号/标签 --- 查看该版本及该版本之前的日志信息

  • git log -- online --- 查看提交记录简洁版

  • git restore 文件名 --- 从当前版本库中恢复文件

  • git reset --hard 版本号 --- 将当前仓库版本修改,可能会丢失当前版本之后的版本记录

  • git revert 版本号 --- 还原到当前版本的上一个版本

  • gti branch 分支名 --- 基于当前版本创建分支

  • git branch -v --- 查看分支

  • git checkout 分支名 --- 切换到该分支

  • git checkout -b 分支名 --- 创建分支并切换过去

  • git checkout -b 标签 --- 基于该标签代表的版本创建分支并切换过去,创建出来的分支名就是标签名

  • git branch -d 分支名 ---删除分支

  • git merge 分支名 --- 合并某个分支,需要先切换到目标分支

    • 出现版本冲突时,到文件去选择你要的结果,再次提交即可
  • git tag --- 查看标签名

  • git tag 别名 版本号 --- 给该版本添加该标签

  • git tag -d 别名 --- 删除该标签

  • git remote add 名字 url/ssh --- 关联到远程仓库

  • git remote remove 名字 --- 删除关联

  • git remote rename --- 改名

  • git push 名字 --- 推送到远程仓库

    • 使用ssh时需要安全认证

      image-20230713103112094

      C之后为ssh连接,然后一直回车即可

      会在用户目录里生成.ssh的文件夹

      image-20230713103232044

      里面的这个文件包含了安全认证内容,打开全部复制,然后到远程仓库里SSH公钥里进行复制

  • git pull 名字 --- 拉取远程仓库的文件