您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    运用 Git,要常备懊悔药
    时间:2020-07-08 12:16 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    Git是目前世界上最优秀最盛行的散布式版本控制系统,也是顺序员们日常运用最频繁的工具之一(简直每天都需求运用它来对源代码停止版本管理)。

    运用Git的进程,难免由于手快或许别的什么缘由,需求对做过的事情停止“反悔”或许屡次“反悔”。不用担忧,Git弱小到简直任何操作都是可以“反悔”的,让我们一同来看看吧。

    1.在未暂存前,撤销本地修正

    在引见Git“反悔”操作之前,先复杂提及下Git的一些基础知识。

    Git项目有3个区域:任务区、暂存区和Git仓库(分红本地仓库和远程仓库)。如下图:

    运用 Git,要常备懊悔药

    本地编写的代码,不执行任何git命令,处于任务区。

    执行git add命令时,会将任务区的文件标记为已暂存,保存在暂存区。

    执行git commit命令时,会将标记为已暂存的文件保存都本地Git仓库,并生成一个快照。

    在没有暂存之前(没有执行git add命令),我们可以经过以下命令查看本地修正:

    git diff 

    显示的格式如下图所示:

    假设我们不想要这些代码本地代码(比如一些暂时的测试代码),可以经过以下命令一次性撤销一切本地修正:

    git checkout -- . 

    留意:该命令不可二次“反悔”,本地操作一旦撤销,将无法经过Git找回。

    撤销之后再次执行git diff命令将没有任何输入,代表没有文件在暂存区。

    我们也可以指定详细的文件途径,撤销该文件的修正:

    git checkout -- [filename] 

    2.在暂存之后,撤销暂存区的修正

    本地写完代码,提交到本地仓库之前,需求先将修正的文件添加到暂存区,执行以下命令将本地一切已修正的文件添加到暂存区(当然也可以指定详细的文件):

    git add . 

    此时我们执行git diff命令,将不会有任何输入(由于文件已被添加到暂存区),想要查看暂存区的修正,可以执行以下命令:

    git diff --staged 

    看到的效果和之前为暂存前,经过git diff看到的如出一辙。

    假设这时我们想要一次性撤销暂存区的全部修正,可以执行以下命令(当然也可以撤销暂存区指定文件的修正):

    git reset . 

    留意:

    该命令可以二次“反悔”,经过git add .命令可以将文件再一次添加到暂存区。

    这里的“撤销暂存区的修正”是指撤销git add .这个命令,回到执行git add .之前的形状,即已修正为暂存形状。

    此时,假设执行git diff --staged命令,将没有任何输入,执行git diff命名将看到已修正未暂存形状的输入。

    1和2的两个命令可以兼并成一个:

    git reset --hard<=>git reset .git checkout -- 

    即:假设已暂存,但未提交本地仓库之前,想把一切文件直接丢弃(而不是从暂存区删除),可以直接执行以上命令。

    3.提交到本地仓库之后(但未推送到远程仓库),撤销本次提交

    执行以下命令,可以将暂存区的一切文件保存到本地Git仓库,并生成文件快照(便于之前的回退等操作):

    git commit -m "modify some files" 

    此时提交历史外面会有一条记载f8651ff(Commit ID):

    假设我们不想要这次修正的内容,有以下2种办法:

    办法一

    回到以后提交的父对象a18c6fa(即上一次提交,经过git log查看),就等于撤销了本次提交:

    git checkout a18c6fa 

    执行git log命令,发现曾经回到之前的提交:

    办法二

    重置之前的提交

    git diff 

    效果和办法逐一样:

    留意:该命令是可以二次“反悔”的,详细步骤如下:

    git checkout -- . 

    4.修正提交

    思索以下场景:

    本来计划修正两个文件,结果只提交了一个文件,但又不想生成两个提交记载(Commit ID),详细执行的命令如下:

    git add src/app/app.component.html 

    git commit -m "add test block" 

    (责任编辑:admin)