Git~命令基操
将每次提交放在一行显示(参数不同,显示内容略有不同):
git log --pretty=oneline
git log --pretty=short
git log --pretty=full
git log --pretty=fuller
一种特殊模式(自定义输出格式):
git log --pretty=format:%h - %an , %ar : %s
git将一个分支完全覆盖另一个分支(当前目录为被覆盖分支):
git reset --hard origin/jinpeng-visit
git push -f
git特殊方式查看日志:
git log --pretty=format:"%h %s" --graph
git查看最近两周内的提交记录:
git log --since=2.weeks
git撤销操作(修改最后一次提交):
git commit --amend
git分支的新建与切换:
//新建分支newbranch git branch newbranch
//切换到分支'test' git checkout -b test
git合并分支:
//回到master分支,合并otherbranch分支到master分支 git marge [otherbranch]
请注意,合并时出现了“Fast forward”的提示。由于当前 master 分支所在的提交对象是要并入的 hotfix 分支的直接上游,Git 只需把 master 分支指针直接右移。换句话说,如果顺着一个分支走下去可以到达另一个分支的话,那么 Git 在合并两者时,只会简单地把指针右移,因为这种单线的历史分支不存在任何需要解决的分歧,所以这种合并过程可以称为快进(Fast forward)。
git删除分支:
//删除分支‘hotfix’ git branch -d hotfix
git跟踪远程分支(从远程分支 checkout 出来的本地分支):
git checkout -b sf origin/serverfix
git checkout -b serverfix origin/serverfix
或
git checkout --track origin/serverfix
git删除远程分支: git push [远程仓库名] :[分支名]
git push origin :serverfix
git push origin --delete serverfix
git查看当前分支所指的对象:
git log --oneline --decorate
git按分叉查看历史记录: git log --oneline --decorate --graph --all
如:* ebc2c8f 修改校验~| * f86c32d (bk_723) 调整校验问题~| * 18ee9bd Merge branch 'master' of http://eatools.bytedance.net/gitlab/camelot/postoffice-management into feature/POSTOFFICE-723| |\|/ /| | * 921cf1d (origin/master, origin/HEAD) Merge branch 'feature/POSTOFFICE-723' into 'master'| | |\| |/ /| | /| |/|/|* | 500804f 修改差异数据编辑逻辑* | 1099161 修改差异数据编辑功能相关~| * 44916eb Merge branch 'feature/POSTOFFICE-301' into 'master'| |\
查看每一个分支的最后一次提交:
git branch -v
git查看哪些分支已经合并到当前分支:
git branch --merged
查看所有包含未合并工作的分支:
git branch --no-merged
设置已有的本地分支跟踪一个刚刚拉取下来的远程分支:
git branch -u origin/serverfix
|| git branch --set-upstream-to origin/serverfix
查看设置的所有跟踪分支: git branch -vv
将提交到某一分支上的所有修改都移至另一分支上:
git checkout testbranch
git rebase master
git查看标准提交信息:
git log --no-merges
- 一般情况下,信息应当以少于 50 个字符(25个汉字)的单行开始且简要地描述变更,接着是一个空白行,再接着是一个更详细的解释;
- Git 项目要求一个更详细的解释,包括做改动的动机和它的实现与之前行为的对比 - 这是一个值得遵循的好规则;
- 在这些信息中使用现在时态祈使语气也是一个好想法