一、查看和创建分支
git log //查看提交历史
git status //查看分支状态
git checkout xxxx //切换分支
git checkout -b xxx //创建并切换分支
git checkout -b 本地分支名 origin/远程分支名 //创建并切换分支,并将该分支设置为跟踪远程分支
git branch xxxx / /创建分支
git branch //查看本地分支
git branch -r //查看远程分支
git branch -a //显示所有分支(带*表示当前所在分支)
git branch -d xxx //删除分支
二、提交和修改
git add xxx //提交文件到暂存区
git commit -s //提交并写详细注释
git commit -a //不需要执行add指令,直接提交
git commit --amend //修改add 和commit提交记录,不会新建分支(commit改变,change-id不变)
git remote -v //查看所有远程仓库
git merge 分支名 //合并分支
git rebase 分知名 //参考链接:merge和rebase的区别 和 Git中分支merge和rebase的适用场景及区别
git rebase -i [startpoint] [endpoint] //压缩合并多次提交,-i是–interactive(交互),[startpoint] [endpoint]则指定了一个编辑区间,如果不指定[endpoint],则该区间的终点默认是当前分支HEAD所指向的commit(注:该区间指定的是一个前开后闭的区间)
。
注意: ( rebase 和 merge的使用场景)
- 不要在公共分支使用rebase
- 本地和远端对应同一条分支,优先使用rebase,而不是merge
git reset xxx //回退版本
git reset HEAD^ //回退所有内容到上一个版本
git reset HEAD^ file1 // 回退指定文件到上一个版本
git reset 052e //回退到指定版本
HEAD 说明:
HEAD 表示当前版本
HEAD^ 上一个版本
HEAD^^ 上上一个版本
HEAD 说明:
HEAD 表示当前版本
HEAD^ 上一个版本
HEAD^^ 上上一个版本
git diff //显示已写入暂存区和已经被修改但尚未写入暂存区文件的区别
git diff --stat //显示摘要而非整个 diff
git diff --cached //查看已写入暂存区的改动
git diff HEAD //查看已写入暂存区与未写入暂存区的所有改动
git clean -n //可以在删除前先查看有哪些文件将被删除
git clean -f //删除当前工作目录下的未跟踪文件,但不删除文件夹
git clean -df //删除当前工作目录下的未跟踪文件以及文件夹
git clean -xdf //删除未跟踪的文件