为什么我需要Root权限才能执行`git branch -a`命令?

6

git仓库位于我的用户名nikhil和分组nikhil下,具体如下:

$ ls -l
drwxr-xr-x 10 nikhil nikhil 4096 Sep  1 12:33 CS/

我可以在不需要root权限的情况下使用git status来获取当前git的状态。

但是当我尝试列出分支时:

$  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

我发现问题是由Anaconda在我的.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生效了。


注释不适合进行长时间讨论;这个对话已经被转移到聊天室 - Bhargav Rao
1个回答

3

conda提供了自己的pager二进制文件(不是moreless,而是pager)。使用sudo会清除您的PATH环境变量,因此它并不是通过更改权限来解决问题,而是通过防止使用这个有缺陷的二进制文件来解决问题。

为了防止出现任何不良行为,请将其移开:

mv ~/anaconda3/bin/pager{,.bad}

感谢您的努力。使用您的解决方案,它已经正确地工作了。 - Porcupine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接