Skip to content

Git基础

推荐两个学习Git的网站

Git在线练习

Git科普视频

“惟手熟尔”

最小配置

  • 配置user信息

    • 配置user.name:git config --global user.name 'lyydsheep'

    • 配置user.email:git config --global user.email '2230561977@qq.com'

    • Go
      //显示不同级别的配置信息
      git config --list --local
      git config --list --global
      git config --list --system

新建仓库

在git中有两种新建仓库的方式

  • git init:在本地新建一个仓库
  • git clone url:从远程服务器上克隆一个仓库

工作区和缓存区

image-20240915102716820

添加和提交文件

  • git status:查看仓库状态
  • git add:添加到暂存区
    • 可以使用通配符:git add *.txt
    • 也可以使用目录:git add .
  • git commit:只提交暂存区中的内容,不会提交工作区的内容
  • git log:查看仓库历史提交记录
    • git log --oneline:简洁地呈现日志

git reset回退版本

使用git reset命令可以回退到指定的提交版本,git reset有三种模式

  • git reset --soft xxx:回退到xxx版本,且保存xxx版本之后的工作区和暂存区的修改
  • git reset --hard xxx:回退到xxx版本,并删除xxx版本之后工作区和暂存区的修改
  • git reset --mixed xxx:回退到xxx版本,只保留xxx版本之后工作区的修改

img

使用git diff查看差异

  • git diff命令可以对两个东西进行比较,用于查看差异
    • 可以是工作区、暂存区、本地仓库之间的差异
    • 可以是不同版本之间的差异
    • 也可以是不同分支之间的差异

img

  • git diff:默认查看工作区暂存区之间的差异
  • git diff HEAD:查看工作区、暂存区本地仓库的差异
  • git diff cached:查看暂存区本地仓库之间的差异
  • git diff <commit_hash> <commit_hash>或者git diff HEAD~ HEAD:查看不同提交之间的差异
  • git diff <branch_name> <branch_name>:比较不同分支之间的差异

img

使用git rm删除文件

  • git rm <file_name>一次性将文件从工作区和暂存区中删除

img

.gitignore忽略文件

在.gitignore文件中写入匹配符,git会忽略对被匹配上的文件的管理

SSH配置和克隆仓库

如何在同一电脑上生成配置多个ssh key 公钥 私钥(保姆级教程)

  • .ssh文件夹下,使用ssh-keygen -t rsa -b 4096生成私钥文件和公钥文件
    • 将公钥文件的信息配置到GitHub上
    • 保存好私钥文件中的信息
  • git clone repo-address:克隆一个远程仓库
  • git push <remote> <branch>:推送更新内容
  • git pull <remote>:拉取更新内容

关联本地仓库和远程仓库

  • 添加远程仓库
    • git remote add 远程仓库名 远程仓库地址
    • git push -u 远程仓库名 远程仓库分支
  • 查看远程仓库
    • git remote -v
  • 拉取远程仓库内容
    • git pull 远程仓库名 远程仓库分支:本地仓库分支

分支基本操作

  • 查看分支列表:git branch
  • 创建分支:git branch <name>
  • 切换分支:git switch <name>
  • 合并分支:git merge <name>,将<name>分支合并到当前的分支
  • 删除分支:
    • git branch -d <name>:删除已合并的分支
    • git branch -D <name>:强制删除分支

rebase和merge

  • git rebase
    • 优点:不会新增额外的提交记录,形成线性历史,比较直观和干净
    • 缺点:会改变提交历史,改变了当前分支branch out节点,避免在共享分支使用
    • 例如当前在main分支下:
      • git rebase dev:将main分支的修改嫁接到dev分支后面
      • img
  • git merge
    • 优点:不会破坏原分支的提交记录,方便回溯和查看
    • 缺点:会产生额外的提交节点,分支图比较复杂
    • 例如当前在main分支下:
      • gie merge dev:合并dev分支的修改

Git和GitHub操作指南

初始化仓库并简单配置

对仓库进行初始化

  • 使用git init完成对仓库的初始化操作

对仓库进行简单配置

  • 使用git config --global user.name "lyydsheep"设置仓库的用户名
  • 同样地,可以为仓库配置邮箱git config --global user.email "2230561977@qq.com"
    • 通过命令git config --global --list 就可以查看我们为该仓库进行的配置

关于systemgloballocal

  • system-系统级: 在git安装以后,git的默认配置项都在这里
  • global-全局级:登录用户全局级别的git配置
  • local -仓库级: 对不同的仓库进行自定义配置

三个关键字所能配置的属性集合是一样的,不同在于优先级

local > global > system

为仓库创建一个分支

  • 使用git branch -M main就能为仓库创建一个main分支

最简单的Git工作流程:工作区、暂存区、仓库

相关命令

  • Git status:用于查看当前仓库的状态
  • Git add filename:将filename文件添加至暂存区
    • 单个添加太慢了,不如使用Git add .所有修改过的文件添加至暂存区
  • Git commit -m "comment":将暂存区的文件提交至仓库中
    • -m "comment":是为这次提交进行注释
  • Git log:查看历史提交记录

命令与文件状态变化过程

img

将本地仓库同步到远程GitHub仓库

为什么选择SSH协议而不是HTTPS协议?

  • 使用HTTPS协议可能在日后使用过程中需要多次输入用户名和密码,较麻烦
  • SSH协议仅需第一次配置好公私钥,今后就无需再输入用户名和密码

具体步骤:

  1. 为本地仓库创建一个远程的GitHub仓库
    • 在GitHub网页上new一个仓库
    • 通过git remote add origin ``git@github.com``:lyydsheep/learn_gogogogo.git命令可以将本地仓库和远程仓库进行关联
    • 使用git remote可以查看远程仓库的名称
  2. 配置公私钥,获取push远程仓库的权限
    • 使用ssh-keygen -t rsa -C "2230561977@qq.com"命令生成公私钥
    • 将公钥的具体内容复制到ssh and GPG keys模块中
      • Settings -> ssh and GPG keys -> New SSH key

img

img

  1. 使用git push -u origin main命令将本地文件推送至远程仓库
    • 前提是本地仓库要有main分支

img

在Goland中使用Git进行协作开发的流程 | 青训营笔记 - 掘金

go mod init 应用名称 就是在应用名称的根目录下,生成一个go.mod文件。

img

上次更新于: