zoukankan      html  css  js  c++  java
  • 不会git就不要敲代码了

    Git应用详解第一讲:Git分区,配置与日志

    将暂存区中的文件提交到版本库,一定要添加注释,否则不让提交:当注释很短时采用-m方式(mmessage的意思):

    image-20200405173938192

    2.git commit

    当注释很长时,可以直接执行git commit,进入vim编辑器界面,在此处编写较长的注释,添加完注释后,通过wq保存并退出即可:

    image-20200405160208232

    image-20200405160252663

    3.git commit -am '注释'

    表示添加当前目录下所有已被git追踪的文件到暂存区中并提交,即相当于是git add . 与 git commit 两步操作的合成。

    image-20200311094351942

    该方式只适用于已被git追踪的文件(即文件至少提交过一次),当文件第一次提交到暂存区时(此时该文件并未被git追踪)不可以使用该命令,而是要分开写,否则会报错:

    image-20200311105537874

    七、工作区<-暂存区

    简单来说,就是将git status指令显示出来的文件,从绿色变为红色,大概有如下三种方法:

    1.git rm --cached <file>

    删除缓存区中的<file>文件,并将其还原到工作区。该指令需要对暂存区删除的文件进行一次提交操作,所以建议用第二种方法;

    image-20200405175500995

    2.git restore --stage <file>

    通过该指令,将文件从缓存区中移动到工作区,这里的参数--stage写成--staged效果是一样的:

    image-20200405173026361

    小贴士:可以使用tab键补全命令;

    3.git reset HEAD <file>

    将文件从缓存区中移到工作区,作用与方法2一样:

    image-20200405202356893

    八、撤销操作

    这里指的是撤销工作区中对文件的操作,包括新增、修改、删除等,配合着前面第七点所讲的指令使用。大概有以下两种方法:

    1.git checkout -- <file>

    可以撤销工作区中对flie文件的改动操作(包括删除):注意--后面要跟上空格:如果修改已经通过git add提交到暂存区,该指令无效。

    image-20200405172537981

    2.git restore <file>

    可以撤销工作区中对file文件的操作,效果与方法1相同;

    image-20200405222228836

    九、日志

    git的日志记录了git仓库对文件的所有操作,主要分为三大类:分支的提交日志、文件的修改日志git操作日志。通过查看这些日志信息,可以很好地了解git仓库的历史记录,并根据需要进行版本回退。

    1.查看提交日志

    使用的主要命令为git log,通过添加不同的参数,可以显示不同形式的提交日志,下面主要介绍其中常用的几种:

    git log

    查看版本库的提交(commit)历史:

    image-20200310000630352

    • 提交历史是倒叙的,最新的提交排在最前面;

    • Git的提交idcommit id)是一个摘要值,这个摘要值实际上是通过sha1算法计算出来的不重复字符串。由此保证了每次提交id的唯一性;

    • Author显示的是提交时优先级最高的配置,比如提交时有--local配置就显示它,没有就显示--global的配置;如上图中:第二次提交时使用的是修改过后的config李四,也就是优先级更高的--local配置;

    git log -n

    可以查看最近的n次的提交历史,比如通过git log -3 查看最近3次的提交历史:

    image-20200310102202167

    git log --graph

    以图形化的形式显示提交历史:

    image-20200310202444991

    git log --pretty=oneline

    以一行的形式显示提交历史:

    image-20200310102422277

    git log --graph --abbrev-commit

    通过--abbrev-commit对提交信息进行简化:

    image-20200311094731124

    还可以结合--pretty=oneline进行简写:

    复制代码
    git log --pretty=oneline  --abbrev-commit
    

    image-20200311094856556

    git log --pretty=oneline:"%h - %an, %ar : %s"

    还可以按照规定的格式显示日志内容:%h:表示commit id%an:表示提交人;%ar:表示提交时间;%s:表示提交信息;

    image-20200310102703035

    git log --all --decorate --oneline --graph

    该命令比较厉害,是StackOverflow上网友组装的命令,可以一次性查看所有分支及其提交记录,非常实用:

    image-20200413170158604

    如上图所示,三个分支devmastertest以及每个分支的提交记录都一次性显示出来了。由于该命令十分常用,但是又很长,不好记忆。所以,我们可以给该命令设置别名(alias),比如取该命令的首字母组成别名dog,在全局下进行配置:

    复制代码
    git config --global alias.dog 'log --all --decorate --oneline --graph'
    

    image-20200413171109680

    设置好别名之后,就可以通过git dog来执行这条指令了。有关别名的内容,之后会详细进行讲解。

    2.查看修改日志

    git blame file_name

    image-20200311144605370

    如图所示,通过该命令可以清楚查看指定的文件的每次修改。包括修改用户,修改时间等;

    3.查看操作日志

    git reflog

    通过该指令可以详细地查看,每次操作所在提交节点的commit id,以及在此提交节点上所执行的操作(指令);并且是倒叙显示的,即最近一次操作的序号为{0}

    image-20200311100922744

    git log:只能显示当前分支的提交历史,如果进行版本回退,会丢失较后版本的提交信息,如下图所示:

    image-20200406174222429

    可以看到通过reset进行版本回退,丢失了4th commit的提交信息,此时可通过git reflog查看操作日志的相关操作信息来回到最新的版本。

    总结:

    • 总体上来说,操作日志包含了修改日志和提交日志,是最全的git日志;

    • 注意:不是通过git命令,而是手动修改文件,这些修改记录不会被git日志记录。所以,推荐使用git指令进行操作;

  • 相关阅读:
    Compact Framework访问内嵌资源文件
    RBAC权限设计图 [转]
    c# 中判断用户是否按下CTRL键
    分享开发soket经验 我的基于socket的持久层 [转]
    没事教宝宝画画
    界面开发(一)[转]
    Winform中多国语言窗体的设计以及.NET中资源文件的使用[转]
    我眼中的理想系统
    C# WinForm开发系列 Socket/WCF/Rometing/Web Services[转]
    基于RBAC的权限设计模型[转]
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/12718156.html
Copyright © 2011-2022 走看看