以提问中修改了两个文件a、b为例,假设需要撤销文件a的修改,则修改后的两个文件:
1、如果没有被git add到索引区
git checkout a 便可撤销对文件a的修改
2、如果被git add到索引区,但没有做git commit提交
1)使用git reset将a从索引区移除(但会保留在工作区)
git reset HEAD a
2)撤销工作区中文件a的修改
git checkout a
3、如果已被提交,则需要先回退当前提交到工作区,然后撤销文件a的修改
1)回退当前提交到工作区
git reset HEAD^
2)撤销工作区中文件a的修改
git checkout a
补充:灵活使用以上操作的关键在于理解git中工作区、索引区的概念和git reset命令hard、mixed(default)、soft三种模式的区别,网上有很多这方面的文章,不再赘述。
链接:https://www.zhihu.com/question/20039839/answer/125382988。
git忽略文件以及文件夹
1.没有提交到远程仓库上边
添加.gitignore文件,在文件中添加相应要忽略的文件,要忽略整个文件夹则使用
文件夹名称/*
2.如果已经提交到远程仓库下
则需要先清除原文件,做的清理如下:
$ git rm -f *.dll (*.dll为要清楚的文件)
$ git rm -r -f runtime (*runtime为要清楚的文件夹)
网友评论