我有一个功能分支,在主分支之前大约有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上的流浪盒。
答案 0 :(得分:6)
sudo
是你的问题,而不是解决方案。不要将sudo
用于与开发相关的任务。永远。也不要使用sudo git ...
。您不需要管理员权限来工作和使用Git。 Git并不打算用作root。
您的问题是您过去可能使用过sudo
,因此您以root
运行了一个命令,并创建了一些属于root
的文件。您可以使用例如ls -l
或find . -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
我以前从未使用过这个来结帐主人。如果有人能解释为什么会这样,请添加一个答案,我会将其标记为答案。