如何才能使一个git的承诺,他们没有写入权限的文件夹呢?我最初的尝试是:让git的承诺使用sudo
[email protected]:/etc $ sudo git init
[email protected]:/etc $ sudo git commit -m'init'
不幸的是,这是行不通的。常规用户有一个.gitconfig
与所需的名称和电子邮件,我需要在提交git使用这些凭据。 root用户没有这样的git凭证,因此无法进行提交。
如何才能使一个git的承诺,他们没有写入权限的文件夹呢?我最初的尝试是:让git的承诺使用sudo
[email protected]:/etc $ sudo git init
[email protected]:/etc $ sudo git commit -m'init'
不幸的是,这是行不通的。常规用户有一个.gitconfig
与所需的名称和电子邮件,我需要在提交git使用这些凭据。 root用户没有这样的git凭证,因此无法进行提交。
Git有-c
选项,它可以让你覆盖.gitconfig
设定值(或提供任何新的键值对):
-c <name>=<value>
Pass a configuration parameter to the command. The value given will override
values from configuration files. The <name> is expected in the same format as
listed by git config (subkeys separated by dots).
所以,你可以例如执行:
git -c user.name=user1032531 init
你可以还可以将用户的.gitconfig
作为根用户的gitconfig链接,或者授予当前用户对需要在回购站中的所有文件的访问权限(考虑使用最后一个选项)。
所以,像'须藤混帐-c user.name = user1032531 -c [email protected] init','须藤GIT中-c user.name = user1032531 -c [email protected]加.','须藤GIT中-c user.name = user1032531 -c [email protected]提交-m'init “'?谢谢 – user1032531
是的,你可以创建一个别名:'alias git ='git -c user.name = user1032531 -c user.email = user @ stack.com''。 – syntagma
啊,别名更好! – user1032531
这里有3个选择,要么你给自己的文件夹权限(即让任何人都可以使用),你可以改变你试图提交的目录到你有烫发的地方,或者你可以使用sudo编辑sudo编辑文件的编辑git的配置文件。
如何将目录更改为提交的目录? – user1032531
不是它提交的地方,更改您要提交的文件所在的目录,除非我误解了您的问题。如果我这样做,对不起 – MrSanchez
此外,对方的回答比我的好,关注@ΔλЛ回答 – MrSanchez
你确定吗?如果我做'sudo git config -l --show-origin',它仍然会显示我的用户配置值,而不是root用户。 – Vampire
@吸血鬼它不这样做对我来说。需要注意的是'--show-origin'导致错误,但'须藤混帐配置-l'显示根证书(我已经得到ΔλЛ的答案之前最近增加) – user1032531
你,那么也许应该更新的Git版本。 '--show-origin'从版本2.8.0开始存在。这意味着您的版本已超过1.5年。 – Vampire