Git使用中的两三事

来源:互联网 发布:软件测试培训 编辑:程序博客网 时间:2024/05/16 09:44

Git撤销操作

        虽然以前学习过Git的使用,但是许久不用,已经十分生疏,现在将今天使用体会总结在下面。

        首先,我们来了解一下工作区与版本库。所谓工作区,也就是我们在电脑里面能够看到的目录,比如我的DRLGitHubRepo:


        而版本库,指的是工作区中的一个隐藏目录.git,我们可以在上面的文件夹中按Ctrl+H显示隐藏文件:


        这个隐藏目录不算工作区,它是Git的版本库。我们可以打开这个文件夹看一下:


        这里面存了好多东西,其中最重要的就是stage(也叫index)的暂存区、master分支(Git为我们自动创建)以及指向master的一个指针叫做HEAD

        我们借用廖雪峰老师的教程中的图片:

git-repo

        从这幅图像中我们可以很清楚的看见git add和git commit指令的作用。在向Git版本库中添加文件的时候,一般分为两步:1)git add将文件添加到暂存区;2)git commit将暂存区的所有内容提交到当前分支。好了,上面就是我们本次对于工作区与版本库的介绍。

        其次,我们来介绍Git中如何跟踪或取消跟踪文件。

        在使用git status命令时,常常会遇到下面这种情况:


        其中有一栏是未跟踪的文件,什么是未跟踪?就是我们在Git中从未对其使用git add的文件。如果我们想要移除对于某个文件的跟踪,可以使用指令git rm来删除对其的跟踪。那如果我们不想在git status时每次都显示处那些我们不关心的文件应该怎么办呢?

        这时候我们可以在git init目录下建立.gitignore文件,使用下面的语法填写文件:

  • /mtk/ 过滤整个文件夹

  • *.zip 过滤所有.zip文件

  • /mtk/do.c 过滤某个具体文件

        这样操作之后,被过滤的文件就不会出现在我们的GitHub库中了。当然,gitignore还可以指定要将哪些文件添加到版本管理中:

  • !*.zip

  • !/mtk/one.txt

        值得注意的是,如果我们不小心在创建.gitignore文件之前,就git push了我们的项目,那么及时我们在.gitignore文件中写入了我们期望的过滤规则,这些规则也不会起作用,Git仍然会对所有的文件进行版本管理。

        最后,我们介绍本文的重点,Git撤销操作。

        我今天不慎在跟踪了某些不期望跟踪的文件时,输入了git add .,然后输入git commit命令,于是一些乱七八糟的文件也都被我commit到master分支中去了,这时候我又不想git push origin master,毕竟乱七八糟的东西也不方便给别人看......怎么办呢?

        这时候我们可以使用git reset HEAD^命令来将所有内容回退到上一个版本,也就是说,我们假装我们并没有对master分支进行更改,这就很开心了。现在,我们扩展介绍一下其他的撤销操作:

        1)git reset --mixed:这是默认方式,不带任何参数的git reset,这种方式下,我们的版本库回退到某个版本,只保留源码,回退commit和index(stage)信息;

        2)git reset --soft:回退到某个版本,只回退commit信息,不会恢复到index file一级的信息,如果此时需要提交,只需要重新commit即可;

        3)git reset --hard:彻底回退到某个版本,本地的源码也会回退到这一版本。

        示例:

        1)将所有内容回退到上一个版本:git reset HEAD^;

        2)将某个文件回退到上一个版本:git reset HEAD^ test.py;

        3)向前回退三个版本:git reset --soft HEAD^3;

        4)将本地版本库状态回退到和远程库一样:git reset --hard origin/master;

        5)回退到某个版本:git rest 057d;

        6)回退到上一次提交的状态,按照某一次的commit完全反向(changes)的进行一次commit:git revert HEAD。

       

        今天的介绍就到这里,现在对于Git的使用还是新手阶段,在对某个项目进行管理的时候,甚至没有去新建一个分支来进行修改、测试,这是不对的,以后要改正。








原创粉丝点击