Github git签出错误:无法创建目录:权限被拒绝
我面临git checkout命令的问题。请帮忙 这就是我所做的Github git签出错误:无法创建目录:权限被拒绝,github,bitbucket,git-checkout,Github,Bitbucket,Git Checkout,我面临git checkout命令的问题。请帮忙 这就是我所做的 创建了一个本地目录。创建了一些文件。在本地发起git回购 在bitbucket中创建回购并将我的本地回购推送到bitbucket 在本地创建了一个新分支b01 向b01添加了新文件,提交了它们并成功地将分支推送到bitbucket 现在我正试图将b01与master合并,这就是我面临的问题。我不能结帐了 使用的命令列表和错误详细信息: git clone [my repo] git checkout -b b01 此后,我进行了
git clone [my repo]
git checkout -b b01
此后,我进行了多次更改,包括创建新文件和目录,提交了这些更改,并成功地将该分支上的更改推送到repo。比如:
git push -u origin b01
现在我已经完成了更改,希望将其合并到主分支。所以我做了一个:
git checkout master
下面是它抛出的错误:
fatal: cannot create directory at 'workfolder': Permission denied
Git将我保存在b01中,但删除我在分支中创建的所有文件。
所以如果我现在做一个
git status
它告诉我:
On branch b01
Your branch is upto date with 'orgin/b01'
Changes not staged for commit:
(use "git add/rm .....)
deleted: new file1
deleted: new file2
<list of the new files I had added but which got deleted as a result of the command>
恢复文件
请帮忙 首先,在使用git的每次操作之间,我建议您快速查看git状态。我无法告诉你这多少次让我省去了很多头痛 我可能会尝试做一些事情来阐明问题:
我也有类似的情况。虽然这是因为我在VisualStudio中打开了解决方案。关闭VisualStudio并执行git重置将我置于一个好位置
例如,检查是否有任何进程正在锁定文件夹/文件。如前所述,当另一个进程正在访问文件时,可能会发生这种情况,因此关闭任何可能正在使用它的应用程序都会有所帮助,因为我打开了可视代码,关闭它确实有帮助。我知道这个问题有点老了,但正如上面的答案建议使用——硬标志,这可能不是必需的,我决定发布这个 可能的问题原因:其他进程正在使用/锁定您试图删除的文件/文件夹 解决方案:停止此过程,然后重试。找到它的一种方法是通过资源监视器(我从中学到的方法):
在我的例子中,我只是使用提交哈希而不是分支名称签出了有问题的提交。304/5000 答案很简单。假设您想使用master将分支捣碎,可以执行以下操作:
git checkout-b master-2//来自当前分支,所有更改都在该分支中进行
git分支-D主
git分支机构-m master-2 master
git推送源主机
准备好了!请记住,这是为了防止您想要覆盖分支中的所有内容您是否使用管理员权限运行Git Bash?这听起来好像它没有创建文件夹的权限。其他事情可能是这个的副作用。我使用的是windows机器。我是这台机器的管理员@TimBiegeleisenUPDATE:我不知道出了什么问题,但我打开了第二个git bash窗口,它通过第二个窗口工作。我没有改变任何事情。我仍然保留这个问题,看看是否有人能理解我做了什么把事情搞砸了。我在windows上,没有换烫发。(2) 当前路径长度为97个字符(带空格)。所以这应该不是问题(3)我该怎么做?您的意思是在分支b01之外创建分支b01a,然后将b01a合并到主分支,而不是将b01合并到主分支?(4) 我没有试过这个。我相信这是一个手动的过程,只有在以上都不起作用的情况下才会尝试。你知道我做错了什么,把事情搞砸了吗?我打开了visual studio和vs代码。其中一个必须是维护文件锁。一旦他们都关闭了
git checkout foo branch
对我来说很有效。我也打开了studio和VScode,我只需要关闭VScode,然后就可以通过studio的TFS界面执行操作。关闭VScode并执行git重置--hard
也为我修复了它。但是要小心,大家!在VSCode中,我打开了两个终端。一个用于运行与手表通信的“吞咽”任务,另一个用于“尝试”切换分支。我退出了两个终端,重新打开了一个新的,然后我就可以切换了。谢谢你指出这一点!我在另一个项目的工作区打开了visual studio代码,但它仍然阻止了我的合并。在我关闭了所有visual code studio实例后,它工作得很好。奇怪的是,在我的情况下VS code是一个挂断东西的过程。我关闭了vs代码,并能够签出与PowerShell不同的分支。有人对这个答案投了否决票,我只是想建议,在评论区也写下错误是件好事
git checkout -- .