一般,大部分时间咱们都只会用到add、commit、branch和push/pull这些命令。但若是本身往仓库中添加了错误的文件,或是将代码提交到了错误的分支,并且提交信息还写错了的话,本身怎样才能取消以前的操做?git
下面这个命令可让你编辑最近一次的提交信息编辑器
$ git commit --amend -m ”YOUR-NEW-COMMIT-MESSAGE”
下面的命令强制推送此次的代码提交指针
$ git push <remote> <branch> --force
git add
若是你往暂存区(staging area)中加入了一些错误的文件,可是尚未提交代码。你可使用一条简单的命令就能够撤销code
$ git reset <文件名>
或者若是你想从暂存区移除全部没有提交的修改:索引
$ git reset
有时候你可能会不当心提交了错误的文件或一开始就遗漏了某些东西rem
$ git reset --soft HEAD~1 $ git add -A . $ git commit -c ORIG_HEAD
行第一个命令时,Git会将HEAD指针后移到此前的一次提交,以后你才能移动文件或做必要的修改。it
而后你就能够添加全部的修改,并且当你执行最后的命令时,Git会打开你的默认文本编辑器,其中会包含上一次提交时的信息文本编辑器
“撤销”(revert)在许多状况下是很是有必要的——尤为是你把代码搞的一团糟的状况下推送
$ git checkout <SHA>
<SHA>
是你想查看的提交拥有的哈希值(Hash Code)中前8至10个字符移动
这个命令会使<HEAD>指针脱离(detach),可让你在不检出(check out)任何分支的状况下查看代码
要想撤销合并,你可能必需要使用恢复命令(HARD RESET)回到上一次提交的状态。“合并”所作的工做基本上就是重置索引,更新working tree(工做树)中的不一样文件,即当前提交()代码中与HEAD游标所指向代码之间的不一样文件;可是合并会保留索引与working tree之间的差别部分(例如那些没有被追踪的修改)
$ git checkout -b <SHA>
假设你凑巧有一些未被追踪的文件(由于再也不须要它们),不想每次使用git status命令时让它们显示出来
$ git clean -f -n #1 // 选项-n将显示执行下面的命令时将会移除哪些文件 $ git clean -f #2 // 该命令会移除全部上面的命令中显示的文件 $ git clean -fd #3 // 若是你还想移除文件件,请使用选项-d $ git clean -fX #4 // 若是你只想移除已被忽略的文件,请使用选项-X $ git clean -fx #5 // 若是你想移除已被忽略和未被忽略的文件,请使用选项-x
$ git branch --delete --force <branchName> // 删除本地分支 $ git push origin --delete <branchName> // 删除远程分支