Git学习笔记(四)管理修改

★★★★★ 提交修改

    文件修改后,git add 把文件添加到了stage,此时尚未commit。

此时如果把文件进行二次修改。然后 commit 。第二次修改之后的文件并未提交。

解决方法:再次 git add →git commit 。

★★★★★ 撤销修改

git checkout --filename 这个命令能丢弃工作区的修改。(checkout实际上是用版本库中的文件替换工作区的文件)

当文件被做出了一些不需要的修改,可以用 git checkout --filename 来丢弃那些修改(这是文件并未 add 的时候)。

当文件做出了不需要的修改,并且已经 add 到暂存区了。这时候需要把暂存区的修改回退到工作区,然后 checkout 文件所修改的内容。

       (文件 add 之后)步骤:① git reset HEAD filename

                                               ②git checkout --filename

引用 一个网友(zjuwujunchao)对git reset 的总结:

为了搞清楚reset和checkout的区别做的一些试验, 应该基本正确, 仅供参考 :-D

git reset HEAD^ //回退至上一版本, 并重置缓存区
git reset HEAD~10 //回退至10个版本之前, 并重置缓存区
git reset --soft HEAD //回退时不重置缓存区和工作区
git reset --mixed HEAD //回退时重置缓存区, 默认选项
git reset --hard HEAD //回退时重置缓存区和工作区
git reset //不指定HEAD, 用来清空缓存区的修改
git reset filename //清空缓存区指定文件的修改
git reset --hard //不指定HEAD, 用来清空工作区和缓存区的修改
git reset --hard filename //清空工作区和缓存区指定文件的修改
git checkout branch //切换branch, 同时重置缓存区和工作区, 如果工作区有修改没有提交, 需要先commit或stash
git checkout branch --force //切换branch, 同时重置缓存区和工作区
git checkout --force //不指定branch, 用来清空工作区的修改(缓存区不变, 如果之前有add, 则工作区与缓存区一致)
git checkout -- filename //清空工作区指定文件的修改

★★★★★ 删除文件

当删除一个仓库内的文件时:①为add到stage内,随便删就是了。②已经add到stage内,并且已经commit到master中。

首先 rm filename,然后看一下仓库状态,你会得到这样的返回:

2017-01-17_143809

此时有两个选择,也就是返回信息中连续的两个括号中的提示指令:

          ①从版本库中删除文件,用 git rm filename 然后 git commit

          ②失误删除,需要找回文件,用 git checkout --filename

posted @ 2017-01-17 14:45  OHAYO_Mario  阅读(152)  评论(0编辑  收藏  举报