我有一个已经初始化的Git存储库,我添加了一个.gitignore
文件.如何刷新文件索引以便忽略我想忽略的文件?
我的GitHub存储库中有2个目录.我想删除其中一个.如果不删除并重新创建整个存储库,我怎么能这样做?
这个问题试图消除关于追溯应用 .gitignore 的混淆,而不仅仅是现在/未来。1
我一直在寻找一种方法来追溯强制执行我当前的 .gitignore ,就像我在第一次提交中创建了 .gitignore 一样。
我正在寻求的解决方案:
*.ext
!*special.ext
Run Code Online (Sandbox Code Playgroud)
git rm --cached *.ext
git commit
Run Code Online (Sandbox Code Playgroud)
这需要 1. 手动指定文件和 2. 附加提交,这将导致在其他开发人员拉取时删除新忽略的文件。(它实际上只是一个git rm
- 这是从 git 跟踪中删除- 但它会将文件单独留在本地(您的)工作目录中。 之后其他人git pull
将收到文件删除提交)
git filter-branch --index-filter 'git rm --cached *.ext' …
Run Code Online (Sandbox Code Playgroud) 我有一个名为"Serverside Project"的文件夹,我想从我的git repo online中删除.我似乎无法摆脱它!我该如何删除它?
我已经阅读了有关如何使用 git 命令从存储库中删除忽略文件中的文件的信息:将目录添加到 .gitignore 后从远程存储库中删除。
我将 Visual Studio 2019 与 Azure DevOps 中的存储库一起使用。我使用了以下步骤:
git rm -r --cached .
这告诉 git 停止跟踪所有内容,现在我的所有文件在“暂存更改”中显示为已删除,而在“更改”中显示为添加的文件数量较少。这看起来不错。我假设被忽略的文件不会再次添加回来,所以当我提交这些添加时,所有原本应该被忽略的文件都将在服务器上被删除。我猜这与行尾有关,但几乎不可能查看更改。有没有办法阻止我使用这个过程时发生的空白变化?或者扭转空白变化?或者告诉 git 只检查删除?
TLDR 答案(来自 VonC):
git rm -r --cached .
git config --global core.autocrlf false
git add --renormalize .
git add .
git commit
Run Code Online (Sandbox Code Playgroud) 我在仓库和.gitignore中都有几个文件。
我希望将这些文件从存储库中删除,但不从生产服务器中删除。 git pull origin master
我尝试了多种解决方案,但都没有接缝能用,在每种情况下,当我进行拉动时,最终都会从服务器中删除文件。
参考文献:
我想忽略整个“公共”文件夹,我手动将其添加到我的 gitIgnore 文件中,但是当我提交时,我仍然可以从该文件夹中看到内容。如何做文件 gitignore start 忽略这个?
我的 gitignore 看起来像这样:
/vendor
/node_modules
.env
composer.lock
/public
/.idea
.phpstorm.meta.php
_ide_helper.php
npm-debug.log
package-lock.json
.gitattributes
Run Code Online (Sandbox Code Playgroud) git ×7
gitignore ×4
bitbucket ×2
github ×2
azure-devops ×1
caching ×1
delete-file ×1
git-bash ×1
git-rm ×1