我把以前由 Git 跟踪的文件放在.gitignore 列表中. 但是,文件在编辑后仍然显示在 git 状态。
当前回答
对于我来说,文件在历史上仍然可用,我首先需要清除添加删除文件的命令: https://gist.github.com/patik/b8a9dc5cd356f9f6f980
下面的例子结合了最后3个命令
git reset --soft HEAD~3
git commit -m "New message for the combined commit"
推破的承诺 如果承诺已推到远程:
git push origin +name-of-branch
其他回答
要总结一下:
您的应用程序正在寻找一个被忽略的文件 config-overide.ini 并使用它在承诺的文件 config.ini (或替代,寻找 ~/.config/myapp.ini,或 $MYCONFIGFILE) 承诺文件 config-sample.ini 并忽略文件 config.ini,有脚本或类似的复制文件如有必要。
为文件 / 文件夹执行下列步骤:
删除文件:
需要添加该文件到.gitignore. 需要删除该文件使用命令(git rm --cached 文件名)。 需要运行(git add.). 需要(commit -m)“文件删除”。 最后,(git push)。
例如:
我想删除 test.txt 文件. 我偶然推到 GitHub 并想删除它. 命令将如下:
首先,在.gitignore 文件中添加“test.txt”
git rm --cached test.txt
git add .
git commit -m "test.txt removed"
git push
删除文件夹:
需要添加该文件夹到.gitignore 文件夹. 需要删除该文件夹使用命令(git rm -r --cached 文件夹名称)。 需要运行(git add.). 需要(commit -m)“文件夹删除”。 最后,(git push)。
例如:
我想删除.idea 文件夹/目录. 我偶然推到 GitHub 并想删除它。
首先,在.gitignore 文件中添加.idea
git rm -r --cached .idea
git add .
git commit -m ".idea removed"
git push
下面的命令系列将从 Git 索引中删除所有项目(不是工作目录或本地存储库),然后更新 Git 索引,同时遵守 Git 忽略。
首先:
git rm -r --cached .
git add .
然后:
git commit -am "Remove ignored files"
或者作为一个单线:
git rm -r --cached . && git add . && git commit -am "Remove ignored files"
在我的情况下,我需要在.gitignore 文件中插入 ".envrc" 。
然后我用了:
git update-index --skip-worktree .envrc
git rm --cached .envrc
文件已被删除。
然后我再次承诺,说文件已被删除。
但当我使用 git log -p 命令时,文件的内容(这是 Amazon S3 的秘密认证)显示已删除的内容,我不想在 Git 存储库的历史上显示此内容。
然后我用了这个命令:
git filter-branch --index-filter 'git rm --cached --ignore-unmatch .envrc' HEAD
我再也不会看到内容了。
如果有人在Windows上有艰难的时间,你想忽略整个文件夹,请在文件探测器上转到所需的“文件夹”,右键单击并进行“Git Bash Here”(Git for Windows 应该安装)。
执行此命令:
git ls-files -z | xargs -0 git update-index --assume-unchanged
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别