Git杂项

作者: Jonath | 来源:发表于2019-02-18 09:41 被阅读0次

Git 忽略规则

详细的忽略规则可以参考官方英文文档

Git 忽略规则优先级

在 .gitingore 文件中,每一行指定一个忽略规则,Git 检查忽略规则的时候有多个来源,它的优先级如下(由高到低):

  • 从命令行中读取可用的忽略规则
  • 当前目录定义的规则
  • 父级目录定义的规则,依次递推
  • $GIT_DIR/info/exclude 文件中定义的规则
  • core.excludesfile中定义的全局规则

Git 忽略规则匹配语法

在 .gitignore 文件中,每一行的忽略规则的语法如下:

  • 空格不匹配任意文件,可作为分隔符,可用反斜杠转义
  • # 开头的文件标识注释,可以使用反斜杠进行转义
  • ! 开头的模式标识否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用 ! 也不会再次被包含。可以使用反斜杠进行转义
  • / 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
  • / 开始的模式匹配项目跟目录
  • 如果一个模式不包含斜杠,则它匹配相对于当前 .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 文件

.gitignore规则不生效

.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:

git rm -r --cached .
git add .
git commit -m 'update .gitignore'

撤销git commit (本地)

git reset HEAD~   

撤销git commit (远程)

git  revert commit_id
or
git  reset --hard  commit_id
--hard – 强制将缓存区和工作目录都同步到你指定的提交

撤销git 暂存

git reset HEAD <fileName>
git reset HEAD 

撤销文件修改

 git checkout -- fileName    (单个)
git checkout -- .                  (所有)
git cherry-pick [<options>] <commit-ish>...

常用options:
    --quit                退出当前的chery-pick序列
    --continue            继续当前的chery-pick序列
    --abort               取消当前的chery-pick序列,恢复当前分支
    -n, --no-commit       不自动提交
    -e, --edit            编辑提交信息

相关文章

  • Git杂项

    Git 忽略规则 详细的忽略规则可以参考官方英文文档 Git 忽略规则优先级 在 .gitingore 文件中,每...

  • LearningGitBranch

    地址 在线学习Git 记录 基础篇 高级篇 移动提交记录 杂项 高级 Push & Pull - 远程仓库 关于o...

  • springmvc+spring+jdbc整合

    简单实例 实例2 杂项1 杂项2 杂项3 实例4

  • Shell脚本之杂项

    title: Shell脚本之杂项tags: shell编程, 杂项 记录一些学到的shell脚本里面的一些杂项(...

  • Linux驱动编程——misc设备驱动框架

    Linux驱动编程——misc设备驱动框架 主要概念: misc:杂项设备杂项设备是字符设备的一种,杂项设备可以自...

  • css 杂项

    css杂项

  • 杂项

    在php中self与$this的分别 在访问PHP类中的成员变量或方法时,如果被引用的变量或者方法被声明成cons...

  • 杂项

    最难熬的是有烦恼却不能跟任何人倾诉的时候, 也许那个时候正是思想上懵懂和成熟交替之际。 烟吸到肺里已经不是当初的感...

  • 杂项

    就算是太阳,也只能照到那些渴望不断生长的人。 关于单恋 大概就是,你的心情与我无关,我的心情却被你左右。 你理我了...

  • 杂项

    1、Decode1 看到的是一串数字,一般二进制可以转十六进制看文件格式或是什么字符,这一串像是十进制,查看asc...

网友评论

      本文标题:Git杂项

      本文链接:https://www.haomeiwen.com/subject/rnboeqtx.html