如何在GitLab的master分支删除文件夹,同时保留在其他分支?
解决方法
- 切换到master分支:
git checkout master - 确认当前处于仓库根目录(可通过
pwd命令查看),执行删除命令(注意路径为仓库内的相对路径,不要用../前缀,比如目标文件夹在仓库根目录下直接写文件夹名即可):git rm -r myfolder # 若需删除单独文件,执行 git rm target-file.txt - 提交删除操作的更改:
git commit -m "移除myfolder及相关文件" - 切换回side-branch分支,该分支内的目标文件夹和文件会完整保留:
git checkout side-branch
关键说明
- 你之前用
../myfolder失败是因为路径错误,Git命令需基于仓库根目录的相对路径执行,不能使用上级目录的写法。 git rm -r --cached仅取消文件跟踪,不会删除本地分支内的文件;直接用git rm -r会同时删除仓库记录和当前分支工作区的文件,但由于分支是独立的版本线,side-branch没有这个删除提交,切换回去后文件自然保留。- 手动删除会影响所有分支是因为操作的是共享工作区的文件,切换分支时工作区内容会被分支快照覆盖;而通过分支内提交删除的方式,仅修改当前分支的仓库历史,不会干扰其他分支的内容。
内容的提问来源于stack exchange,提问作者user25607012
相关产品推荐
相关产品推荐

