• git学习


    常用命令

    查看当前文件夹下的文件与文件夹:ls ll
    进入当前文件夹下的user文件夹:cd ./user
    查看当前文件夹下的test.txt文件:cat ./test.txt
    返回上一级目录:cd ..
    当前目录:cd .
    退出vim编辑器:wq

    在这里插入图片描述

    本地库的创建

    命令:git init

    签名

    需要用户名邮箱,用于区分开发人员,类似与身份证。

    签名类别:

    • 项目级别
      仅在当前项目下生效
      命令:git config user.name TestUser
      git config user.email TestUser@qq.com
      信息保存位置:./.git/config文件
      cat ./.git/config

    • 系统级别
      当前操作系统(Windows、Linux等)的用户
      命令:git config --global user.name TestUser_glo
      git config --global user.email TestUser_glo@qq.com
      信息保存位置:cat ~/.gitconfig

    基本操作

    查看状态

    命令:git status
    查看工作区、 暂存区状态

    将文件添加到暂存区

    将文件test.txt添加到暂存区命令:git add test.txt
    将工作区的“新建/修改” 添加到暂存区

    将当前目录下所有文件夹与文件添加到暂存区:git add .

    将文件从暂存区删除

    命令:git rm test.txt
    资源管理器中的文件也会被删除

    提交

    命令:git commit -m "message" test.txt
    将暂存区的内容提交到本地库

    将暂存区的所有内容提交到本地库
    git commit -m "message" .

    不带-m命令:git commit .
    按ESC后:wq退出

    查看日志

    git log
    在这里插入图片描述
    git log --online
    在这里插入图片描述
    git reflog
    在这里插入图片描述
    HEAD指针指向当前使用的版本

    版本回退/前进操作

    • 基于索引值操作[推荐]
      git reset --hard [局部索引值]
    • 使用~符号: 只能后退
      git reset --hard HEAD~n
      n表示后退n步

    参数对比:

    • –hard 参数
      在本地库移动 HEAD 指针
      重置暂存区
      重置工作区

    • –mixed 参数
      在本地库移动 HEAD 指针
      重置暂存区

    • –soft 参数
      在本地库移动 HEAD 指针

    删除文件并找回

    删除前, 文件存在时的状态提交到了本地库
    操作: git reset --hard [指针位置]

    以前的版本存在test.c文件,但是当前版本没有test.c,可以回退到上一个版本实现找回删除的文件

    分支

    主干的副本

    分支操作

    • 创建分支
      git branch [分支名]

    • 查看分支
      git branch -v

    • 切换分支
      git checkout [分支名]

    • 合并分支
      第一步: 切换到接受修改的分支(被合并, 增加新内容) 上
      git checkout [被合并分支名]

    第二步: 执行 merge 命令
    git merge [有新内容分支名]

    冲突的解决

    在这里插入图片描述冲突的解决

    • 第一步: 编辑文件, 删除特殊符号
    • 第二步: 把文件修改到满意的程度, 保存退出
    • 第三步: git add [文件名]
    • 第四步: git commit -m “日志信息”
      注意: 此时 commit 一定不能带具体文件名

    github

    为远程库设置别名

    先在github创建一个库
    获取远程库的链接在这里插入图片描述
    查看当前所有远程地址别名git remote -v
    设置别名git remote add [别名] [远程地址]

    推送到远程服务器

    推送git push [别名]/[远程服务器地址] [分支名]
    推送必须基于最新版本

    报错解决方法
    git config --global http.sslVerify "false"

    github用户名密码管理
    Windows凭据管理器

    从远程服务器下载

    推送git clone [别名]/[远程服务器地址]

    邀请其他成员

    在这里插入图片描述

    拉取

    pull=fetch+merge

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

    解决冲突

    要点

    • 如果不是基于 GitHub 远程库的最新版所做的修改, 不能推送, 必须先拉
      取。
    • 拉取下来后如果进入冲突状态, 则按照“分支冲突解决” 操作解决即可。

    类比

    • 债权人: 老王
    • 债务人: 小刘
    • 老王说: 10 天后归还。 小刘接受, 双方达成一致。
    • 老王媳妇说: 5 天后归还。 小刘不能接受。 老王媳妇需要找老王确认后再
      执行。

    冲突的解决

    • 首先pull
    • 编辑文件, 删除特殊符号
    • 把文件修改到满意的程度, 保存退出
    • git add [文件名]
    • git commit -m “日志信息”
      注意: 此时 commit 一定不能带具体文件名
    • 再push

    SSH登录

    • 进入当前用户的根目录
      cd ~
    • 删除.ssh 目录
      rm -rvf .ssh
    • 运行命令生成.ssh 密钥目录
      ssh-keygen -t rsa -C 邮箱地址
      注意: 这里-C 这个参数是大写的 C
    • 进入.ssh 目录查看文件列表
      cd .ssh
      ls -lF
    • 查看 id_rsa.pub 文件内容
      cat id_rsa.pub
    • 复制 id_rsa.pub 文件内容, 登录 GitHub, 点击用户头像→Settings→SSH and GPG
      keys
    • New SSH Key
    • 输入复制的密钥信息
    • 回到 Git bash 创建远程地址别名
      git remote add [别名] [SSH的远程地址]
    • 推送文件进行测试
  • 相关阅读:
    配置定时任务的 cron 表达式有哪几种?
    py装饰器强行DFS,突破递归深度限制
    Linux
    几行代码就可以把系统高崩溃;
    每日一题----昂贵的婚礼
    安装docker版elasticsearch和kibana
    [附源码]计算机毕业设计智慧园区运营管理系统Springboot程序
    复习这份阿里架构师的Java核心面试宝典,我四面腾讯拿下offer
    @ResponseBody 和 @RequestBody以及@PathVariable的作用
    避免告警疲劳:每个 K8s 工程团队的 8 个技巧
  • 原文地址:https://blog.csdn.net/qq_45607873/article/details/126904937