本文记录 Git 使用中的一些零碎知识,方便自己查阅,亦希望成人之美。

一、gitignore 文件规则

  • 所有空行或#开头的行都会被忽略;
  • 文件或目录前加 /表示仓库根目录;
  • 匹配模式最后跟反斜杠 / 指明是目录而非文件,忽略该目录下的所有文件,但不忽略该目录;
  • 在模式前加!,指明不忽略某个文件或目录;
  • 支持标准的 glob 模式匹配
    • * 匹配零个或多个任意字符;
    • ? 只匹配一个任意字符;
    • [abc]匹配任何一个列在方括号中的字符;
    • [0-9] 表示匹配所有 0 到 9 的数字,同理有[a-z]等;

二、清空仓库历史提交

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 1. 创建新分支,如名称latest_branch
git checkout --orphan latest_branch

# 2. 添加所有文件
git add .

# 3. 提交
git commit -m "自定义提交说明"

# 4. 删除原来的主分支(master)
git branch -D master

# 5. 将当前分支重命名为master
git branch -m master

# 6. 强制推送到远端
git push -f origin master

有些仓库有 master 分支保护,不允许强制 push,需要在远程仓库项目把分支保护关掉才能推送。

推送前需要使用git remote -v 查看关联的远程仓库的信息(主要是远程库的别名)。虽然远程库的别名默认是 origin ,但可能设置过其他的别名(而非 origin)。