Open shly opened 6 years ago
多半是由于在创建.gitignore文件或添加一些过滤规则之前就track了相应的内容,那么即使在.gitignore文件中写入新的过滤规则,这些规则也不会起作用,Git仍然会对这些文件进行版本管理。简单来说出现这种问题的原因就是Git已经开始管理这些文件了,所以你无法再通过过滤规则过滤它们。 这个时候解决方法就是先把本地这些文件变成未track状态,具体来说就是在缓存里删除它们,然后提交:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
git remote set-url origin *****.git
commit.template
如果把此项指定为你系统上的一个文件,当你提交的时候, Git 会默认使用该文件定义的内容。 例如:你创建了一个模板文件$HOME/.gitmessage.txt,它看起来像这样:
subject line
what happened
[ticket: X]
设置commit.template,当运行git commit时, Git 会在你的编辑器中显示以上的内容, 设置commit.template如下:
$ git config --global commit.template $HOME/.gitmessage.txt
$ git commit
然后当你提交时,在编辑器中显示的提交信息如下:
subject line
what happened
[ticket: X]
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: lib/test.rb
#
~
~
".git/COMMIT_EDITMSG" 14L, 297C
如果你有特定的策略要运用在提交信息上,在系统上创建一个模板文件,设置 Git 默认使用它,这样当提交时,你的策略每次都会被运用。
解决git文件名大小写修改无法识别的问题
运行git config core.ignorecase false,关闭git忽略大小写配置,即可检测到大小写名称更改