致命:无法在'node_modules / Base64'创建目录:权限被拒绝,在git checkout master期间

时间:2016-11-04 18:20:01

标签: git

我有一个功能分支,在主分支之前大约有50个提交。我想检查主分支进行小编辑并将其推出。虽然只要我输入git checkout master我就会被提示我提交更改,但突然之间git已经取消了我所做的所有提交,并且要求我在检查master之前提交它们。

基本上将我的功能分支重新设置回主人的头像。我承诺并努力重置我最近在该分支上的提交,以免失去我的所有工作。由于我添加并删除了许多文件,是否会出现某种错误?

编辑更多信息

我删除了一个node_module browserify,但该模块在master上。 在我的功能分支上,添加并提交了所有内容。这是我输入git checkout master后立即出错的错误。

error: unable to create symlink node_modules/.bin/JSONStream: Permission denied error: unable to create symlink node_modules/.bin/acorn: Permission denied error: unable to create symlink node_modules/.bin/browser-pack: Permission denied error: unable to create symlink node_modules/.bin/browserify: Permission denied error: unable to create symlink node_modules/.bin/deps-sort: Permission denied error: unable to create symlink node_modules/.bin/insert-module-globals: Permission denied error: unable to create symlink node_modules/.bin/miller-rabin: Permission denied error: unable to create symlink node_modules/.bin/module-deps: Permission denied error: unable to create symlink node_modules/.bin/sha.js: Permission denied error: unable to create symlink node_modules/.bin/umd: Permission denied fatal: cannot create directory at 'node_modules/Base64': Permission denied

我这样做之后,(顺便说一句,我正在开发webstorm,所以它在面板中显示我的版本控制),我的版本控件显示我的所有提交都不是红色的,需要“添加它们”但这不是添加我的提交它添加逆。所以摆脱我的所有提交。

此外,我正在使用Mac上的流浪盒。

3 个答案:

答案 0 :(得分:6)

sudo是你的问题,而不是解决方案。不要将sudo用于与开发相关的任务。永远。也不要使用sudo git ...。您不需要管理员权限来工作和使用Git。 Git并不打算用作root。

您的问题是您过去可能使用过sudo,因此您以root运行了一个命令,并创建了一些属于root的文件。您可以使用例如ls -lfind . -user 0。然后,下次您尝试修改属于root的这些文件时,您无权执行此操作(请参阅错误消息:Permission denied)。

实际的解决方案是使用chown将文件归还给普通用户,您需要使用sudo一个最后时间。

答案 1 :(得分:1)

运行命令ls -l - 它将显示具有用户权限的所有文件和文件夹。因此,您可以注意到您的node_modules文件夹将具有root权限而不是普通用户权限。这就是为什么在node_modules内创建文件时期望'sudo'。

修复该次尝试

sudo chown -R $USER node_modules

答案 2 :(得分:0)

显然我需要使用sudo git checkout master我以前从未使用过这个来结帐主人。如果有人能解释为什么会这样,请添加一个答案,我会将其标记为答案。