打赏

git忽略文件

git 忽略本地修改文件

1. .gitignore文件

显式地阻止提交文件, .gitignore 文件本身提交至远程仓库,全组共享忽略文件配置

# 忽略后缀为.class文件
*.class
# 忽略文件夹
bin/
# 忽略名称中末尾为ignore的文件夹
*ignore/
# 忽略名称中间包含ignore的文件夹
*ignore*/
# 忽略tmp文件夹所有文件
tmp/*            

# 检查规则
git check-ignore -v xxx.class

# .gitignore 只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
# 解决方法就是先把本地缓存删除(改变成未track状态),然后再提交
git rm xxx.class --cached
git add xxx
git commit -m ""
git push -u origin master

untrack 表示是新文件,没有被add过,是为跟踪的意思
not staged 表示add过的文件,即跟踪文件,再次修改没有add,就是没有暂存的意思

2. assume-unchanged

声明本地远程都不会修改这个文件 , git 直接跳过这些文件的处理以提升性能。文件不会出现在 git status, 不适合本地或远程需要修改的文件。本地会忽略掉之后远程文件的修改

git update-index --assume-unchanged  xxx   // 忽略本地修改的文件
git update-index --no-assume-unchanged xxx  // 取消文件忽略

3. skip-worktree

副作用:在拉取远程分支时,由于本地和远程文件存在不一致的更新,会导致冲突的问题,需要先取消忽略的文件,再解决冲突

git update-index --skip-worktree /path/to/file  // 忽略本地对这个文件的所有修改
git update-index --no-skip-worktree /path/to/file  // 取消忽略

git ls-files -v | grep -E -i /path/to/file  // 查看忽略的文件 第一列S标记为忽略的项目
git ls-files -v | Select-String -Pattern /path/to/file  // powershell查看忽略的文件

4. .git/info/exclude

显式地阻止提交文件, exclude 文件本身不会提交至远程仓库,因此适合放一些个人定制的 「gitignore」 项目 , 文件若已存在远程仓库,则本地修改仍可以提交至远程仓库。本地的修改会显示在 git status 结果中

vi .git/info/exclude

5. 强制替换本地文件

git fetch --all  // git fetch从远程下载最新的,而不尝试合并或rebase任何东西。

git reset --hard origin/master  // 将主分支重置为您刚刚获取的内容。

git pull   // 可以再次pull 一下

6. 全局忽略

vi .gitconfig
[core]
excludesfile = c:/Users/你的账户文件夹/.gitignore_global   // 新建一个.gitignore_global文件 
或者
git config --global core.excludesfile ~/.gitignore_global

参考链接

https://mengqi92.github.io/2020/07/17/hide-files-from-git/

https://git-scm.com/docs/gitignore

posted @ 2022-10-19 11:44  苍山落暮  阅读(2468)  评论(0编辑  收藏  举报