3.Git基础-历史及其他操作

1.查看提交历史

        git log 会按提交时间列出所有的更新,最近的更新排在最上面。

1.简单的查看历史

        查看提交历史的命令是git log -[参数]
        这边我们来看一下最简单的提交记录:这边只会显示commit编号AuthorDate
        我们还可以利用后面的参数来显示输出多少条的提交记录:git log -2(数量)

在这里插入图片描述

2.查看提交前后变化

        这边有可能需要知道git提交前后发生了什么变化,那么我们可以通过git log -p的命令来实现查看,同样,在命令的后面还可以加入- num输入需要查看的数量
在这里插入图片描述

3.输出提交改变文件信息

        我们可能有一种场景就是说需要知道提交了多少个新的文件,删除了多少了等等,这个时候我们可以用到git log --stat命令来查看
在这里插入图片描述

4.通过不同的格式来展示

        这边可能会需要通过不用的格式来输出,这边可以通过git log --pretty=[命令]来查看,也可以拼接不同的格式,这边我们不深入介绍,只简单的演示一下
在这里插入图片描述

5.其他命令

        git log的命令还是比较多的,正常来说我们不需要用到太多,这边记录一下,有需要可以google一下

常用项
在这里插入图片描述

限制项

扫描二维码关注公众号,回复: 9241063 查看本文章

在这里插入图片描述

6.作者和提交者

        上面第三点我们有看到提交记录里面有两个人物:AuthorCommit,从pro_git这边看到的说明来看一下这两个身份之间的区别:

        其实作者指的是实际作出修改的人,提交者指的是最后将此工作成果提交到仓库的人。
         所以,当你为某个项目发布补丁,然后某个核心成员将你的补丁并入项目时,你就是作者,而那个核心成员就是提交者。(后面的文章会有更多的描述)


2.撤销操作

1.取消暂存区修改但不取消本地修改

        我们现在对2.txt这个文件进行修改,然后通过git add添加到版本控制。
        然后我们这边想要取消暂存区的修改,但是又不取消本地修改,说明只是让文件成为未跟踪文件即可,我们可以通过git reset [文件名]或者git reset HEAD [文件名]的命令对该修改进行取消
在这里插入图片描述

2.取消暂存区、本地所有修改

        这边我们可能还会遇到一种情况就是我们的修改添加到暂存区,但是这个修改又不需要了,可能任务取消,修改的东西需要全部回退,本地也不需要记录的时候,我们可以通过git reset --hard的方式来进行重置,但是需要注意的是,这个重置会清空本地所有的修改,要谨慎使用
在这里插入图片描述

3.重置提交记录

        我们从上面的git log可以看到每一次提交都有一个commit的编号,那么如果我们的某一次提交出错了怎么办,比如说上一次提交出问题了,我要怎么回退到上上次的提交去呢,这边需要通过git reset --hard [提交编号]来删除之前的提交记录,但是这么做是很危险的操作,提交记录会被抹除掉,需要谨慎
        我们这边做两次提交,第一次提交记录为:第一次提交,第二次提交记录为:第二次提交我们需要把第二次提交记录抹除掉,看我们这边的操作:
在这里插入图片描述

4.覆盖提交记录

        覆盖提交记录的意思就是上一次提交的记录会被覆盖,如果本次没有修改则只是覆盖提交信息,如果本次进行修改了,则会把修改的内容提交并覆盖上一次的提交记录,可以理解为用本次的修改替换上一次的修改(上一次的提交信息消失了)
        我们这边也是做两次提交,第一次提交信息为i am first,第二次为i am second,来看一下我们下面的效果(命令是git commit --amend):
在这里插入图片描述


3.远程仓库

1.查看远程仓库信息

        查看所有的远程仓库信息的命令是git remote -v,这边会显示所有的远程仓库的信息,正常情况下,git clone克隆下来的分支别名都是remote。
在这里插入图片描述

        如果是查看某个分支的详细信息的命令是git remote show origin,这边我的查看好像没有效果,不知道为什么,正常应该是如下:
在这里插入图片描述

2.添加远程仓库信息

        添加仓库信息的命令是git remote add <shortname> <url>,看一下我们的演示:

在这里插入图片描述

3.远程仓库移除与重命名

        仓库别名重命名的命令是:git remote rename <原来的名字> <现在的名字>
在这里插入图片描述

        移除的命令是:git remote rm <远程仓库别名>
在这里插入图片描述

3.拉取远程仓库信息(不自动合并)

从远程仓库拉取该分支上面没有的内容但是不进行合并:git fetch [remote-name]
我们看一下书中的描述:

  • git fetch origin 会抓取克隆(或上一次抓取)后新推送的所有工作。 必须注意 git fetch 命令会将数据拉取到你的本地仓库——它并不会自动合并或修改你当前的工作。 当准备好时你必须手动将其合并入你的工作。

4.拉取远程仓库信息(自动合并)

拉取远程仓库内容并进行合并的命令git pull

  • 运行 git pull 通常会从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支

可以理解为 pull = fetch + merge.

5.推送到远程仓库

        推送的命令是git push [remote_name] [branch_name]
        比如说往别名为origin的仓库的master分支推送修改信息,命令是git push origin master


4.打Tag

1.查看tag

        查看所有git tag的信息的命令是:git tag
        查看当个git tag提交的信息是:git show <tag名>
在这里插入图片描述

2.创建tag

        创建轻量tag,只有tag名的命令:git tag <tag名>
        创建git tag并且加上创建的信息:git tag -a <tag名> -m <tag描述>
在这里插入图片描述

3.后期创建tag

        很多时候我们可能在版本上线之后才会对之前的提交进行打tag,那么这个时候我们就需要找到我们的提交,然后对对应的提交进行打tag操作:

  • 1.找到提交历史git log --pretty=oneline
  • 2.对相应的head进行打tag git tag -a <tag名> head号 -m <创建说明>,如果不加-m <创建说明>,则会出现一个编辑框,让你填写创建说明
    不直接加说明
    有加上创建说明的打tag

4.移除tag

        移除tag的命令是git tag -d <tag名>
在这里插入图片描述

5.提交和拉取tag

        提交tag的命令是:git push origin [tag名称]
        拉取tag的命令是:git checkout <tag名称>
        书中说明:在“分离头指针”状态下,如果你做了某些更改然后提交它们,标签不会发生变化,但你的新提交将不属于任何
分支,并且将无法访问,除非确切的提交哈希。因此,如果你需要进行更改——比如说你正在修复旧版本的错
误——这通常需要创建一个新分支:git checkout -b <分支名> <tag名>


5.Git别名

        git 别名指的是对一些比较复杂的命令进行设置别名,这样我们就可以用简单的命令来替换复杂的命令,别名命令是:git config --global alias.<别名> <原来的命令>
在这里插入图片描述

发布了82 篇原创文章 · 获赞 15 · 访问量 3115

猜你喜欢

转载自blog.csdn.net/qq_34326321/article/details/104065213