我要将几个文件上传到社区Git项目,我只应该在未经许可的情况下上传某些文件,然后在我需要更改它们时请求允许上传所有其他文件。所以,我希望Git忽略所有我无权自由更改的目录,这样我就可以自由上传我想要的内容,然后如果需要,上传我改变的目录,我不会获得许可。
这样做最好的方法是什么?
答案 0 :(得分:2)
如果这些目录(您无权直接更改)已经版本化,我建议不要将.gitignore
解决方案作为:
.gitignore
(远程仓库不想更改)git rm -r --cached /folders/you/dont/have/permission
)中删除这些文件夹,它将无法正常工作,这反过来又有提交和推送的风险(远程仓库需要这些文件夹!)最好应用本地解决方案(不会有被误推的风险)。
在添加任何内容之前,执行(对于您没有权限的文件夹)a:
git update-index --skip-worktree -- /folder
请参阅“using git skip-worktree to disable file updates”
您的git status
,git add
和git commit
应忽略已经版本化的文件夹,即使您已在其中修改/添加了文件。
您可以使用以下内容撤消本地更改:
git update-index --no-skip-worktree -- /folder