1 【查看这次合并的信息和其它细节】
git show-merge 类似 git find-merge
2 【git获取分支创建时间,并且按时间先后排序】
[alias] lb = !"for k in `git branch|perl -pe s/^..//`;do echo `git show --pretty=format:\"%Cgreen%ci %Cblue%cr%Creset\" $k|head -n 1`\\\t$k;done|sort"
3 【git获取代码提交人和作者】
如两天前的提交历史:git log --since=2.days
如指定作者为"BeginMan"的所有提交:$ git log --author=BeginMan
如指定关键字为“init”的所有提交:$ git log --grep=init
如指定提交者为"Jack"的所有提交:$ git log --committer=Jack
注意作者与提交者的关系:作者是程序的修改者,提交者是代码提交人。
4 【常用选项】
https://git-scm.com/book/zh/v1/Git-%E5%9F%BA%E7%A1%80-%E6%9F%A5%E7%9C%8B%E6%8F%90%E4%BA%A4%E5%8E%86%E5%8F%B2
选项 |
说明 |
-p |
按补丁格式显示每个更新之间的差异。 |
--word-diff |
按 word diff 格式显示差异。 |
--stat |
显示每次更新的文件修改统计信息。 |
--shortstat |
只显示 --stat 中最后的行数修改添加移除统计。 |
--name-only |
仅在提交信息后显示已修改的文件清单。 |
--name-status |
显示新增、修改、删除的文件清单。 |
--abbrev-commit |
仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。 |
--relative-date |
使用较短的相对时间显示(比如,“2 weeks ago”)。 |
--graph |
显示 ASCII 图形表示的分支合并历史。 |
--pretty |
使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)。 |
--oneline |
--pretty=oneline --abbrev-commit 的简化用法。 |
5 【本地回滚 文件删除】
git本地文件 add 后变为绿色 怎么回滚?
首先将文件变为红色,执行 git reset head
然后将Untracked files: remove 执行 git clean -df
git reflog show --date=iso 创建日期
根据日趋决定要回滚的commitid 例如
git reset --hard 5d3ca44f3
git reflog --date=local | grep 创建分支来源
Unstaged changes after reset
解决的办法如下2中办法:
1.git add .
git reset --hard
2.git stash
git stash drop
不是master的分支不准合并
回滚:
git reset head . //回滚本地仓库
git checkout . //本地仓库同步到本地缓存
git log -p -2 //来查看最近两次提交的记录
git log
git reset –hard 8ff24a6803173208f3e606e32dfcf82db9ac84d8
git clean -df //只删除所有untracked的文件
git reset --hard
第一个命令只删除所有untracked的文件,如果文件已经被tracked, 修改过的文件不会被回退。而第二个命令把tracked的文件revert到前一个版本,对于untracked的文件(比如编译的临时文件)都不会被删除。
git pull = git fetch + git merge
git pull --rebase = git fetch + git rebase
6 【rebase】
在rebase的过程中,有时也会有conflict,这时Git会停止rebase并让用户去解决冲突,解决完冲突后,用git add命令去更新这些内容,然后不用执行git-commit,直接执行git rebase --continue,这样git会继续apply余下的补丁。
在任何时候,都可以用git rebase --abort参数来终止rebase的行动,并且mywork分支会回到rebase开始前的状态
7 【Git 本地分支管理基本操作】
查看、切换、创建和删除分支
git br -r # 查看远程分支
git br
git br -v # 查看各个分支最后提交信息
git br --merged # 查看已经被合并到当前分支的分支
git br --no-merged # 查看尚未被合并到当前分支的分支
git co
git co -b
git co -b
git co $id # 把某次历史提交记录checkout出来,但无分支信息,切换到其他分支会自动删除
git co $id -b
git br -d
git br -D
或者使用-t参数,它默认会在本地建立一个和远程分支名字一样的分支
git checkout -t origin/xcomm_zynq_4_4