• (02)Git命令行操作


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

      1、本地库初始化

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

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

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

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

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

      git config user.name xxx

      git config user.email xxxxxx@xx.com

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

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

      git config --global user.name tom_glb

      git config --global goodMorning_pro@atguigu.com

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

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

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

      二、基本操作

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

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

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

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

      演示:

      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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      前进或者回退

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

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

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

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

      注意:^、~只能回退

      演示:

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

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

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

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

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

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

      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,删除并找回。

      4、文件比较

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

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

      不带文件名比较多个文件

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

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

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

      5、分支管理

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

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

      分支好处:

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

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

      (2)分支操作:

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

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

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

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

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

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

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

      合并步骤:

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

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

      第三步:git add [文件名]

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

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

  • 相关阅读:
    Android开发笔记(十八)——Toast
    20199303 2019-2020-2 《网络攻防实践》综合实践
    20199303 2019-2020-2 《网络攻防实践》第12周作业
    20199303 2019-2020-2 《网络攻防实践》第10周作业
    20199303 2019-2020-2 《网络攻防实践》第8周作业
    20199303 2019-2020-2 《网络攻防实践》第7周作业
    20199303 2019-2020-2 《网络攻防实践》第6周作业
    20199303 2019-2020-2 《网络攻防实践》第5周作业
    20199303 2019-2020-2 实践三网络嗅探与协议分析实践
    Deleting comments in c or java code by awk scripts
  • 原文地址:https://www.cnblogs.com/javasl/p/12562352.html
Copyright © 2020-2023  润新知