2

最近我的 Windows 7 机器上的 GIT 发生了一些非常奇怪的事情。使用 GIT bash,如果我切换到计算机上任何硬盘上的任何目录,我会看到:

Adam@C-ADAM ~ ((unknown))

其中~是变量取决于当前目录。

如果我运行,git status我会得到以下输出:

flashplayerpluginfatal: Not a git repository (or any of the parent directories):
.git

线索必须在 中flashplayerplugin,但是,我在计算机上搜索了此文件夹,但找不到与.git.

如果我导航到计算机上的实际 GIT 存储库目录,我会得到:

Adam@C-ADAM /d/WWW/yii-projects/irish-health-pro (flashplayerpluginrefs/heads/ma
ster)

我的另一个猜测是我的$PATH变量中的某个目录可能包含一个.git目录。但是,我经历了这些,我找不到任何明显的东西:

$ echo $PATH
/c/Users/Adam/bin:.:/usr/local/bin:/mingw/bin:/bin:/c/Python27/:/c/Python27/Scri
pts:/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/c/Program Files/Comm
on Files/Microsoft Shared/Windows Live:/c/Windows/system32:/c/Windows:/c/Windows
/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/:/c/EXEs:/c/Program Fi
les (x86)/Microsoft SQL Server/100/Tools/Binn/:/c/Program Files/Microsoft SQL Se
rver/100/Tools/Binn/:/c/Program Files/Microsoft SQL Server/100/DTS/Binn/:/c/xamp
p/apache/bin:/c/xampp/mysql/bin:/c/Program Files (x86)/cwRsync/bin:/c/EXEs:/c/EX
Es/ffmpeg/bin:/c/EXEs/gource:/c/xampp/php:/c/Program Files (x86)/QuickTime/QTSys
tem/:/c/Users/Adam/AppData/Roaming/Python/Scripts:/c/Program Files/Common Files/
Microsoft Shared/Windows Live

我已经重新安装了 GIT,但它没有任何区别。

如果我从任何文件夹运行 git gui,我会得到:

git gui 致命错误

有没有人以前见过这样的事情并且知道如何解决?我再也不能在这台计算机上使用 Git,我急于在这个周末完成一些工作!

编辑

按照要求:

$ cd; set -x
++ __git_ps1
++ local pcmode=no
++ local detached=no
++ local 'ps1pc_start=\u@\h:\w '
++ local 'ps1pc_end=\$ '
++ local 'printf_format= (%s)'
++ case "$#" in
++ printf_format=' (%s)'
+++ __gitdir
+++ '[' -z '' ']'
+++ '[' -n '' ']'
+++ '[' -n '' ']'
+++ '[' -d .git ']'
+++ git rev-parse --git-dir
++ local g=flashplayerplugin
++ '[' -z flashplayerplugin ']'
++ local r=
++ local b=
++ '[' -f flashplayerplugin/rebase-merge/interactive ']'
++ '[' -d flashplayerplugin/rebase-merge ']'
++ '[' -d flashplayerplugin/rebase-apply ']'
++ '[' -f flashplayerplugin/MERGE_HEAD ']'
++ '[' -f flashplayerplugin/CHERRY_PICK_HEAD ']'
++ '[' -f flashplayerplugin/BISECT_LOG ']'
+++ git symbolic-ref HEAD
++ b=flashplayerplugin
++ detached=yes
++ b=flashplayerplugin
+++ cut -c1-7 flashplayerplugin/HEAD
++ b=...
++ b=unknown
++ b='(unknown)'
++ local w=
++ local i=
++ local s=
++ local u=
++ local c=
++ local p=
+++ git rev-parse --is-inside-git-dir
++ '[' true = flashplayerplugin ']'
+++ git rev-parse --is-inside-work-tree
++ '[' true = flashplayerplugin ']'
++ local f=
++ '[' no = yes ']'
++ printf -- ' (%s)' '(unknown)'

编辑

根据要求添加更多信息:

Adam@C-ADAM ~ ((unknown))
$ set | grep -F GIT
                            case "${GIT_PS1_DESCRIBE_STYLE-}" in
            b="GIT_DIR!";
            if [ -n "${GIT_PS1_SHOWDIRTYSTATE-}" ]; then
            if [ -n "${GIT_PS1_SHOWSTASHSTATE-}" ]; then
            if [ -n "${GIT_PS1_SHOWUNTRACKEDFILES-}" ]; then
            if [ -n "${GIT_PS1_SHOWUPSTREAM-}" ]; then
        if [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then
            GIT_PS1_SHOWUPSTREAM="$value";
            if [[ -z "${GIT_PS1_SHOWUPSTREAM}" ]]; then
for option in ${GIT_PS1_SHOWUPSTREAM};
                upstream=${GIT_SVN_ID:-git-svn};
        if [ -n "${GIT_DIR-}" ]; then
            test -d "${GIT_DIR-}" || return 1;
            echo "$GIT_DIR";
Adam@C-ADAM ~ ((unknown))
$ cat ~/.gitconfig
[user]
    name = Adam xxxx
    email = adamxxxx@gmail.com
[diff]
    tool = bc3
[difftool "bc3"]
    path = c:/program files (x86)/beyond compare 3/bcomp.exe
[merge]
    tool = bc3
[mergetool "bc3"]
    path = c:/program files (x86)/beyond compare 3/bcomp.exe
Adam@C-ADAM ~ ((unknown))
$ command -V git
git is hashed (/bin/git)
Adam@C-ADAM ~ ((unknown))
$ git --version
flashplayerplugingit version 1.8.1.msysgit.1
Adam@C-ADAM ~ ((unknown))
4

2 回答 2

3

Some possibilities:

  • you recently installed Rogue Amoeba Airfoil. See: https://stackoverflow.com/a/15598704/712605
  • Your GIT_DIR environment variable is set to flashplayerplugin. Try running unset GIT_DIR.
  • git invokes a shell function instead of the git utility. Try running unset -f git.
  • git is a shell alias that's doing something funny. Try running unalias git.
  • git is a shell script that's doing something funny.
  • There's filesystem corruption.

If none of those work, you'll need to provide more info. Please update your question with the output of the following commands:

  • set | grep -F GIT
  • cat ~/.gitconfig
  • command -V git
  • git --version
于 2013-04-20T20:44:45.520 回答
1

基于 理查德的回答,我可以通过更改__git_dir变量来复制它。对于解决方法,您可以使用unset此变量。

Steven@STEVEN-PC ~
$ __git_dir=flashplayerplugin

Steven@STEVEN-PC ~ ((unknown))
$ unset __git_dir

Steven@STEVEN-PC ~
$
于 2013-04-21T03:03:28.187 回答