合并中断后继续
git merge --continue
获取最新commit id或者说sha的简短结果
git rev-parse HEAD
git rev-parse --short HEAD
git commit 之前
- 未添加到暂存区的撤销即还没git add .
git st现象:
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: aa.js
no changes added to commit (use "git add" and/or "git commit -a")
补救措施:
// 1、指定文件名 aa.js 是filename
git checkout -- aa.js
// 2、撤销所有
git checkout -- . // or git checkout .
- 已经添加进暂存区的撤销即git add . 之后
git st现象:
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: aa.js
补救措施: 从暂存区撤销 aa.js 是filename
// 1、撤销指定文件
git reset HEAD aa.js
// 2、撤销当前所有暂存区
git reset HEAD
git commit 之后
git st现象:
On branch master
nothing to commit, working tree clean
撤销有两种 1、 git revert 2、 git reset
- git revert
git revert 命令是撤销某次操作,并且这个操作的之前之后都会被保留。 1、用git log 取全部的唯一值。 2、git revert XXXXXXXXXX 。 xxx 得复制全 3、撤销前会进入到vim 的查看环境 q 退出即可。 4、然后推送到远程更新即可 (注意的是revert奇数次生效,偶数次又回到之前的修改状态)
git log
git revert 209b3a7a5c321330094b2419dd42e6919d309dc3
revert 之后,如果你想再合并分支代码,就已经合不上了。所以比较大的出错,得用reset。 之后再合入开发分支。
通过git log 看到的commit ID 回滚是指回到本次含本次。
- git reset 如果想回到某个版本,可以用reset 命令,这种覆盖是不可逆的,提交之后可能会操作提交记录没有了。
git reset --hard 209b3a7a5c321330094b2419dd42e6919d309dc3
可以用git log 查看,发现提交记录没有了 这个时候唯一的补救就是 git reflog 然后再reset 回去
stash 应用
- git stash 备份当前工作区的内容,保存到git栈中,从最近的一次commit中读取相关内容(本地stash之后可以切分支等操作)。
- git stash pop 从git栈中获取到最近一次stash进去的内容,恢复工作区的内容。获取之后,会删除栈中对应的stash。
- git stash list 显示本地存了多少个shash。
- git stash clear 清空(还是别用)
gitignore 不起作用的解决办法 Git 忽略提交 .gitignore
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
查看git 操作history
history
清理git 的log
在master 分支处
1、创建临时分支
git checkout --orphan tmp
2、添加并commit 信息
git add -A
git commit -m 'clean log info'
3、删除master 分支(不放心可以备份个)
git branch -D master
4、更名master & push
git branch -m master
git push -f origin master
已验~