1、.gitignore文件不生效(如果先将项目添加的git仓库,后添加忽略文件,不清理git的缓存,忽略文件是不会生效的。)
git rm -r --cached .
git add .git commit -m 'update .gitignore'最后更新.gitignore文件再次提交
2、不同分支合并或拷贝单个文件
另外如果只想将feature分支的某个文件f.txt合并到master分支上。
1: git checkout master2: git checkout --patch feature f.txt第一个命令: 切换到master分支;第二个命令:合并feature分支上f文件到master分支上,将feature分支上 f 文件追加补丁到master分支上 f文件。你可以接受或者拒绝补丁内容。即提示输y或者n如果只是简单的将feature分支的文件f.txt copy到master分支上;
git checkout mastergit checkout feature /p/d/f.txt解释:
y - 存储这个hunk n - 不存储这个hunk q - 离开,不存储这个hunk和其他hunk a - 存储这个hunk和这个文件后面的hunk d - 不存储这个hunk和这个文件后面的hunk g - 选择一个hunk / - 通过正则查找hunk j - 不确定是否存储这个hunk,看下一个不确定的hunk J - 不确定是否存储这个hunk,看下一个hunk k - 不确定是否存储这个hunk,看上一个不确定的hunk K -不确定是否存储这个hunk,看上一个hunk s - 把当前的hunk分成更小的hunks e - 手动编辑当前的hunk ? - 输出帮助信息3、git比较两个分支的文件的差异
git diff branch1 branch2 --stat //显示出所有有差异的文件列表
git diff branch1 branch2 文件名(带路径) //显示指定文件的详细差异git diff branch1 branch2 //显示出所有有差异的文件的详细差异4、撤销修改
git checkout -- "file_name" 将代码回退如果已add到暂存区 就回退到刚添加到暂存区的版本如果没add到暂存区 就回退到版本库的版本5、删除文件一般是从文件管理器将文件删除git status查看哪些文件被删除如果确实要删除该文件 就使用 git rm "file_name" 将该文件从版本库中删除如果是删错了 可以使用 git checkout -- "file_name" 将误删文件恢复到最新版本6、单个文件历史记录
git log --oneline .a.txt7、单个文件回退到历史版本git reset 120a893 a.txt8、查看单文件工作区和版本库里面最新版本的区别(上下键查看,q是退出命令)
git diff HEAD -- readme.txt9、在工作中,遇到一个问题,在git merge后,发生冲突,而当冲突较多的时候,逐个检查冲突,有的时候会遗漏一些文件,导致带有冲突标记的文件上传到了Git服务器上。
使用以下命令可以快速检查是否还存在有带有冲突标记的文件。git diff --check