09月24, 2020

Git常用命令

在Git中,回滚到之前的某一个提交(commit)是一个常见的需求,特别是在你发现最近的更改引入了错误时。下面是一些常用的命令以及相关的说明:

  1. 查看提交历史:可以使用git log命令来查看提交历史。每一行都显示一个commit的哈希值、作者、提交时间和提交信息。

    git log
  2. 回滚到指定的提交:可以使用git reset命令来回滚到指定的提交。--hard选项会重置工作目录和暂存区到指定的提交。

    git reset --hard 692d297

    请注意,使用--hard选项会丢失所有指定提交之后的更改,所以要谨慎使用。一般是只有直接放弃和删除时才会使用hard。如果不小心删除了,可以使用git reflog命令来查看操作的历史记录,然后找到误操作之前的版本号,再次使用git reset回退到这个版本就可以了。

  3. 回滚到指定的提交,保留更改:如果你想回滚到指定的提交,保留工作区和暂存区的修改,可以使用--soft选项。

    git reset --soft 692d297

    这样,所有指定提交之后的更改都会保留在工作区和暂存区中,你可以再次提交这些更改。应用场景可以是在多次无效提交后,通过此种回滚方式,可以将多次的无效提交合并成一个提交。

  4. 回滚到指定的提交,保留更改:如果你想回滚到指定的提交,但保留所有更改作为暂存的修改,可以使用--mixed选项。

    git reset --mixed 692d297

    这样,所有指定提交之后的更改都会保留在工作区中。应用场景可以是在多次无效提交后,通过此种回滚方式,可以将多次的无效提交合并成一个提交。

  5. 创建一个新的提交来撤销之前的提交:可以使用git revert命令来创建一个新的提交来撤销之前的提交。

    git revert 692d297
  6. 查看指定范围的提交历史:可以使用git log命令的选项来查看指定范围的提交历史。

    git log --oneline --graph --all --decorate
  7. 回滚到指定的分支或标签:除了回滚到指定的提交,你还可以回滚到指定的分支或标签。

    git reset --hard origin/master
    git reset --hard v1.0.0
  8. 放弃工作目录中的更改:如果你想放弃工作目录中的所有更改,可以使用git checkout命令。

    git checkout .
  9. 放弃暂存区中的更改:如果你想放弃暂存区中的所有更改,可以使用git reset命令。

    git reset

请注意,在进行任何回滚操作之前,最好先创建一个备份分支,以防万一。

git branch backup-branch
  1. 查看版本差异:HEAD代表最新版本,~表示上个版本,数字表示上第几个版本,后面加文件名就是只比较文件的差异。

    git diff HEAD~3 HEAD
    git diff HEAD~3 HEAD file3.txt
  2. .gitignore无法忽略部分:如果我们先添加了某些文件到git中去,后面再使用通配符要忽略某些文件。比如我们一开始添加了other.log文件,后面又想忽略它。我们需要先把它从git仓库中删除,但不要从本地磁盘上删除,就使用如下命令。参考:gitignore忽略文件

    git rm --cached other.log

部署私有仓库可以使用gitlab。参考:Gitee的使用和GitLab本地化部署

最佳时间可参考:分支管理和工作流模型【完结】

本文链接:https://www.daguanren.cc/post/Git-chang-yong-ming-ling.html

-- EOF --

Comments