1.在两个文件修改后,都提交到了缓存区,我们现在要取消其中一个的缓存,使用:
git reset HEAD <filename>
2.通过 hard 指针,回退版本:
git reset --hard <SHA1>
3.通过 reflog 实现之前版本哈希字符串的查找,方便回退版本查看需要的信息后,在回到当前状态:
git reflog
- " -s " 的含义:
git status -s #指简要显示修改信息
git commit -sm "comment" #指 commit 时加签名
5.分支:
git branch #展示当前分支情况
git branch -d <branchname> #删除分支
git checkout -b <branchname> #创建分支
git checkout <branchname> #切换分支
6.合并缓存的修改和上一次的提交,用新的快照替换上一个提交。缓存区没有文件时运行这个命令可以用来编辑上次提交的提交信息,而不会更改快照:
git commit --amend --no-edit
如果不加 --no-edit
编辑器会弹出上一次提交的信息,加入 --no-edit
标记会修复提交但不修改提交信息。需要的话你可以修改,不然的话就像往常一样保存并关闭文件。
-
git diff
各种使用方式:
尚未缓存的改动:git diff
查看已缓存的改动:git diff --cached
查看已缓存的与未缓存的所有改动:git diff HEAD
显示摘要而非整个 diff:git diff --stat
8 . 默认的 git 在输出 log 日志时候,如果日记太多一页显示不完,则会分页分屏显示 log 日志,这样需要用户手动按 Enter 键一步一步输出直到完全输出所有 log 日志。
在有些情况下,可能需要全部一次性的不分页不分屏输出日志,需要命令: --no-pager
。例如:
git --no-pager log -p -3
该命令一次性不分页不分屏输出最近3次提交的代码历史记录。
-
git rebase
使用方式:
首先在你的分支上,使用 git reflog
查看最新更新的远端的代码 <SHA1> 值
然后使用 git rebase -i <SHA1>~1
,然后选择你要 commit 的那个,将 pick 改为 edit
注:git rebase -i 表示交互式 rebase,会打开 $EDITER 让用户选择对每个 commit 的操作
最后
git commit --amend --no-edit
git rebase --continue
附一张老大内部分享的简图: