首页 > 其他分享 >GitHub教程

GitHub教程

时间:2023-05-26 16:22:05浏览次数:49  
标签:教程 git -- 暂存区 GitHub 本地 commit 指针

1. 概述

image

1.1 Git和代码托管中心

代码托管中心的任务:维护远程库
局域网环境下:

  • GitLab服务器

外网环境下:

  • GitHub
  • 码云

1.2 本地库和远程库

  • 团队内部协作
    image

  • 跨团队协作
    image

2. Git命令行操作

2.1 本地库操作

  • 命令:git init

  • 效果:
    image

  • 注意:.git目录中存放的是本地库相关的子目录和文件,不要删除,也不要胡乱修改。

2.2 设置签名

  • 形式
    用户名:tom
    Email地址:[email protected]
  • 作用:区分不同的开发人员
  • 辨析:这里设置的签名和登录远程库(代码托管中心)的账户、密码没有任何关系。
  • 命令
    • 项目级别/仓库级别:仅在当前本地库范围内有效
      • git config user.name tom_pro
      • git config user.email [email protected]
      • 信息保存的位置:./.git/config文件
        image
    • 系统用户级别:登录当前系统的用户范围
      • git config --global user.name tom_glb
      • git config --global user.email [email protected]
      • 信息保存位置:~/.gitconfig文件 (家目录下的.gitconfig文件)
        image
    • 级别优先级:
      • 就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别的签名
      • 如果只有系统用户级别的签名,就以系统用户级别的签名为准
      • 二者都没有,不允许

2.3 基本操作

  • 状态查看操作
    • git status
      查看工作区、暂存区状态
      - git status输出的绿字表明:暂存区的内容与工作区一致,与本地库不一致(暂存区的内容即将要提交到本地库。此时提交到本地库后,三者的内容将一致)
      - git status输出的红字表明:暂存区的内容与工作区有不一致,但与本地库一致(此时要做的事情是,将工作区修改好的文件添加到暂存区,此时git status将会输出绿字)
    • 添加操作
      • git add [filename]
        将工作区的“新建/修改”添加到暂存区
      • 提交操作
        • git commit -m "commit message" [filename]
          将暂存区的内容提交到本地库
      • 查看历史记录操作
        • git log
        • 多屏显示控制方式:
          • 空格向下翻页
          • b 向上翻页
          • q 退出
      • git log --pretty=oneline
        image
      • git log --oneline
        image
      • git reflog (在--oneline的基础上还显示了:HEAD指针到某个版本,需要移动几步)
        image

2.4 Git版本的前进、后退

  • 本质:HEAD是一个指针,指针可以指向过去的版本,即后退;后退之后,也可以再指向前面的版本,即前进。
    image

  • 基于索引值操作[推荐] (建议配合git reflog命令使用)
    git reset --hard [索引值]
    image
    image
    image

  • 使用^符号:只能后退,一个异或符号退1步
    git reset --hard HEAD^^^ (该命令后退3步)
    image

  • 使用~符号:只能后退,波浪线符合后的数字表示后退的步数
    git reset --hard HEAD~3 (该命令后退3步)
    image

2.5 git reset命令的三个参数对比

  • --soft

    • 不会碰暂存区和工作区。仅仅会在本地库移动HEAD指针
    • 执行命令 git reset --soft 9a9ebe0后,工作区的good.txt还是以eeeeee为最新的一行,和未执行该命令时相同。然而暂存区变成了“modified: good.txt”,为什么呢?因为本来在命令执行前,本地库、暂存区、工作区,三者是一致的(working tree clean)。但是后来通过执行命令,把本地库的HEAD指针往前(前进)移动了几个commit,此时三者的一致就被打破了,所以现在暂存区的内容并没有提交到本地库指针现在指向的位置(或者说本地库后退或前进了,就显得暂存区变化了),实际上暂存区的内容没有变化。所以暂存区变成绿字,不是它变了,而是本地库的指针发生了变化。
      image
      --
      image
      --
      image
      --
      image
      --
      image
  • --mixed

    • 在本地库移动HEAD指针
    • 重置暂存区(用指针指向的commit)

    基于上图的git reflog命令的结果,执行命令:git reset --mixed 42e7e84,命令执行后,工作区没有改变,而本地库、暂存区往后移动了几个commit。
    暂存区目前是红字,但实际上没有变化,如何理解?该命令使得本地库、暂存区都往后移动了几个commit,工作区没有移动,所以就显得工作区往前走了(被改动了,所以就变成红字了)。
    image

  • --hard

    • 在本地库移动HEAD指针
    • 重置暂存区(用指针指向的commit)
    • 重置工作区(用指针指向的commit)

    git reset --hard xxxxxx 该命令会让三者(本地库、暂存区、工作区)同时“移动”。即移动了本地库的指针,然后将暂存区、工作区刷新为当前指针指向的commit对应的内容。
    一般来说,前--soft和--mixed用的少。

2.6 删除文件并找回

标签:教程,git,--,暂存区,GitHub,本地,commit,指针
From: https://www.cnblogs.com/Ceri/p/17435045.html

相关文章

  • 【2023最新】超详细图文保姆级教程:App开发新手入门(2)
    上章节我们已经成功的创建了一个App项目,接下来我们讲述一下,如何导入项目、编辑代码和提交项目代码。 Let’sGo! 4.项目导入 当用户创建一个新的应用时,YonStudio开发工具会自动导入模板项目的默认代码,不需要手动进行代码导入。那么当我们不是创建应用,而是需要导入一个已经存......
  • 【2023最新】超详细图文保姆级教程:App开发新手入门(3)
    上文回顾,我们已经完成了一个应用项目创建、导入、代码更新、代码同步和代码提交,本章继续我们的新手开发之旅,讲述一下如何将开发完成的应用进行编译,生成可供他人安装、可上架的应用安装包。6应用打包 应用打包,简单来说就是将编写的代码,通过工具的打包编译机制,打包编译生成对应的手......
  • 【2023最新】超详细图文保姆级教程:App开发新手入门(4)
    之前章节我们已经完成了一个应用项目的导入、代码更新和代码提交和应用打包编译,本章继续讲述一下,如何在开发过程中进行代码的同步联机调试。7代码真机调试7.1纯静态CSS页面样式查看代码调试有多种方式,如果是查看纯粹的静态样式,可以使用浏览器打开对应页面(html或stml文件),或者直接......
  • 【2023最新】超详细图文保姆级教程:App开发新手入门(5)
    上文回顾,我们已经完成了一个应用的真机调试,本章我们来了解一下如何引入YonBuilder移动开发的(原生)移动插件,并利用移动插件完成一个简单的视频播放器。8.「移动插件」的使用 8.1什么是「移动插件」? 用通俗的话来解释,YonBuilder移动开发内的「移动插件」,是指使用原生语言(androi......
  • 动力节点Docker实战入门教程(4)Docker容陈可人
    根据B站上动力节点的最新版Docker教程整理了学习笔记,持续更新中~4Docker容器4.1容器基础4.1.1容器启动流程通过dockerrun命令可以启动运行一个容器。该命令在执行时首先会在本地查找指定的镜像,如果找到了,则直接启动,否则会到镜像中心查找。如果镜像中心存在该镜像,则会下载到本地......
  • Angular Material教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介AngularMaterial是AngularJS开发人员的UI组件库。AngularMaterial的可重用UI组件有助于构建有吸引力,一致且功能强大的Web页面和Web应用程序,同时遵循现代Web设计原则,如浏览器可移植性,设备独立性和优雅降级。AngularMaterial入门教程-从简单的步骤了解角度材料,从基......
  • Graphpad Prism9.5.1 科学绘图软件 下载安装教程(含Win/Mac)
    软件下载AutodeskFlame2024formac软件介绍AutodeskFlame破解版由是Autodesk公司(译作欧特克)开发的一款高端电影剪辑和特效制作系统。Flame是用于高速合成、高级图形和客户驱动的交互设计的终极视觉特效制作系统。AutodeskFlame提供出色的性能和荣获奥斯卡奖的工具。从......
  • 主流源代码管理工具—GitHub
    l Github是什么?首先,GitHub是一个面向开源及私有软件项目的托管平台,该平台于2008年4月10日正式上线,除了Git代码仓库托管及基本的Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其注册用户已经超过350万,托......
  • CentOS7安装maven私服仓库nexus3教程
    大家好,我是程序员青戈,一个被Bug耽误了才艺的程序员......
  • github使用
     1.安装github客户端Git-2.40.1-64-bit.exe 2.创建代码存放目录,比如我在桌面创建github目录进入到github目录后,右键gitbash进入命令行模式初次上传:gitclonehttps://github.com/hxlsky/myibd2sdi.gitgitinitgitaddparse_ibd2sdi.pygitconfig--globaluser.namehxl......