答案1
所以最终这个问题归结为对 shell 显示内容的困惑,但我们会逐步解决它。
许多操作系统和 shell 发行商(或其用户)可能会选择在其 cli shell 中使用“Git Aware”提示符。这些提示符的作用是显示有关 shell 当前工作目录或该工作目录路径中存在的 git 存储库的信息。在问题提供的图像中,此 shell 正在显示有关在/home
或中定义的 git 存储库的信息/home/alan
。但需要注意的是,git 应用程序当前未运行,因此没有什么可以“退出”的。
Git 提供非交互式和交互式命令。大多数用户只是调用非交互式 git 命令,然后立即执行并返回控制权给 shell。
虽然这里不是这种情况,但如果我不提一下,有几个 git 命令能可以以交互方式使用,就像git add -i
在 shell 中启动并继续运行一样,提示用户输入他们想要做什么的信息。
$ git add -i
staged unstaged path
1: unchanged +0/-1 TODO
2: unchanged +1/-1 index.html
3: unchanged +5/-1 lib/simplegit.rb
*** Commands ***
1: [s]tatus 2: [u]pdate 3: [r]evert 4: [a]dd untracked
5: [p]atch 6: [d]iff 7: [q]uit 8: [h]elp
What now>
(来源https://git-scm.com/book/en/v2/Git-Tools-Interactive-Staging)
在上述情况下,您将点击q
退出应用程序。如果 git interactive 命令没有提供退出方法,这通常表示此时退出应用程序并不安全,因为正在进行一些未完成的操作(例如,存在冲突的合并,其中并非所有冲突都已解决)。
您还可以选择使用 shell 方法结束命令,如 ,ctrl+c
但在错误的情况下,这可能会产生意外或破坏性的结果。Ctrl+c
在合并冲突解决期间按下或终止 shell 实例将使您的文件充满冲突标记,如<<<<<<< HEAD
、=======
或>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086
,因此它确实会损坏您的代码文件。
但在这种情况下,没有 git 交互式命令正在运行,并且没有必要进一步担心。如果 shell 指示路径上存在不需要的 git 存储库,则可以删除存储库,或者将目录移动到不包含存储库的另一个路径。您可能还可以将路径添加到 .gitignore 文件中,但我不确定这是否会阻止父目录中的存储库在提示上显示 git-awareness。