背景
使用git的时候,除了简单的提交,推拉代码,有时候难免需要代码回滚,对比等稍微复杂点的操作,这里记录一下目前用到的命令,持续更新。。。。
- 比较两个分支的不同(某个文件在两个分支的不同)
git diff 分支1 分支2 (文件名)
- 本地代码崩了,重新拉区代码覆盖本地
git fetch --all
git reset --hard origin/分支
git pull //可以省略
- 回到以前的版本
git reflog
git reset --hard 版本id
git reset --soft 版本id
- 只查看某个分支的reflog
git reflog show 分支名
- 查看历史提交修改了那些代码
git log --stat
- 暂存代码
git stash
git stash pop
git stash list
- 合并时忽略某个文件
开启自定义merge
配置
git config --global merge.ours.driver true
在项目对应分支的根目录新建文件.gitattributes
内容如下:标识两个文件被忽略
readme.txt merge=ours
/common/src/main/resources/application.yml merge=ours
比如在master分支根目录下新建了配置文件,那么从master
往dev
合并时,配置文件就会生效,忽略指定的文件。
首次merge
时,要注意要保证dev
中被忽略的文件创建时间比master
晚,,不然不会生效。