git - Git 中有哪些难以/不可能撤消的操作?

标签 git

<分区>

Git 的优势之一是,因为它使用指针操作,所以撤消大量任务相对容易,包括 deleting a commit or commits。或 creating and deleting remote branches .在许多情况下,您真正​​需要做的就是正确地将当前分支的 HEAD 指针重置为所需的位置,瞧,步骤撤消。这涵盖了相当广泛的案例。

除了删除整个存储库或错误的推送之外,在标准 Git 存储库中无法撤消或极难撤消的最重要的操作是什么?

最佳答案

到目前为止,我在 git 新手中遇到的最常见的“难以撤消”错误是滥用 git stash ,因为 git stash pop git stash 并不总是可逆的| .考虑:

git init /tmp/trash && cd /tmp/trash     # make a new repo
echo A > A                               # create a file
git add A
git commit -m "Initial commit"           # add and commit it
echo B > A                               # ... now change it
git stash                                # ... and stash it
echo C > A                               # and change it and commit it again
git add A
git commit -m "Another commit"
git stash pop                            # now pop the stash

pop将尝试自动 merge A并且会引发冲突,但你不能通过点击 git stash 退出流行音乐再次。这是一个相当简单的示例,但如果您经常存储大量更改并频繁切换不同的分支,则很容易陷入困境。我相信git stash drop也是永久性的,也就是说,如果你放错了藏品,就没有安全网。

一般来说,使用stash它的设计目的是:存储脏工作索引以跳到另一个分支,修复错误,提交,推送,然后跳回原始状态。如果您尝试使用它来管理跨多个分支的大量更改,它不可避免地会在您不加注意的情况下咬住您。

关于git - Git 中有哪些难以/不可能撤消的操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16324923/

相关文章:

linux - 在 linux 和 Windows 环境中共享时, Material 设计图标(如 "\f222")会发生变化

git - 2 个非同一地点的开发人员使用什么 git 工作流程?

每个作者的 GIT 贡献(行)

GitHub 同步不工作。 git push super 慢

git - 获取特定文件/文件夹的所有先前版本

git - git 子模块上的云构建失败

git - Git 如何推送和 pull 远程仓库/本地仓库?

git - 源代码管理问题

git - 组织多个 Scala 相互关联的 sbt 和 git 项目 - 最佳实践建议

git - 获取冲突线/范围