热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

(02)Git命令行操作

一、本地库操作与设置签名1、本地库初始化上一篇介绍了安装Git客户端工具,安装完后在系统的任何地方右键都会看到GitGUIHere和GitBashHere两个菜单,点击GitGUI

  一、本地库操作与设置签名

  1、本地库初始化

  上一篇介绍了安装Git客户端工具,安装完后在系统的任何地方右键都会看到Git GUI Here 和 Git Bash Here 两个菜单,点击 Git GUI Here 就会进入到Git的命令行界面,在该界面中可以完全使用Linux命令,如图:

(02)Git命令行操作

  本地初始化命令是:git init,执行该命令,会在所在目录创建一个.git的隐藏文件夹。

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

  2、设置签名,区分不同开发人员的身份

  项目级别/仓库级别:仅在当前本地库范围内有效

  git config user.name xxx

  git config user.email xxxxxx@xx.com

  信息保存位置:./.git/config 文件,如下图

(02)Git命令行操作

   系统用户级别:登录当前操作系统的用户范围

  git config --global user.name tom_glb

  git config --global goodMorning_pro@atguigu.com

  信息保存位置:~/.gitconfig 文件,如下图

(02)Git命令行操作

  优先级采用就近原则:二者都有时采用项目级别的签名,只有系统用户时采用系统用户级别,必须设置一种级别,一般用系统级别。

  注意:这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关系。

  二、基本操作

  1、查看状态、添加、提交

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

  git add [file name]:将工作区的“新建/修改”添加到暂存区

  git commit -m "commit message" [file name]:将暂存区的内容提交到本地库

  演示:

(02)Git命令行操作

  On branch master:在master分支

  No commits yet:本地库还没有任何东西提交(因为提交的东西放在本地库)

  nothing to commit (create/copy files and use "git add" to track):暂存区没有任何可以提交的东西,可以用git add命令追踪

  (1)新建good.txt,执行git status

(02)Git命令行操作

  文件变红,可以用git add添加到暂存区,下面执行git add good.txt

(02)Git命令行操作

  已经添加到暂存区了,红色框中的不用管,关于行末转化什么的。在执行一下git status 

(02)Git命令行操作

  暂存区有变化,可以被提交,显示new files,文件变成绿色,也可以执行git rm --cached good.txt移除暂存区,请看下图 

(02)Git命令行操作

  回到了新建后的状态。现在添加到暂存区,执行git commit good.txt,会跳转到输入提示页面,如下:

(02)Git命令行操作

  输入提示,保存退出,可以看到提示:“my first commit hahahha”,如下图

(02)Git命令行操作

  [master (root-commit) c8b004c] my first commit hahahha:master分支,root-commit第一次提交,c8b004c理解为版本,现在查看一下状态

(02)Git命令行操作

  nothing to commit, working tree clean:没有可以提交的,工作区、暂存区 is clean。

  (2)编辑并保存good.txt,执行git status

(02)Git命令行操作

  文件变成了红色的,并且是modified,可以先执行git add good.txt(添加到暂存区),再执行git commit good.txt(提交到本地库)

(02)Git命令行操作

   1 file changed, 1 insertion(+):修改了一个文件,添加了一行。

  修改后也可以直接提交,执行git commit -m "My test commit" good.txt

(02)Git命令行操作

  2、查看历史记录、前进后退版本

  git log:显示完整历史记录信息,包括哈希值、提交者、邮箱、提交日期、提交注释。

(02)Git命令行操作

  多屏翻页,空格向下翻页、b向上翻页、q退出

  git log --pretty=oneline:显示哈希值和注释

(02)Git命令行操作

  git log --oneline:显示前面的部分哈希值和注释

(02)Git命令行操作

  git  reflog:显示部分哈希值、注释,回退步数(HEAD@{移动到当前版本需要多少步}),可以查看之前的版本

(02)Git命令行操作

  前进或者回退

  git reset --hard [局部索引值] :回退到指定的哈希值版本

  git reset --hard HEAD^:回退一步

  git reset --hard HEAD^^:回退两步,几个^表示回退多少步

  git reset --hard HEAD~n:回退n步

  注意:^、~只能回退

  演示:

  当前版本是1f86cfa,HEAD->master表示当前版本,master分支。

(02)Git命令行操作

  回退到j , git reset --hard 3a20344

(02)Git命令行操作

  回退到h,git reset --hard  5906e69

(02)Git命令行操作

  从g回退到f,执行 git reset --hard HEAD^ 

(02)Git命令行操作

  从f回退到c,git reset --hard HEAD^^^

(02)Git命令行操作

  先向前进到k( git reset --hard 1f86cfa),在回退到f ,需要5步(git reset --hard HEAD~5)

(02)Git命令行操作

  git reset 三个参数比较

  --soft 参数:仅仅在本地库移动HEAD 指针

  --mixed 参数:在本地库移动HEAD 指针、重置暂存区 

  --hard 参数:在本地库移动HEAD 指针、重置暂存区、重置工作区

  3、文件的删除与找回

   rm xxx:删除文件xxx,其实是将文件移到了工作区,真正的删除还要执行 git add 和 git commit

  删除操作尚未提交到本地库找回:指针位置使用HEAD,执行git reset --hard HEAD

  删除操作已经提交到本地库找回:指针位置指向历史记录,执行git reset --hard 哈希值

  注意:只有曾经提交到过本地库的才能找回。

  示例:本地库添加aaa.txt,删除并找回。

(02)Git命令行操作

(02)Git命令行操作

  4、文件比较

  git diff [文件名]:将工作区中的文件和暂存区进行比较

  git diff [本地库中历史版本] [文件名]:将工作区中的文件和本地库历史记录比较

  不带文件名比较多个文件

  演示:红色的是删掉的,绿色的是增加的

(02)Git命令行操作

  演示:比较全部文件,不加文件名,将aaa.txt提交到暂存区后,只比较bbb.txt,因为只有bbb.txt工作区和暂存区不一样。

(02)Git命令行操作

  将两个文件提交,演示比较历史版本:

(02)Git命令行操作

  5、分支管理

  (1)分支概述:本地库会默认创建一个master(主分支),如果有开发任务可以复制出别的分支,比如feature_blue分支、feature_game分支等,每个分支可以互不影响、并存开发。假如有别的分支开发失败,不会影响master分支,始终保持master分支是完好的。其它分支开发完、测试完合并到master分支,master作为一个大版本升级。假如master分支上发现bug,创建一个hot_fix分支,修复完再合并到master上。

(02)Git命令行操作

  分支定义:在版本控制过程中,使用多条线同时推进多个任务。

  分支好处:

  a、同时并行推进多个功能开发,提高开发效率;

  b、各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

  (2)分支操作:

  git branch -v:查看分支,当前分支显示绿色

  git branch 分支名:创建分支,创建后的分支与主分支内容保存一致

  git checkout 分支名:切换分支,切换到哪个分支操作哪个分支

  git merge 分支名(有新内容的):合并分支,合并分支前必须切换回到接收内容的分支

  示例:创建分支hot_fix,并修改内容提交,切换回master分支后,master分支无法看到最新的内容,hot_fix分支的版本高一个

(02)Git命令行操作

  示例:将hot_fix分支合并到master分支,master与hot_fix版本号一致,并且看到最新的内容

(02)Git命令行操作

  合并冲突:两个分支修改了同一个文件的同一个位置,会产生冲突,只能手工合并分支

  合并步骤:

  第一步:编辑文件,删除特殊符号

  第二步:把文件修改到满意的程度,保存退出

  第三步:git add [文件名]

  第四步:git commit -m "日志信息",注意:此时commit 一定不能带具体文件名

  示例:阅读步骤,先左右后上下

(02)Git命令行操作


推荐阅读
  • php缓存ri,浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
    thinkPHP的F方法只能用于缓存简单数据类型,不支持有效期和缓存对象。S()缓存方法支持有效期,又称动态缓存方法。本文是小编日常整理有关thinkp ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • DSP中cmd文件的命令文件组成及其作用
    本文介绍了DSP中cmd文件的命令文件的组成和作用,包括链接器配置文件的存放链接器配置信息、命令文件的组成、MEMORY和SECTIONS两个伪指令的使用、CMD分配ROM和RAM空间的目的以及MEMORY指定芯片的ROM和RAM大小和划分区间的方法。同时强调了根据不同芯片进行修改的必要性,以适应不同芯片的存储用户程序的需求。 ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • 初始化初始化本地空版本库,仓库,英文名repositorymkdirtest&&cdtestgitinit克隆项目到本地gitclone远程同 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
author-avatar
炽热冰菊66
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有