因此,您现在知道需要在 git 存储库中进行一些清理,可能会使用 rebase 或其他东西,如果您做错了,可能会使撤消变得非常混乱。
有没有办法告诉 Git “保存整个本地 git 存储库的这个状态,以便我可以将所有内容回滚到这一点,以防出现问题?” 类似于“沙箱模式”的东西,它可以让您安全地使用您的存储库,执行潜在的灾难性操作,而没有搞砸任何事情的风险。
我不是在谈论在历史上的特定时间点添加标签或其他东西,而是在谈论可以及时重置在该特定状态的所有分支上的 git repo 中所做的所有更改的东西。回滚所有内容(所有 git 历史/状态)的潜力。类似于 OSX Time Machine 的东西。
2019 年 2 月 19 日更新:我应该澄清一下,“潜在的灾难性操作”,我不是指代码本身,而是实际使用 git 中的 repo 结构,使用例如git reset --hard或类似的命令。
Git 存储库本身是一个沙箱。
克隆您的存储库并在克隆的存储库中播放。你可以在里面做任何事情,你甚至可以完全摧毁它(移除它)。只要您不这样做git push,原件就不会受到影响。
如果您想重新开始,只需删除克隆并重新创建它。或者运行:
git checkout master
git reset --hard origin/master
Run Code Online (Sandbox Code Playgroud)
该checkout命令master在本地存储库上创建当前分支。该reset命令恢复本地当前分支和工作树分支的状态master上origin远程(假设你开始玩的master分支)。
我认为您搜索的是git worktree命令:
另请参阅https://git-scm.com/docs/git-worktree:
\n\n\ngit 存储库可以支持多个工作树,允许您一次签出多个分支。使用 git worktree 添加一个与存储库关联的新工作树。这个新的工作树称为“链接工作树”,而不是 git-init 或 git-clone 准备的“主工作树”。存储库具有一个主工作树(如果它\xe2\x80\x99 不是裸存储库)和零个或多个链接工作树。当您完成链接工作树后,使用 git worktree remove 将其删除。
\n
| 归档时间: |
|
| 查看次数: |
3398 次 |
| 最近记录: |