以下两个命令行之间有什么区别?
root@superhero:~/Workspace/# sudo git push origin master
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
root@superhero:~/Workspace/# git push origin master
Everything up-to-date
答案 0 :(得分:2)
使用sudo
会使命令以root用户身份运行。 Git命令使用存储在当前用户主目录中的凭据和配置;当您以sudo
运行时,此代码将查看root
主目录,而不是您的主目录,从而错过此上下文。
在大多数情况下,没有必要使用sudo
。很少有需要它的情况(例如全局安装软件,例如使用apt-get
),当涉及编程时,使用sudo
通常但不总是反模式(按顺序)为了确保源代码是密封的和可重现的,大多数软件应该安装在存储库中,而不是全局安装。
答案 1 :(得分:1)
在命令中使用sudo时。这是执行命令的root用户。用于访问git服务器的密钥存储在目录(.ssh /)中。在root中运行命令时。该目录是root的'.ssh /',所以不是好的。
另一点,使用sudo,这是来自sudo组的用户执行命令。因此,sudo组无法访问your.ssh