先看张原理图
暂存区相关指令
git add .
git rm --cached 撤出暂存区
git rm -f 同时删除工作目录和暂存区文件
本地库
git commit -m "提交代码"
git diff --cached 比对暂存区和本地仓库有什么不同
远程库
git push orgin master
git remote -v
git remote rm 要删除的远程分支名
日志及回滚
git log --oneline --decorate
git reflog 查看历史所有commit的分支
git reset --hard 2342e1
git tag -a v0.1 -m "v0.1tag"
git tag -d v0.1 删除tag
git show v0.1 查看tag的信息
git的冲突发生
1、git冲突的场景
情景一:多个分支代码合并到一个分支时;
情景二:多个分支向同一个远端分支推送代码时;
实际上,push操作即是将本地代码merge到远端库分支上。
关于push和pull其实就分别是用本地分支合并到远程分支 和 将远程分支合并到本地分支
所以这两个过程中也可能存在冲突。
git的合并中产生冲突的具体情况:
<1>两个分支中修改了同一个文件(不管什么地方)
<2>两个分支中修改了同一个文件的名称
两个分支中分别修改了不同文件中的部分,不会产生冲突,可以直接将两部分合并。
3、实战演示
(1)情景
本地库中两个不同分支,修改同一个文件同一代码块,两分支先后将修改合并到master分支上,master在合并第二个分支代码时,报错:合并冲突。
git的stash
stash命令可用于临时保存和回复修改,可跨分支。
注:在未add之前才能执行stash!!!!
git stash [save message]
保存,save为可选项,message为本次保存的注释
git stash list
所有保存的记录列表
git stash pop stash@{num}
恢复,num是可选项,通过git stash list可查看具体值。只能恢复一次
git stash apply stash@{num}
恢复,num是可选项,通过git stash list可查看具体值。可回复多次
git stash drop stash@{num}
删除某个保存,num是可选项,通过git stash list可查看具体值
git stash clear
删除所有保存
git合并出现冲突处理
git合并出现冲突:
Your local changes to the following files would be overwritten by merge:
Please, commit your changes or stash them before you can merge.
解决方案:
git stash //使返回到自己上一个commit,先隐藏
git pull origin master //拉取最新的代码
git stash pop //回到自己修改的代码
git pull每次都需要输入账号密码:
git config --global credential.helper store
程序员的眼里,不止有代码和bug,还有诗与远方和妹子!!!
本地分支切换时需要注意的事项
1.跳转分支之前git status一下查看是不是有没有add和commit的工作,如果有,可以的话,就都提交掉。(事实上尚未add的工作带到了新分支下如果不继续对该文件进行处理,带过去也是没有影响的,大不了跳回来再带回来嘛,反正木有add过的内容在新分支下commit也不会把这部分工作提交。)
2.如果确实有尚未add和commit的工作,但是并未完成不方便进行提交,可以利用git stash进行现场保留,然后跳转。(git stash的用法也是一块比较重要的内容,这里暂不详细介绍了,可以直接百度其用法~)
3.如果1.2你都没有做,很不小心地带着未commit的工作跳转到了另一分支下,跳转之后的提示可以让你意识到你把先前分支的工作带过来了,不做任何修改直接再跳回去就好(就又带回去了),然后进行1或2步中所说。
https://blog.csdn.net/weixin_34114823/article/details/92254904?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight