Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Git中的拉取请求中删除包含内容的文件夹_Git_Github_Version Control_Versioning_Pull Request - Fatal编程技术网

从Git中的拉取请求中删除包含内容的文件夹

从Git中的拉取请求中删除包含内容的文件夹,git,github,version-control,versioning,pull-request,Git,Github,Version Control,Versioning,Pull Request,我提出了一个拉取请求,现在我必须在合并之前删除.vscode文件夹 如何从分支中删除该文件夹,然后再次推送没有该文件夹的版本 .vscode文件夹位于my.gitignore中,但一直被忽略。我必须手动删除它。(假设您是功能分支的“所有者”,就像在许多工作流中一样。) #从功能分支开始 git签出 #撤消上次提交,但保留工作树(和索引)中的更改 git重置--软头^ #从索引中取出不需要的文件夹 git重置头--路径/到/文件夹 #重做您的提交,这次没有文件夹 git提交-m“有用的消息” #推

我提出了一个拉取请求,现在我必须在合并之前删除.vscode文件夹

如何从分支中删除该文件夹,然后再次推送没有该文件夹的版本

.vscode文件夹位于my.gitignore中,但一直被忽略。我必须手动删除它。

(假设您是功能分支的“所有者”,就像在许多工作流中一样。)

#从功能分支开始
git签出
#撤消上次提交,但保留工作树(和索引)中的更改
git重置--软头^
#从索引中取出不需要的文件夹
git重置头--路径/到/文件夹
#重做您的提交,这次没有文件夹
git提交-m“有用的消息”
#推到遥控器以替换旧的ref,因此需要--force
git-push-f原点磁头

此时,远程服务器只需刷新页面(用新的分支引用更新拉取请求),您将被设置为合并您的分支,这次没有“坏”文件夹。

您可以手动删除该文件夹,然后
git commit——修改现有的提交,并
git push-f为您的分支注册


仅供参考,请确保
.vscode/
在您的.gitignore中,需要结尾。

文档中说“如果提交仅存在于本地存储库中,尚未推送到GitHub,则可以使用git commit--amend命令修改提交消息。在命令行上,导航到包含要修改的提交的存储库。在文本编辑器中,编辑提交消息并保存提交。“-因此,我的提交也在远程repo上。该.vscode位于my.gitignore中,类似于.vscode/和/.vscode/,但它会被irgnored:(因为您的提交也在远程repo上,所以我们需要git push-f origin your_分支强制推送,这样它将覆盖上一个。关于忽略文件,请尝试一下@Codehan25是的,这就是“强制”推送的原因。我假设您确实已经推送了。
# start from your feature branch
git checkout <feature-branch>

# undo last commit but keep changes in the working tree (and index)
git reset --soft HEAD^

# get your unwanted folder out of the index
git reset HEAD -- path/to/folder

# redo your commit, this time without the folder
git commit -m "Useful message"

# push to the remote to replace the old ref, thus needing --force
git push -f origin HEAD