意外删除分支后如何挽救工作树

时间:2018-08-10 23:38:15

标签: git git-worktree

我有一个与某个分支关联的Git工作树,该分支以某种方式被删除。

似乎没有任何效果。 apiVersion: apps/v1 kind: Deployment metadata: name: support labels: app: support namespace: default spec: replicas: 1 selector: matchLabels: app: support template: metadata: labels: app: support spec: terminationGracePeriodSeconds: 3 imagePullSecrets: - name: mysecret containers: - name: support image: image-name command: - "/bin/sh" - "-c" - "sleep infinity" volumeMounts: - name: kubectl-binary mountPath: /usr/bin/kubectl readOnly: true - name: kubectl-config mountPath: /etc/kubernetes/config readOnly: true volumes: - name: kubectl-binary hostPath: path: /usr/bin/kubectl - name: kubectl-config hostPath: path: /etc/kubernetes/config 正在报告git status

我有未提交的更改。 如何在此工作树中恢复正常

1 个答案:

答案 0 :(得分:1)

Git试图阻止您删除任何工作树中当前已检出的分支。

但是,使用某些版本的Git相关工具,可能可以删除已检出的分支(我是在使用从其他工作树启动的Initial commit时完成的)。如果发生这种情况,工作树将变得混乱,您将看到诸如gitkunknown revision HEAD之类的消息。由于这种困惑,诸如bad revision 'HEAD'gitk --all之类的普通恢复工具将无法正常工作。

您最好挽救工作树的方法(特别是在您未完成工作的情况下)是检出先前与分支相关的确切修订版本。启用此功能的一种方法是运行git stash(即使gitk --reflog无效),然后在正确的位置重新创建分支。

重新创建分支后,可以将其检出并恢复工作。


感兴趣的:Why does git worktree add create a branch, and can I delete it?