在需要回退一次或几次commit的时候推荐使用head^ 或者head~1来重置上一次的提交
示例:git reset --soft head^ 来回滚上一次的提交,代码保留.多次使用回滚多个commit(需要修改提交的邮箱或者commit message时可以使用此命令)
经常使用rebase命令能git提交呈现线性树,提交记录更加直观。但是在本地提交过多或者分支间操作时经常会冲突过多而不适用,因为rebase会把两个分支分叉后的本地提交重新按顺序一个个提交到目标分支上,也就是说在冲突过多时,每一个提交都要解决一次冲突
git reset --soft commit id
//回退到某个版本、改动的代码会保留
git reset --hard commit id
//回退到某个版本、改动的代码会丢弃(不需要保留改动时可以使用此命令)
git rebase
//rebase 远端代码到本地(这会对本地代码进行变基,把远端的提交插入本地代码提交的最底下。好比房子的地基改变了,这个地基会和远端仓库的提交一致,本地的提交都变动到这些提交上面)
明确不保留改动的代码时可以使用git reset --hard head^来彻底回滚(只回滚上一次的提交,注意多次提交命令会回滚多次)
git checkout -b branchName
//以当前分支为副本新建本地分支,并且切换到新分支
git branch -a
//查看所有的分支
git branch
//查看所有的本地分支
git cherry-pick commit id
//将其他分支上的某次提交,应用到当前分支上(能够很好的解决错误的在其他分支上开发了代码,只需要checkout到正确的分支将这些commit cherry-pick过来.同时可以在错误的分支上reset掉这些commit)
git push origin <localBranch>:<Branch>
//以本地分支为副本新建远程分支
git push origin --delete <branch>
//删除远程分支
git push -f
//强制push代码到服务器
**设置git别名**
//设置别名
$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status
//删除别名
git config --global --unset alias.co
**设置标签**
//显示所有的标签
git tag
//设置轻量标签v1.0.0
git tag v1.0.0
//批注标签
git tag -a v1.0.0 -m "my version 1.0.0"
//查看打标签者的信息、打标签的日期时间、附注信息,然后显示具体的提交信息。
git show v1.0.0
//将标签推送到服务器
git push origin v1.0.0
//删除标签v1.0.0
git tag -d v1.0.0
//删除服务器的标签
git push origin --delete v1.0.0