首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Git】616- git命令的进阶和复习(带动图效果)

4.2 硬重置 最大的特点:无需保留提交已有的修改,直接将当前分支的状态恢复到某个特定提交下,,硬重置还会将当前工作目录(working directory)中的文件、已暂存文件(staged files...使用 git status 查看,发现当前操作空间空空如也。Git 丢弃了 9e78i 和 035cc 两次提交引入的修改,将仓库重置到 ec5be 时的状态 5....Reflog git reflog 是一个非常有用的命令,用于显示所有已执行操作的日志!...包括合并、重置、还原:基本上记录了对分支的任何更 使用场景:假设你不小心使用 git reset 命令硬重置仓库到某个提交。后面突然想到,重置导致了一些已有的正常代码的误删 ?...执行 git reflog 命令,我们看到合并之前的仓库状态位于 HEAD@{1} 这个地方,我们使用 git reset 指令将 HEAD 头指向 HEAD@{1} ? 10.

1K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    工作流一目了然,看小姐姐用动图展示10大Git命令

    另一种可将一个分支的修改融入到另一个分支的方式是执行 git rebase。 git rebase 会将当前分支的提交复制到指定的分支之上。 ?...硬重置 有时候我们并不想保留特定提交引入的修改。不同于软重置,我们应该再也无需访问它们。Git 应该直接将整体状态直接重置到特定提交之前的状态:这甚至包括你在工作目录中和暂存文件上的修改。 ?...Git 丢弃了 9e78i 和 035cc 引入的修改,并将状态重置到了 ec5be 的状态。 还原(Reverting) 另一种撤销修改的方法是执行 git revert。...如果你犯了错,你可以根据 reflog 提供的信息通过重置 HEAD 来轻松地重做! 假设我们实际上并不需要合并原有分支。...那我们就执行一次 git reset,将 HEAD 重新指向在 HEAD@{1} 的位置。 ? 我们可以看到最新的动作已被推送给 reflog。

    1.2K10

    看小姐姐用动图展示 10 大 Git 命令

    另一种可将一个分支的修改融入到另一个分支的方式是执行 git rebase。 git rebase 会将当前分支的提交复制到指定的分支之上。...Git 应该直接将整体状态直接重置到特定提交之前的状态:这甚至包括你在工作目录中和暂存文件上的修改。 Git 丢弃了 9e78i 和 035cc 引入的修改,并将状态重置到了 ec5be 的状态。...git reflog 是一个非常有用的命令,可以展示已经执行过的所有动作的日志。包括合并、重置、还原,基本上包含你对你的分支所做的任何修改。...如果你犯了错,你可以根据 reflog 提供的信息通过重置 HEAD 来轻松地重做! 假设我们实际上并不需要合并原有分支。...那我们就执行一次 git reset,将 HEAD 重新指向在 HEAD@{1} 的位置。 我们可以看到最新的动作已被推送给 reflog。

    48820

    git学习总结02 — 版本控制

    历史记录查询 log & reflog 版本控制是基于 commit 的操作,因此历史记录的查询是版本控制的基础。...可以记录每一条操作命令 $ git reflog # HEAD@{x} x表示移动到当前版本需要的步长 # 日志搜索 $ git log --all --grep='homepage' # 获取某人的提交日志...如下图,硬重置不保留已提交的修改,直接将当前分支的状态恢复到某个特定提交下,同时将当前工作区和暂存区中的文件全部移除。 [reset-hard.gif] 3....reset 的 hard 参数重置 HEAD 指针到最新记录,刷新暂存区和工作区状态,找回版本库中的删除文件 # 删除操作已提交到本地库 $ git reset --hard [历史记录指针位置] #...删除操作尚未提交到本地库 $ git reset --hard HEAD 场景5:还原远程分支 # 不改变历史提交记录还原,并生成新的提交记录 $ git revert [历史记录指针位置] 场景6:

    1K107

    Git使用总结

    内容粘贴进去 帮助文档 命令 使用方法 描述 clone git clone "仓库链接" 将存储库克隆到新目录中 init git init 创建空的Git存储库或重新初始化现有的Git存储库 add...git add * 将文件内容添加到索引 mv git mv -f file newfile 移动或重命名文件、目录或符号链接 reset git reset --hard HEAD^ 将当前磁头重置为指定状态...查看提交日志 commit的所有记录,git log --graph --pretty=oneline --abbrev-commit 可以简单输出 git reflog 查看命令历史 reflog...git checkout -b dev 表示创建并切换分支 git merge dev 用于合并指定分支到当前分支 git branch -d dev 删除当前分支 分支常用命令 Git鼓励大量使用分支...:git branch 创建分支:git branch 切换分支:git checkout 创建+切换分支:git checkout -b 合并某分支到当前分支

    67820

    如何在 Git 中重置、恢复,返回到以前的状态

    使用 Git 工作时其中一个鲜为人知(和没有意识到)的方面就是,如何轻松地返回到你以前的位置 —— 也就是说,在仓库中如何很容易地去撤销那怕是重大的变更。...例如,如果我们重置 master 为当前提交回退两个提交的位置,我们可以使用如下之一的方法: $ git reset 9ef9173 (使用一个绝对的提交 SHA1 值 9ef9173) 或: $ git...在这之后,如果我们在当前分支(master)上运行一个 git log 命令,我们将看到只有一个提交。...这些选项包括:hard 在仓库中去重置指向的提交,用提交的内容去填充工作目录,并重置暂存区;soft 仅重置仓库中的指针;而 mixed(默认值)将重置指针和暂存区。...从本质上来说,Git 将一个分支中的每个不同提交尝试“重放”到另一个分支中。

    4K20

    动图详解常用的git命令

    2. git rebase git rebase拷贝当前分支的提交,然后将这些提交放在目标分支的顶部。...3.2 Hard Reset Hard Reset除了将HEAD移动到指定的commit外,还重置了该commit之后的所有修改,包括暂存区和工作区的所有修改。...8. git reflog git reflog是一个非常有用的命令,可以展示已经执行过的所有动作的日志,括合并、重置、还原,基本上包含你对你的分支所做的任何修改。...通过它几乎可以还原你所做的所有修改。 假设我们要回退分支merge操作。当我们执行git reflog命令时,我们可以看到当前repo的状态在合并前位于HEAD@{1}。...我们就执行一次git reset,将HEAD重新指向在HEAD@{1}的位置,就可以实现回退merge的功能了。

    1.4K10

    Git基础-git的历史版本查看与版本回退(版本切换)

    `的标记,这个标记就是一个用来指向当前版本的指针; 6.因此,当我们进行版本回退或版本切换的时候,实际上是移动HEAD指针的位置。...git log 和 git reflog 的区别: git log : 只展示 当前版本之前的版本,即HEAD指针指向的版本及之前的历史版本; git reflog...$ git reflog $ git reflog -n 2 3.git的版本回退操作(*) 操作思路 : 1.使用 git log 或者 git reflog 命令 获取到要回退或者切换的版本...下面看一下具体的操作 1.查看所有的历史版本 2.穿梭到最新的版本 78fa619 版本上 4.扩展 git reset 的其他参数(了解) git reset --soft :1.仅在本地版本库移动指针...git reset --mixed : 1.移动本地版本库的指针;2.重置暂存区。(默认的参数) git reset --hard : 1.移动本地版本库的指针;2.重置暂存区;3.重置工作区。

    3.3K10

    图解常用的 Git 指令含义

    变基时提供了 6 种操作模式: reword:修改提交信息 edit:修改此提交 squash:将当前提交合并到之前的提交中 fixup:将当前提交合并到之前的提交中,不保留提交日志消息 exec:在每一个需要变基的提交上执行一条命令...硬重置 有时重置时,无需保留提交已有的修改,直接将当前分支的状态恢复到某个特定提交下,这种重置称为硬重置,需要注意的是,硬重置还会将当前工作目录(working directory)中的文件、已暂存文件...使用 git status 查看,发现当前操作空间空空如也。Git 丢弃了 9e78i 和 035cc 两次提交引入的修改,将仓库重置到 ec5be 时的状态。...Reflog(git reflog) 每个人都会犯错,举一个例子:假设你不小心使用 git reset 命令硬重置仓库到某个提交。后面突然想到,重置导致了一些已有的正常代码的误删!...git reflog 是一个非常有用的命令,用于显示所有已执行操作的日志!包括合并、重置、还原:基本上记录了对分支的任何更改。 ?

    1.2K20

    小姐姐用动画图解Git命令,一看就懂!

    指令会复制当前分支的所有最新提交,然后将这些提交添加到指定分支提交记录之上。...git rebase还提供了 6 种操作模式: reword:修改提交信息 edit:修改此提交 squash:将当前提交合并到之前的提交中 fixup:将当前提交合并到之前的提交中,不保留提交日志消息...Hard reset硬重置 硬重置时:无需保留提交已有的修改,直接将当前分支的状态恢复到某个特定提交下。...需要注意的是,硬重置还会将当前工作目录(working directory)中的文件、已暂存文件(staged files)全部移除!...如下图所示: 8、git reflog git reflog 用于显示所有已执行操作的日志!包括合并、重置、还原,也就是记录了对分支的一切更改行为。

    94231

    45个 GIT 经典操作场景,专治不会合代码

    (main)$ git reflog 你将会看到一个你过去提交(commit)的列表, 和一个重置的提交。...或者, 如果你不想使用 HEAD^, 找到你想重置到的提交(commit)的hash(git log 能够完成), 然后重置到这个hash。 使用git push 同步内容到远程。...使用时需要注意,一种安全使用 rebase 的方法是,不要把你的变化(changes)反映到远程分支上, 而是按下面的做: (main)$ git checkout my-branch (my-branch...一般情况下你不关心提交(commit)的时间戳,只想组合 所有 提交(commit) 到一个单独的里面, 然后重置(reset)重提交(recommit)。...那里,还有一个硬重置(hard reset)到一个较旧的提交。最新的动作出现在最上面以 HEAD@{0}标识.

    1.8K40

    Git那些事系列:从业务场景到高级技巧的完整指南(三)

    052e # 回退到指定版本这里比较有意思的是三个参数:hard:重置位置的同时,直接将 working Tree工作目录、 index 暂存区及 repository 都重置成目标...soft:重置位置的同时,保留working Tree工作目录和index暂存区的内容,只让repository中的内容和 reset 目标节点保持一致,因此原节点和reset节点之间的【差异变更集】会放入...mixed:(默认)重置位置的同时,只保留Working Tree工作目录的內容,但会将 Index暂存区 和 Repository 中的內容更改和reset目标节点一致,因此原节点和Reset节点之间的...如图所示:图片这篇文章写的比较好:Git Reset 三种模式使用场景:hard:1.要放弃目前本地的所有改变時 2.真的想抛弃目标节点后的所有commitsoft:想合并「当前节点」与「reset目标节点...push --force origin master这个也是一个偶尔会用到的命令,一般用来填坑,就是把本地的强制覆盖到远端,而远端的一些修改记录(本地没有的修改记录)就没有了,这样也会导致某个文件的修改记录不完善当然

    45151

    Git汇总--版本库操作

    重置–reset or reflog or revert .git/refs/heads/ 中记录了其分支中对应的最新提交ID,下述为master分支最新提交ID: $ cat .git/refs/heads...可以将“游标”指向任意一个存在的提交ID。...如果其他人已经有你将要重写的提交,你应当避免使用 reset;如果有任何其他提交在合并之后创建了,那么这个方法也会无效;移动引用实际上会丢失那些改动。 reflog 显示操作历史!...所以,revert也对应两种方式: 常规commit 使用 git revert 即可,git 会生成一个新的 commit,将指定的 commit 内容从当前分支上撤除 merge的commit revert...之所以后面的参数写作,是因为只有HEAD切换到一个分支才可以对提交进行跟踪,否则仍然会进入“分离头指针”的状态。在“分离头指针”状态下的提交不能被引用关联到而可能会丢失。

    41641

    Git那些事系列:从业务场景到高级技巧的完整指南(三)

    : hard:重置位置的同时,直接将 working Tree工作目录、 index 暂存区及 repository 都重置成目标Reset节点的內容,所以效果看起来等同于清空暂存区和工作区。...soft:重置位置的同时,保留working Tree工作目录和index暂存区的内容,只让repository中的内容和 reset 目标节点保持一致,因此原节点和reset节点之间的【差异变更集】会放入...mixed:(默认)重置位置的同时,只保留Working Tree工作目录的內容,但会将 Index暂存区 和 Repository 中的內容更改和reset目标节点一致,因此原节点和Reset节点之间的...如图所示: 这篇文章写的比较好:Git Reset 三种模式使用场景:hard:1.要放弃目前本地的所有改变時 2.真的想抛弃目标节点后的所有commit soft:想合并「当前节点」与「reset目标节点...push --force origin master 这个也是一个偶尔会用到的命令,一般用来填坑,就是把本地的强制覆盖到远端,而远端的一些修改记录(本地没有的修改记录)就没有了,这样也会导致某个文件的修改记录不完善当然

    18820

    Git 从入门到精通,这篇包教包会!

    将修改作为当前分支的草稿保存 $ git stash # 2....撤销上次git add) $ git reset HEAD # 将HEAD重置到上一次提交的版本,并将之后的修改标记为未添加到缓存区的修改 $ git reset # 将HEAD重置到上一次提交的版本...,并保留未提交的本地修改 $ git reset --keep # 放弃工作目录下的所有修改 $ git reset --hard HEAD # 将HEAD重置到指定的版本,并抛弃该版本之后的所有修改...合并: # 将分支合并到当前HEAD中 $ git merge 重置: # 将当前HEAD版本重置到分支中,请勿重置已发布的提交 $ git rebase Github...或者, 如果你不想使用 HEAD^, 找到你想重置到的提交(commit)的 hash(git log 能够完成), 然后重置到这个 hash。使用git push 同步内容到远程。

    2.6K20

    经典45个git使用技巧与场合,专治不会合代码。

    (main)$ git reflog 你将会看到一个你过去提交(commit)的列表, 和一个重置的提交。...把main分支重置到前一个提交: (main)$ git reset --hard HEAD^ HEAD^ 是 HEAD^1 的简写,你可以通过指定要设置的HEAD来进一步重置。...或者, 如果你不想使用 HEAD^, 找到你想重置到的提交(commit)的hash(git log 能够完成), 然后重置到这个hash。使用git push 同步内容到远程。...使用时需要注意,一种安全使用 rebase 的方法是,不要把你的变化(changes)反映到远程分支上, 而是按下面的做: (main)$ git checkout my-branch (my-branch...那里,还有一个硬重置(hard reset)到一个较旧的提交。最新的动作出现在最上面以 HEAD@{0}标识.

    1.5K20

    45 个 Git 操作场景,专治不会合代码

    (main)$ git reflog 你将会看到一个你过去提交(commit)的列表, 和一个重置的提交。...或者,如果你不想使用 HEAD^, 找到你想重置到的提交(commit)的hash(git log 能够完成), 然后重置到这个hash。使用git push 同步内容到远程。...使用时需要注意,一种安全使用 rebase 的方法是,不要把你的变化(changes)反映到远程分支上, 而是按下面的做: (main)$ git checkout my-branch (my-branch...一般情况下你不关心提交(commit)的时间戳,只想组合 所有 提交(commit) 到一个单独的里面, 然后重置(reset)重提交(recommit)。...那里,还有一个硬重置(hard reset)到一个较旧的提交。最新的动作出现在最上面 以 HEAD@{0}标识.

    1K10
    领券