丢弃工作区的修改(让这个文件回到最近一次git commit或git add时的状态。)
git checkout -- readme.txt 命令中的--很重要,没--,就变成了“切换到另一个分支”的命令
git checkout . #放弃工作区所有的修改
把暂存区的修改撤销掉,重新放回工作区
git reset HEAD readme.txt
版本回退(未push到公共分支时候使用)
git reset --hard HEAD^ #回退一次
git reset --hard HEAD^^ #回退二次
git reset --hard HEAD~100 #回退100次
git reset --hard 3628164 #commit id是3628164...
--soft – 缓存区和工作目录都不会被改变
--mixed – 默认选项。缓存区和你指定的提交同步,但工作目录不受影响。 (推荐用来修改本地黑历史)
--hard – 缓存区和工作目录都同步到你指定的提交
删除文件
git rm test.txt
git checkout -- test.txt 还原文件 (可选)
git commit -m "remove test.txt"
删除Git未管理的文件
git clean -n 是一次clean的演习, 告诉你哪些文件会被删除. 记住他不会真正的删除文件, 只是一个提醒.
git clean -f 删除当前目录下所没track过的文件. 他不会删除.gitignore文件里面指定的文件夹和文件, 不管这些文件有没有被track过.
git clean -f 删除指定路径下的没被track过的文件.
git clean -df 删除当前目录下没被track过的文件和文件夹.
git clean -xf 删除当前目录下所没track过的文件. 不管他是否是.gitignore文件里面指定的文件夹和文件.
git reset --hard和git clean -f是一对好基友. 结合使用他们能让你的工作目录完全回退到最近一次commit的时候.
git clean对于刚编译过的项目也非常有用. 如, 他能轻易删除掉编译后生成的.o和.exe等文件. 这个在打包要发布一个release的时候非常有用.
私有远程分支回退
git reset --hard (sha1id) #先回退本地分支
git push -f
针对已经合并到公共分支的回退
回退单个节点
git revert (sha1 id) #推荐加上-n 不自动提交
git revert HEAD: 撤销最近的一个提交.
回退到某个节点
git checkout (sha1 id) . # 最后的.代表当前目录,
然后再反向提交一次
丢弃工作区的修改(让这个文件回到最近一次git commit或git add时的状态。)
git checkout -- readme.txt 命令中的--很重要,没--,就变成了“切换到另一个分支”的命令
git checkout . #放弃工作区所有的修改
把暂存区的修改撤销掉,重新放回工作区
git reset HEAD readme.txt
版本回退(未push到公共分支时候使用)
git reset --hard HEAD^ #回退一次
git reset --hard HEAD^^ #回退二次
git reset --hard HEAD~100 #回退100次
git reset --hard 3628164 #commit id是3628164...
--soft – 缓存区和工作目录都不会被改变
--mixed – 默认选项。缓存区和你指定的提交同步,但工作目录不受影响。 (推荐用来修改本地黑历史)
--hard – 缓存区和工作目录都同步到你指定的提交
删除文件
git rm test.txt
git checkout -- test.txt 还原文件 (可选)
git commit -m "remove test.txt"
删除Git未管理的文件
git clean -n 是一次clean的演习, 告诉你哪些文件会被删除. 记住他不会真正的删除文件, 只是一个提醒.
git clean -f 删除当前目录下所没track过的文件. 他不会删除.gitignore文件里面指定的文件夹和文件, 不管这些文件有没有被track过.
git clean -f 删除指定路径下的没被track过的文件.
git clean -df 删除当前目录下没被track过的文件和文件夹.
git clean -xf 删除当前目录下所没track过的文件. 不管他是否是.gitignore文件里面指定的文件夹和文件.
git reset --hard和git clean -f是一对好基友. 结合使用他们能让你的工作目录完全回退到最近一次commit的时候.
git clean对于刚编译过的项目也非常有用. 如, 他能轻易删除掉编译后生成的.o和.exe等文件. 这个在打包要发布一个release的时候非常有用.
私有远程分支回退
git reset --hard (sha1id) #先回退本地分支
git push -f
针对已经合并到公共分支的回退
回退单个节点
git revert (sha1 id) #推荐加上-n 不自动提交
git revert HEAD: 撤销最近的一个提交.
回退到某个节点
git checkout (sha1 id) . # 最后的.代表当前目录,
然后再反向提交一次