zoukankan      html  css  js  c++  java
  • Git学习笔记

    Git笔记

    1. Git是什么

    Git是世界上最先进的分布式版本控制系统

    • Workspace:工作区
    • Index/Stage:暂存区
    • Repository:仓库区(本地仓库)
    • Remote:远程仓库

    2. 基本操作

    文件操作:

    
    创建文件:touch 文件名.*
    删除文件:rm 文件名
    创建文件夹:mkdir 文件夹名
    删除文件夹:rm -r 文件夹名
    查看文件:cat 文件名
    

    恢复历史版本

    git reset --hard HEAD^  退回上一个版本
    git reset --hard HEAD^^ 退回上上一个版本
    git reset --hard HEAD^^^ 退回上上上一个版本
    git reset --hard HEAD~100 退回第100个版本
    git reset --hard 版本号 退回版本号版本 (查看版本号:git reflog)
    

    修改相关:

    放弃历史暂存区文件修改:git restor
    git chackout -- 文件名
    
    初始化仓库:git init
    
    添加文件到暂存区 :git add filename
    
    提交文件到仓库:git commit filename
    
    查看暂存区当前状态:git status
    
    查看暂存区文件修改情况:git diff
    
    查看最新文件修改记录:git log   简洁呈现:git log -pretty=online
    查看所有文件更改记录:git reflog
    
    清空暂存区:git rm --cached filename;
    		re ./git/index  暂存区文件
    

    分支:

    创建分支:git branch [分支名称]
    查看分支:git branch -v
    切换分支:git checkout [分支名称]
    合并分支:git merge [要求被合并的分支名称]
    

    3. 错误异常

    1.

    执行:git push origin master
    报错:error: src refspec master does not match any,远程仓库与本地仓库的之前版本不匹配
    解决方法:临时撤销上一次对仓库的修改之后,把远程仓库同步下来,之后再与本机仓库结合,目的就是
    :使两端仓库匹配
    

    2.

    执行:git push origin master
    报错: Updating an unborn branch with changes added to the index.(使用添加到索引中的更改更新未生成的分支。) 其实也就是本地的仓库没有提交,无法推送远程仓库
    解决方法:git commit -m "m"//作用:把暂存区的操作同步到本地的仓库中
    

    时光穿梭机(版本恢复)

    https://github.com/ymyguang/Code-Note/blob/master/%E6%9D%82%E8%AE%B0/img/Git%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/image-20200304155405798.png

    命令说明:
    • git rm 删除工作区文件,并且把删除记录提交到暂存区(git rm[name]相当于:rm + git add[name] )
    • rm 删除工作区的文件。
    恢复的方法:
    • git checkout filename
      • 对于checkout的说明:
        • 情况一:当暂存区存在该文件时,将暂存区文件恢复到工作区
        • 情况二:当暂存区未存在该文件时,将版本库中的文件恢复到工作区
    • git reset HEAD^ filename
      • 作用:把上一个版本filename拉取到暂存区,此时工作区并不存在该文件,但是当我们执行git checkout filename 文件在工作区就会被找到!
    尝试情况:
    • 情况一:提交到暂存区,不提交文件库

      • rm删除,工作区文件不存在,暂存区没有同步最新情况
        • 恢复
          • git checkout filename 工作区恢复成功,来源暂存区,可以看出add是把文件放到暂存区中
          • git reset HEAD filename 恢复失败(考虑原因是因为没有可恢复的仓库)
      • git rm删除,工作区文件不存在,暂存区更新删除记录,即暂存区该文件执行删除操作
        • git checkout filename 恢复失败(原因:因为给git rm=rm + add,此时暂存区该文件的记录,因此checkout会尝试在暂存区中恢复文件到工作区,但是暂存区中只有该文件的删除行为,而文件却不存在,因此恢复失败)
        • git reset HEAD^ – filename恢复成功
    • 情况二:提交到暂存区,提交到文件库

      • rm删除,工作区文件不存在,暂存区存在
        • git checkout filename 工作区恢复成功
        • git reset HEAD^ – filename恢复成功
      • git rm删除
        • git checkout — filename 恢复失败
        • git reset HEAD^ filename 此时操作区并未恢复文件 当在执行:git checkout filename 此时,工作区恢复了该文件
  • 相关阅读:
    前端文档
    vue手写骨架屏插件
    vue3 todolist
    微信公众号(小程序)利用客服接口主动给用户发送消息的方法
    使用docker-compose管理docker容器
    docker常用操作
    Declarative Pipeline语法介绍
    k8s集群dns问题解决办法
    K8S集群安装(四)使用helm安装应用
    k8s常用yaml-nginx、busybox
  • 原文地址:https://www.cnblogs.com/ymyguang/p/12854663.html
Copyright © 2011-2022 走看看