$ git checkout .
1) 还未添加到暂存区/已添加到暂存区还未提交
1.1新建临时分支,git checkout -b new_branch,这样改动会被带到新分支。而后把非目的分支的修改用git checkout --恢复。
1.2先git stash,而后切换到目的分支,git checkout 【branch】,在目的分支git stash pop便可。这种方式最好理解,就是把改动先放到一个临时区域,让git先别管,到了正确的分支再拿出来。
2)已提交到本地仓库
这种状况就要有reset了,用git reset HEAD^撤销最近一次提交,若是有屡次提交的话,查找到对应提交id进行reset就行。git默认的是mixed模式,即撤销暂存区,保留工做区。这样你再切分支也还能把改动带过去。固然加--soft也能够,这样能保留暂存区和工做区。
3)已push到远程仓库
若是很不幸你已经把误修改给push了,你须要用到revert命令,先用git log查找到你误提交的commitId,而后git revert commitId,产生一次逆向提交,来对冲掉以前的。以后再push到远程就能够了。
#git忽略而不提交文件
1)从未提交过的文件能够用.gitignore
这种最简单,直接把想忽略的文件加入gitignore中忽略提交便可
2)已经推送(push)过的文件,想从git远程库中删除,并在之后的提交中忽略,可是却还想在本地保留这个文件
$git rm --cached pages/index.wxml
3)已经推送(push)过的文件,想在之后的提交时忽略此文件,即便本地已经修改过,并且不删除git远程库中相应文件
$git update-index --assume-unchanged pages/index.wxml
若是要忽略一个目录,打开 git bash,cd到 目标目录下
$git update-index --assume-unchanged $(git ls-files | tr '\n' ' ')