阅读 170

git上的后悔药

  1. 修改上一次提交的文案

    git commit —amend
    复制代码

    我第一次提交时运行了命令: git add . git commit -m “add some thing"

    但是commit后悔了,需要做一些修改再提交

    再次提交的时候运行 git commit —amend 这时候log日志只显示一条信息

  2. 撤销操作

    • 在执行了commit 命令时 : 回滚到某一个版本git reset —hard 提交的id[commit_id] 要回退到未来 可以使用 git reflog [由上到下分别显示的是最新的提交命令]查看历史命令,这样再使用回滚到某一个版本的命令,执行回滚即可
    • 在未执行 commit但执行了 add,可使用 git reset HEAD file,便回到执行add 之前的状态(从stage状态回到modified状态)
    • 对file做了一些修改,但没有执行 add ,这个时候执行 git checkout - - file便可撤销所有的修改
  3. 删除了某一个分支,恢复上面的东西

    • git log -g找回删掉的commit_id
    • git branch 新分支名 commit_id 即可
  4. 单独恢复某个文件

    • git log 文件名 —>找到要回退的版本
    • git reset commitID 文件名 —>这时候可能会出现这样的 Unstaged changes after reset
    • git checkout — 文件名 即可
  5. git clean 删除工作目录中没有tracked的文件

     -n 不会删除任何文件,只是提醒
     -f 删除当前目录下没有track过的文件,不删除.gitignore指定的文件和文件夹
     -df 删除没有track的文件和文件夹
    -xd 删除没有track过的文件,不管是否在.gitignore指定
    复制代码
  6. git rm 从Unmodified状态到modified状态

  7. git reset —soft HEAD^ 回到最后一次commit —amend,即commit 到stage状态

    —soft 缓存区和工作目录都不会改变

附录

git文件修改的状态变更