如果在修改时发现修改错误,而要放弃本地修改时:
一,未使用 git add 缓存代码时:
可以使用 git checkout -- filepathname (比如: git checkout -- readme.md ,不要忘记中间的 “--” ,不写就成了检出分支了!!)。
放弃所有的文件修改可以使用 git checkout . 命令。
此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除。
但是此命令不会删除掉刚新建的文件。因为刚新建的文件还没已有加入到 git 的管理系统中。所以对于git是未知的。自己手动删除就好了。
或者使用下面的命令(git clean命令只适用于当前文件夹,记得切换文件夹):
# 删除 untracked files
git clean -f
# 连 untracked 的目录也一起删掉
git clean -df
二,已经使用了 git add 缓存了代码:
可以使用 git reset head filepathname (比如: git reset head readme.md)来放弃指定文件的缓存,放弃所有的缓存可以使用 git reset head . 命令。
此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了如(一)所示的状态。继续用(一)中的操作,就可以放弃本地的修改。
三,已经用 git commit 提交了代码:
可以使用 git reset --hard head^ 来回退到上一次commit的状态。此命令可以用来回退到任意版本:git reset --hard commitid
你可以使用 git log 命令来查看git的提交历史。
git log命令总结
• git log --all 查看所有分支的历史
• git log --all --graph 查看图形化的 log 地址
• git log --oneline 查看单行的简洁历史。
• git log --oneline -n4 查看最近的四条简洁历史。
• git log --oneline --all -n4 --graph 查看所有分支最近 4 条单行的图形化历史。
• git help --web log 跳转到git log 的帮助文档网页
四,git提交命令
git add -u:将文件的修改、文件的删除,添加到暂存区。
将工作空间被修改和被删除的文件添加到暂存区(不包含没有纳入git管理的新增文件)
git add .:将文件的修改,文件的新建,添加到暂存区。
git add -a:将文件的修改,文件的删除,文件的新建,添加到暂存区。
工作中一般是用到 git add . 或者 git add -a,。今天学习更进一步解了 git add -u 以及他们之间的区别
git add -a相对于git add -u命令的优点 : 可以提交所有被删除、被替换、被修改和新增的文件到数据暂存区,而git add -u 只能操作跟踪过的文件
git add -a 等同于git add -all
总结:
· git add -a 提交所有变化
· git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
· git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
修改重命名文件:
git mv files files 只需要一个操作