What Are Some Actions In Git That Are Difficult/Impossible to Undo?
Git的一个优点是,因为它使用指针操作,所以撤消包括删除提交或提交或创建和删除远程分支在内的大量任务相对容易。在许多情况下,您真正需要做的就是正确地将当前分支的头部指针重置到所需的位置,然后voila,step undone。这包含了相当广泛的案例。
除了删除整个存储库或错误的推送之外,在标准的Git存储库中,什么是最不重要的操作,既不能撤消,也非常难以撤消?
用最常见的"远东第一误差很难撤消"吃到那些新的跨越,在Git
1 2 3 4 5 6 7 8 9 10 | 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 |
在
在一般情况下,它被设计
在一个例子很难撤消的行动将是:
1 2 | git branch -D some-unmerged-branch-such-as-master git gc --prune=now --aggressive |
第一removes参考一些承诺。第二deletes没有引用的所有邮件。
我希望这只是一个闲置的好奇心是一物,而不是你想要的人对垃圾的回收,但由于其固有的冗余在分布式版本控制,我不太worried。
-
git clean deletes untracked文件。他们会恢复使用Git。 -
合并与肮脏的工作,结果在一个树的CAN的东西是很难恢复的。
操作系统中的短,通过跟踪的事情是不是会恢复通过GIT GIT。其他的事情是可恢复的。
在我的经验,这是最常见的不可逆的行动是