git使用遇到的问题
记一次合作开发中遇到的坑,事情起因是这样的,一周前我开发了一个导出表格的简单需求,因为其中一块名称起得有点问题,当时想着这个名称也就我一个人用的, 没事的全局修改吧,但是万万没想到的是,同事也使用了这个名称,这当然不算可怕,可怕的是我没有发现,我继续提交的时候也没有diff一下,导致仓库出同事的代码被我修改,后来被同事寻找,才发现问题的严重,紧急回退。
可问题就出在回退中,当我reset之后,在此添加我的文件,commit+push的时候,发现,我提交的文档中竟然还包括这个同事的修改文档,当时那纳闷了很久,最后才发现,原来是我在提交时没有清理缓存,导致再次提交的代码中又包含之前的错误代码。
`谨记`
> git rm -r --cached .
> git add .
> git commit -m 'update .gitignore'
```回滚之后一定要清理缓存区。否则就算回滚n次也还是错误的。
还有提交代码一定要diff,万不可修改同事代码。从源头杜绝这类麻烦事件发生。```
git合并多次commit
`第一步
查看log:
git log
第二步
git rebase -i HEAD~2
对最近的两次commit进行rebase操作
将需要合并的commit 内容前面的pick改为squash
保存退出
git rebase --edit-todo 再次编辑
git rebase --continue 提交删除提交日志
再将代码push到远端即可。`
git删除分支
1 先切换到别的分支: git checkout dev_20180927
2 删除本地分支: git branch -d dev_20181018
3 如果删除不了可以强制删除,git branch -D dev_20181018
4 有必要的情况下,删除远程分支:git push origin --delete dev_20181018
git reset 三种用法总结
git reset (–mixed) HEAD~1
回退一个版本,且会将暂存区的内容和本地已提交的内容全部恢复到未暂存的状态,不影响原来本地文件(未提交的也不受影响)
git reset –soft HEAD~1
回退一个版本,不清空暂存区,将已提交的内容恢复到暂存区,不影响原来本地的文件(未提交的也不受影响)
git reset –hard HEAD~1
回退一个版本,清空暂存区,将已提交的内容的版本恢复到本地,本地的文件也将被恢复的版本替换
git查看暂存区文件
git ls-files -s
git 修改日志
git commit --amend