基础操作
- git reflog --查看命令历史,以便确实要回退到哪个版本
- git log --pretty=oneline --简略输出提交信息
- git reset --hard 版本号 --HEAD表示当前版本,HEAD^表示上一个版本
- git checkout -- file (当没有提交到暂存区的时候,可以放弃到掉工作区的修改,将文件回退到未修改时候的状态)
- git reset HEAD file (当修改已经提交到暂存区的时候,可以把暂存区的修改撤销掉(unstage),重新放回工作区,然后在git checkout -- file,放弃掉工作区的修改),notice:如果已经提交到了远程库,在想一下办法
- git rm file 删除版本库的文件,git commit提交,就可以真正的删除
- 如果出现误删的情况,则可以使用 git checkout --file,恢复该文件到最新的一次提交,不过本地的如果在删除之前做个修改,则会丢失本地的修改
配合远程操作以及分支操作管理
- git branch name 创建分支
- git branch -d name 删除分支
- git checkout -b name 创建并切换分支
- git switch -c name 创建并切换分支(需要比较新的git,我的windows好像暂时不支持)
- git cherry-pick 提交序号 在不同的分支之上,复制一个commit,到当前分支
- git stash 将当前工作区的内容暂存,
- git stash list 查看当前工作区缓存列表
- git stash apply stash@{序号} 恢复暂存内容到工作区
- git stash drop stash@{序号} 删除暂存区的内容
- git branch -D name 强制删除分支,如果未合并分支,该分支的内容将丢失
分支管理
- master 分支是主分支,要时刻与远程同步,一般我们发布最新版本就用master分支
- develop 分支是开发分支,团队中所有人都在这个分支上开发,所以也需要与远程同步
- bug 分支一般只在本地使用来修复bug,一般不需推送远程仓库中
- feature 分支是否需要推送到远程,要看是不是有几个人合作开发新功能,如果你是一个开发,那就留在本地吧
- release 分支一般是系统管理,推送或抓取的分支一般与开发人员无关
- other 分支大家按需求分配