常见冲突
场景
有时候commit以后往远程仓库push时会被拒绝,有一个万能的处理方案。
一
git log 找到一个确定没有异常的版本
二
git reset --soft 版本号 软回退,工作区的代码会保留下来,暂存区会回退到当前版本
三
git stash 将工作区的改动保存起来,清空工作区
四
git pull --rebase 更新代码并自动合并
五
git stash pop 恢复工作区之前保存的代码
六
git status 查看代码状态,解决掉冲突文件
七
git commit -m "" 然后在 push就没问题了
常用命令
git reflog
git reflog 改命令与git log命令的区别是,git log只会显示你commit的版本号,也就是只显示你的提交记录。而git reflog会显示你的每一次操作的版本号。git reflog会把你的每一次 commit pull push reset等操作都显示出来。
git stash 与 git stash pop
git stash会把你在工作区的改动保存起来,就是你改代码之后还没有add的时候的代码保存起来,工作区就会变成没有改动过得样子。
git stash pop 则是把你git stash时保存的代码再在工作区里显示出来。很是好用。
git commit --amend
这个命令也比较好用,有时候commit之后发现错误需要修改,又不想多一条类似的提交的时候就可以用这个命令。这个命令会把你最后一次的commit修改成当前。输入回车后会进入vim编辑器,编辑备注(这吊编辑器是真的难用)。按i进入编辑状态。按:wq然后回车直接保存退出。按:q!放弃修改强制退出。
git add . 与 git add -u
新手用git的时候可能会喜欢一步到位用add .命令来将全部的改动都添加进去,其实这习惯并不好,如果你没有将某些本地文件忽略掉就可能传到远程仓库去。而add -u命令就很好用,这个命令只会将已修改且与远程仓库相关联的文件添加到暂存区里面去,并不会提交本地文件。
git reset
git版本回退,分软回退和硬回退
git reset --soft 版本号 回退到指定版本但会保留已在工作区修改的部分
git reset --hard 版本号 回退到指定版本但不保留工作区已修改的代码与远程仓库保持一致
回退到当前最新版本 git reset --soft/hard head
git merge
假如要将B分支合并到A分支。先git checkout A 然后执行 git merge B。一搬都会有冲突,git status 查看冲突并解决。冲突解决参考 www.cnblogs.com/ZhangRuoXu/…
git branch
git branch 查看本地分支
git branch -v 查看本地分支并显示最新提交
git branch -vv 查看本地分支并显示与之关联的远程分支与最新提交
git remote
git remote remove origin 解除与远程仓库的关联
git remote add origin https://***** 关联远程仓库
git push -u origin dev 关联远程分支并上传
上班的时候随便写一写,后面我在具体举例。未完待续...