Git合集
忽略不想提交或远程同步的文件
忽略本地不想提交的文件
在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。 不修改.gitignore文件的方式
1、将文件修改忽略
首先进入到这个文件夹的所在的目录然后再设置忽略文件夹的提交
git update-index --assume-unchanged [file-path]
2、取消文件忽略
git update-index --no-assume-unchanged config.php
如果忽略的文件多了,可以使用以下命令查看忽略列表
git uls-files -v | grep '^h\ '
提取文件路径,方法如下
git ls-files -v | grep '^h\ ' | awk '{print $2}'
所有被忽略的文件,取消忽略的方法,如下
git ls-files -v | grep '^h' | awk '{print $2}' |xargs git update-index --no-assume-unchanged
忽略远程存在,本地不想与远程同步的文件
- 添加跟踪忽略核心命令:
git update-index —assume-unchanged 文件名
撤销提交
总览
- git reset --soft head^ 软撤销,head^是指当前commit,可以改成任意commit id
- git reset --hard head^ 硬撤销,彻底丢掉这次提交的全部修改
- git reset 不加参数(mixed),本次修改就会回到
add之前的状态(把add进去的文件撤销即撤回到加索引之前的状态) - revert 新增一个commit记录
1.1 使用参数--hard,如git reset --hard
①替换引用的指向。引用指向新的提交ID。
②替换暂存区。替换后,暂存区的内容和引用指向的目录树一致。
③替换工作区。替换后,工作区的内容变得和暂存区一致,也和HEAD所指向的目录树内容相同。
1.2 使用参数--soft,如 git reset --soft
即只更改引用的指向,不改变暂存区和工作区。
只改变commit(指针指向),stage index 和 working directory 不变
1.3 使用参数--mixed或者不使用参数(默认为--mixed),如 git reset
更改引用的指向及重置暂存区,但是不改变工作区。
只改变commit(指针指向) 和 add (stage index),working directory不变
使用git revert也能起到回退版本的作用,不同之处在于
-
git revert <commit>会回退到之前的那次提交,比如git revert HEAD~3会回退到最近的第4个提交的状态,而不是第3个 -
git revert会产生一个新的commit,将这次回退作为一次修改记录提交,这样的好处是不修改历史提交记录。