git忽略文件
场景一:本地项目部署到远程仓
在实际项目开发时,首先会将本地一份初始化的项目部署到远程仓库,但是本地的一些不必要的文件不需要在远程仓显示。想忽略掉这些文件只需要在 .gitignore文件配置即可。
注意:该条件的前提是要忽略的文件本地仓库有,远程仓库没有。
git 忽略规则匹配语法:
- 空格不匹配任意文件,可作为分隔符,可用反斜杠转义
- 开头的文件标识注释,可以使用反斜杠进行转义
- ! 开头的模式标识否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用 ! 也不会再次被包含。可以使用反斜杠进行转义
- / 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
- / 开始的模式匹配项目根目录
- 如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,如果该模式不在 .gitignore 文件中,则相对于项目根目录
- ** 匹配多级目录,可在开始,中间,结束
- ? 通用匹配单个字符
- [] 通用匹配单个字符列表
常用忽略规则示例:
- bin/: 忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件
- /bin: 忽略根目录下的bin文件
- /*.c: 忽略 cat.c,不忽略 build/cat.c
- debug/*.obj: 忽略 debug/io.obj,不忽略 debug/common/io.obj 和 tools/debug/io.obj
- **/foo: 忽略/foo, a/foo, a/b/foo等
a/**/b: 忽略a/b, a/x/b, a/x/y/b等 - !/bin/run.sh: 不忽略 bin 目录下的 run.sh 文件
- *.log: 忽略所有 .log 文件
- config.php: 忽略当前路径的 config.php 文件
此处引用:https://blog.csdn.net/zh854663752/article/details/83352285
场景二:忽略掉配置文件
在开发中,在项目初始化时,会提交一份代码到远程仓,然后我们拉取下来进行开发,但是由于在本地进行测试之类的,比如数据库连接配置(mysql redis之类的)都不尽相同,这时我们想要在我们拉取或提交时忽略掉这些配置文件。我们可以使用命令方式配置:
git update-index --assume-unchanged <忽略的文件路径>
使用该命令后git便不会追踪该文件的更新情况了。
当然我们也可以解除忽略的一些文件,使用命令
git update-index –no-assume-unchanged <忽略的文件路径>
但是有时候由于忽略的文件过多,这时我们可以查看忽略的文件,找到自己想要解除忽略的文件。使用命令:
git ls-files -v | grep '^h\ '
场景三:删除远程库文件
本地提交时手抖 push了多余的文件到远程仓,但是又不想这些文件被版本控制,想要在远程仓删掉,保留本地的文件,可以使用命令:
git rm --cached <要删除的文件>
一般这种场景是在首次把项目推送到远程库时,多推送了,由于推送的文件已经被版本管理了,所以只有先删除然后在.gitignore文件中配置。
场景四:加入一个新的项目,项目已经在gitlab中存在,现在需要拉取到本地。
1.本地创建一个文件夹 用于存储从远程拉下来的项目 比如:
D:/SoftWare/code
2.切换到code目录,初始化git
git init
3.与远程仓库建立连接
git remote add origin url(ssh或者http)
4.当然此时远程有的分支本地是没有的,这时候就需要本地建立分支并与远程进行关联
git checkout -b 分支名 origin/分支名
5.然后拉取远程代码
git pull origin 分支
场景五:项目发版后发现有bug这时要修复bug因此需要新建一个分支,修复bug后合并
1.在当前发版代码所在的主分支下创建一个新的分支,当前在master分支上
git checkout -b 本地分支名
2.将创建的分支推送到远程,并建立关联。
git push --set-upstream origin 远程分支名
3.在新分支上进行bug修复,修复完后合并代码。
场景六:远程代码已变更,本地又有修改。
远程与本地代码有冲突的时候,执行git pull时就会失败,此时可以使用命令将本地代码暂存起来,然后执行pull命令后再把暂存的代码释放出来,然后再push。
1.将本地代码暂存起来
git stash
2.执行完后git status可以看到当前分支是干净的,拉取远程代码
git pull
3.释放本地暂存
git pop
4.然后就可以将代码提交上去了。
场景七:commit/add后想撤回
1.commit后想要撤回commit,仅撤回commit,写的代码仍会保留。
git reset --soft HEAD^
2.add后想撤回add
git reset HEAD