git配置
配置git账户
git config --global user.name "wangxiao" #配置用户名
git config --global user.email "1234567@qq.com" #配置邮箱
查看git配置
git config --global --list
删除分支
删除远程分支
git push origin --delete 分支名称
删除本地分支
git branch -d youhuapic
git branch -D youhuapic (-D强制删除)
git stash
用来暂存当前正在进行的工作。
应用场景:
- 想pull最新代码,又不想commit当前修改的文件
- 想切换到别的分支修复一个紧急bug,又不想commit当前修改的文件
git stash #暂存
git stash pop #将暂存的内容弹出并应用
git cherry-pick commit_id
git cherry-pick 9dc23b34a69679c0301d3b14b5918cfc088e6684
回退
回退到指定版本操作流程
1. 查看所有的历史版本,获取你git的某个历史版本的id
git log
- 回退本地代码库:
git reset --hard commitID
- 强制推送到远程服务器:
git push --force origin 分支
- 重新拉代码:
git pull
git reset
在使用Git的过程中,由于操作不当,作为初学者的我们可能经常要去解决冲突。某些时候,当你不小心改错了内容,或者错误地提交了某些commit,我们就需要进行版本的回退。版本回退最常用的命令包括git reset和git revert。这两个命令允许我们在版本的历史之间穿梭。
下面就几种比较经典的场景进行总结:
- 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命git checkout -- filename;
- 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作;
- 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,使用git reset --hard commit_id,不过前提是没有推送到远程库。
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本;要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
Git revert
Git revert用来撤销某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交。git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容。
Git revert和git reset都可以进行版本的回退,将工作区回退到历史的某个状态,二者有如下的区别:
- git revert是用一次新的commit来回滚之前的commit,而git reset是直接删除指定的commit(并没有真正的删除,通过git reflog可以找回),这是二者最显著的区别;
- git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容;
- 在回滚这一操作上,效果差不多。但是在日后继续merge以前的老版本时有区别。因为git revert是用一次逆向的commit"中和"之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现;但是git reset是之间把某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还会被引入。