这个问题试图消除关于追溯应用 .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) 我只是要提交的文件,其扩展名是.fmb,.fmx和.pll,但我不能配置.gitignore文件来实现这一目标.
我试过以下内容:
!.fmb
!.fmx
!.pll
Run Code Online (Sandbox Code Playgroud)
还有:
!*.fmb
!*.fmx
!*.pll
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我的 .gitignore 文件包含
project/app/__pycache__
Run Code Online (Sandbox Code Playgroud)
但是当我运行 git status 时,它会报告此目录中文件的更改......
mydomain:main satishp$ git status
On branch master
Your branch is up to date with 'origin/master'.
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: project/app/__pycache__/__init__.cpython-37.pyc
deleted: project/app/__pycache__/models.cpython-37.pyc
Run Code Online (Sandbox Code Playgroud)
将此目录包含在 .gitignore 中不应该阻止这种情况吗?或者我做错了什么?
我有一个git repo,其中.DS_Store已经跟踪了文件.有没有办法完全忽略每个文件夹中的主题?
我知道被跟踪之前,我可以简单地把.DS_Store在.gitignore,但我也知道,如果它不工作.DS_Store已经版本.
我一直在研究 POC,现在被要求将其上传到我们的 GitHub。我已经这样做了,但今天我注意到bin和obj文件夹被包含在内。
所以我打开我的.gitignore文件来检查我是否添加了 Visual Studio 配置文件。它是..我可以看到[Bb]in/并被[Oo]bj/包括在内。
因此,我尝试通过键入以下内容从 Git 中删除该文件夹:
git rm --cached -r [folder]/bin
Run Code Online (Sandbox Code Playgroud)
这样做之后,我看到所有文件都*dll被删除了,我检查了团队资源管理器并注意到所有文件都被删除了。
提交并重建以查看所有bin文件返回...
它不仅仅是解决方案中的一个项目。似乎所有人都在这样做。我的.gitignore文件在我的解决方案的根目录中。以及 .git 文件夹。文件夹结构的屏幕截图。
.gitignore文件复制到项目文件夹。没用**/[Bb]in/& **[Bb]in/.. 没有变化。关于我在这里缺少什么的任何想法?
我.gitignore是这里的精确副本
我恢复了我的**/[Bb]in/更改,看看我是否破坏了某些东西。
所以我一直在寻找这个并没有找到确切的答案,应该是一个简单的命令,我认为这是一个简单的过程.
基本上我想要:
如何将它们移动到未跟踪状态,这样当我想要推动它们时,我可以很容易地将它们取回,如何以快速的方式?
为了明确这个问题,我不是在问如何从历史记录中删除单个文件,就像这个问题:Completely remove file from all Git repository commit history。我也不是在询问从 gitignore取消跟踪文件,就像在这个问题中一样:Ignore files that have been commited to a Git repository。
我说的是“更新 .gitignore 文件,然后从历史记录中删除与列表匹配的所有内容”,或多或少类似于这个问题:忽略已提交到 Git 存储库的文件。但是,不幸的是,该问题的答案不适用于此目的,因此我在这里尝试详细说明该问题,并希望找到一个不涉及人工查看整个源树以手动执行过滤器分支的好答案在每个匹配的文件上。
在这里,我提供了一个测试脚本,目前正在执行Ignore files that have been commited to a Git repository的答案中的过程。它将root在 PWD 下删除并创建一个文件夹,因此在运行它之前要小心。我将在代码之后描述我的目标。
#!/bin/bash -e
TESTROOT=${PWD}
GREEN="\e[32m"
RESET="\e[39m"
rm -rf root
mkdir -v root
pushd root
mkdir -v repo
pushd repo
git init
touch a b c x
mkdir -v main
touch main/{a,x,y,z} …Run Code Online (Sandbox Code Playgroud) 我使用 GitKraken 来满足我的版本控制需求,并且在很大程度上我喜欢它。我时不时会遇到一些我可以做 UI 并且必须使用命令行的事情。
我现在正在尝试做的一件事是将一些文件模式添加到我的 git repo 的.git/info/exclude文件中(注意:这不是 git ignore;我只是想排除我本地 repo 中的更改,因为文件所讨论的问题与需要提交的内容无关。)
GitKraken 似乎忽略了我对此文件所做的更改,或者我只是没有正确执行此操作。有谁知道 GitKraken 对这个文件做了什么?我似乎无法在他们的网站上找到任何关于它的文档。
然后我commit在 Visual Studio 中做了一个代码push,但是我不小心错过了提交了一个 1GB 的文件。我看到这个错误,并将文件移动到一个.gitignore路径并push编辑该提交,但现在同步这个巨大的提交被卡住了,我不知道如何停止它,而且我在网上找不到信息,有什么建议吗?
PS:我下载了插件 GitLens 来尝试解决问题,右键单击并从 gitlens 恢复提交并没有解决问题
我正在用 JavaScript(React / Node)做一个项目,我想忽略其中的每个 .env 文件,
我在项目的根目录下不仅有一个 .env 文件,因为我有一个用于前端的文件夹和另一个用于后端的文件夹,
Root
backend
.env
frontend
.env
.gitignore
Run Code Online (Sandbox Code Playgroud)
在 .gitignore 文件中:
/node_modules
/backend/node_modules
/frontend/node_modules
/backend/.env
/frontend/.env
Run Code Online (Sandbox Code Playgroud)
node_modules 文件夹将被忽略,但 env 文件不会被忽略,
gitignore 文件位于根目录,但是我应该在每个文件夹中都有一个 gitignore 文件吗?...