Git 现在已经成为大多数开发人员日常开发中,版本控制的基础工具。Git 基础知识很容易掌握,我们将更改添加到暂存区域,将它们添加到提交树并将它们推送到远程存储库。但是一旦涉及到团队协作时,或者有时候不小心,就会出现各种问题。然而 git 并没有提供类似于 Ctrl+Z 这样的取消操作,如果出错了,该怎么办呢?这里给大家安利一款开源命令行工具,可以帮助我们以交互方式来执行撤消动作:「Ugit」。
Ugit 是一个非常有用的工具,它支持撤消以下操作:
git commit
git add
git push
git branch -D
(删除分支)git pull
git reset
git tag -d
(删除标签)git stash apply
git stash pop/drop/clear
git merge
git cherry-pick
git tag
目前暂时不支持撤销以下两个操作
git rebase
git worktree remove
Ugit 有以下几个依赖项:
awk
, grep
, tput
等等Fzf 是另一个很酷的工具,一个命令行模糊查找器。我们可以使用默认包管理器简单地安装它。如在 macOS 上,可使用以下命令安装。
brew install fzf
安装好依赖项后,在 macOS 上,依然使用 homebrew 来安装
brew install ugit
在 Linux 上,无法通过包管理器获得 Ugit,所以可以克隆存储库并运行安装脚本,或者使用以下命令:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/Bhupesh-V/ugit/master/install)"
安装后,只需在终端中输入 ugit
并按 Enter。
Ugit 可以撤消许多不同的 git 命令。我们可以使用箭头键选择合适的。让我们添加一个提交并立即撤消它。
这相当于 git reset HEAD~
。
又比如如果我们不小心删除了文件怎么办?我们不想恢复提交,我们只想取回文件。
e592de8 (HEAD -> main) Removed question.dart
这个提交 e592de8 意外删除了 quiz.dart,看看使用 Ugit 如何恢复:
就是这么简单。
需要注意的是,即使有 Ugit 这样方便的工具,完全依赖它也是有风险的。Ugit 隐藏了 git 的复杂性。如果我们不了解 git 的基础知识,我们可能会损坏存储库。它是一个很好的记忆辅助工具,但我们仍然应该了解 git 的基础知识。
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8