git配置

书中人 2018年08月19日 1,645次浏览

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