为什么我需要 Root 权限才能执行 `git branch -a`?
Why do I need Root privilege to do `git branch -a`?
git 存储库在我的用户名 nikhil
和组 nikhil
下,如下所示:
$ ls -l
drwxr-xr-x 10 nikhil nikhil 4096 Sep 1 12:33 CS/
我可以在没有 root 权限的情况下获得 git 状态 git status
。
但是当我尝试列出分支时:
$ git branch -a
没有任何反应。
此外,具有 root 权限:
$ sudo git branch -a
[sudo] password for nikhil:
* master
remotes/origin/feature
remotes/origin/master
它确实列出了我所有的存储库。
为什么会这样?
编辑:ls -lh .git
的输出
$ ls -lh .git
total 332K
drwxr-xr-x 2 nikhil nikhil 4.0K May 25 16:32 branches
-rw-r--r-- 1 nikhil nikhil 2 Sep 1 12:25 COMMIT_EDITMSG
-rw-r--r-- 1 nikhil nikhil 5.6K Sep 1 12:33 config
-rw-r--r-- 1 nikhil nikhil 73 May 25 16:32 description
-rw-r--r-- 1 nikhil nikhil 90 Sep 1 12:33 FETCH_HEAD
-rw-rw-r-- 1 nikhil nikhil 23 Sep 1 12:33 HEAD
drwxr-xr-x 2 nikhil nikhil 4.0K Jun 11 15:25 hooks
-rw-r--r-- 1 nikhil nikhil 229K Sep 1 12:34 index
-rw-r--r-- 1 nikhil nikhil 44K Jun 11 08:56 INDEX
drwxr-xr-x 2 nikhil nikhil 4.0K Jun 11 15:25 info
drwxr-xr-x 3 nikhil nikhil 4.0K Jun 11 15:28 logs
drwxr-xr-x 8 nikhil nikhil 4.0K Aug 11 18:01 modules
drwxr-xr-x 260 nikhil nikhil 4.0K Jun 27 15:29 objects
-rw-rw-r-- 1 nikhil nikhil 41 Sep 1 12:33 ORIG_HEAD
drwxr-xr-x 5 nikhil nikhil 4.0K Jun 11 15:25 refs
我在 .bashrc
:
中发现了 Anaconda 造成的问题
export PATH="$HOME/anaconda3/bin:$PATH"
if [ -f $HOME/anaconda3/etc/profile.d/conda.sh ]; then
source $HOME/anaconda3/etc/profile.d/conda.sh
fi
conda activate
我该怎么办?当我将其注释掉时 git branch -a
有效。
conda
提供自己的 pager
二进制文件(不是 more
或 less
,而是 pager
)。使用 sudo
会清除您的 PATH - 因此它不是通过更改权限来解决问题,而是通过完全防止使用这个有问题的二进制文件来解决问题。
为防止出现任何不良行为,请将其移开:
mv ~/anaconda3/bin/pager{,.bad}
git 存储库在我的用户名 nikhil
和组 nikhil
下,如下所示:
$ ls -l
drwxr-xr-x 10 nikhil nikhil 4096 Sep 1 12:33 CS/
我可以在没有 root 权限的情况下获得 git 状态 git status
。
但是当我尝试列出分支时:
$ git branch -a
没有任何反应。
此外,具有 root 权限:
$ sudo git branch -a
[sudo] password for nikhil:
* master
remotes/origin/feature
remotes/origin/master
它确实列出了我所有的存储库。
为什么会这样?
编辑:ls -lh .git
$ ls -lh .git
total 332K
drwxr-xr-x 2 nikhil nikhil 4.0K May 25 16:32 branches
-rw-r--r-- 1 nikhil nikhil 2 Sep 1 12:25 COMMIT_EDITMSG
-rw-r--r-- 1 nikhil nikhil 5.6K Sep 1 12:33 config
-rw-r--r-- 1 nikhil nikhil 73 May 25 16:32 description
-rw-r--r-- 1 nikhil nikhil 90 Sep 1 12:33 FETCH_HEAD
-rw-rw-r-- 1 nikhil nikhil 23 Sep 1 12:33 HEAD
drwxr-xr-x 2 nikhil nikhil 4.0K Jun 11 15:25 hooks
-rw-r--r-- 1 nikhil nikhil 229K Sep 1 12:34 index
-rw-r--r-- 1 nikhil nikhil 44K Jun 11 08:56 INDEX
drwxr-xr-x 2 nikhil nikhil 4.0K Jun 11 15:25 info
drwxr-xr-x 3 nikhil nikhil 4.0K Jun 11 15:28 logs
drwxr-xr-x 8 nikhil nikhil 4.0K Aug 11 18:01 modules
drwxr-xr-x 260 nikhil nikhil 4.0K Jun 27 15:29 objects
-rw-rw-r-- 1 nikhil nikhil 41 Sep 1 12:33 ORIG_HEAD
drwxr-xr-x 5 nikhil nikhil 4.0K Jun 11 15:25 refs
我在 .bashrc
:
export PATH="$HOME/anaconda3/bin:$PATH"
if [ -f $HOME/anaconda3/etc/profile.d/conda.sh ]; then
source $HOME/anaconda3/etc/profile.d/conda.sh
fi
conda activate
我该怎么办?当我将其注释掉时 git branch -a
有效。
conda
提供自己的 pager
二进制文件(不是 more
或 less
,而是 pager
)。使用 sudo
会清除您的 PATH - 因此它不是通过更改权限来解决问题,而是通过完全防止使用这个有问题的二进制文件来解决问题。
为防止出现任何不良行为,请将其移开:
mv ~/anaconda3/bin/pager{,.bad}