标签:stat ast beginning 问题 read machine 取消 mac 添加
本文参考于廖雪峰老师的博客Git教程。依照其博客进行学习和记录,感谢其无私分享,也欢迎各位查看原文。
Git跟踪和管理的的是修改,而不是文件
git checkout -- file
,会将文件撤销到和git add
时的状态一样,即git checkout -- file
会将工作区的文件撤销到与暂存区(stage)一致
git checkout -- file
命令中,如果没有--
,就变成了“切换到另一个分支”的命令
git reset HEAD file
既可以回退版本,也可以把添加到暂存区的修改回退到工作区,HEAD
表示最新版本
删除文件,git rm file
,git commit -m"..."
Git不同于其他版本控制系统,Git跟踪和管理的的是修改,而不是文件
新增一行、删除一行、修改字符、删除又增加内容、创建新文件等,都是修改
Git通过提交放入暂存区的修改,用来管理修改,而不是管理原文件。
在实际中,(虽然不常发生)总是会出现发生一些问题需要撤销修改。
liu@liu-virtual-machine:~/gitTest$ cat readme.txt
`this is a test that I learning and use git version control system
this is a beginning
i Add a new line information in the end of readme.txt file
$%^%&^*&&(**)(*)*&^*(*&&*&YTRYYIN
git add
添加到暂存区时的撤销git status
如下:liu@liu-virtual-machine:~/gitTest$ git status
位于分支 master
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动)
修改: readme.txt
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
git checkout -- file
可以丢弃工作区的改动git checkout -- readme.txt
git checkout -- readme.txt
会把readme.txt
文件在工作区的修改全部撤销。
git checkout -- file
,会将文件撤销到和git add
时的状态一样,即git checkout -- file
会将工作区的文件撤销到与暂存区(stage)一致
git checkout -- file
作用在暂存区(stage),当git add添加到暂存区后,git status不在显示git checkout -- file
命令提示
可自行测试
$ cat readme.txt
`this is a test that I learning and use git version control system
this is a beginning
i Add a new line information in the end of readme.txt file
git checkout -- file
命令中,如果没有--
,就变成了“切换到另一个分支”的命令
git add
添加到暂存区后的撤销当我们git add
后,发现需要撤销,此时查看git status
状态
$ git status
位于分支 master
要提交的变更:
(使用 "git reset HEAD <文件>..." 以取消暂存)
修改: readme.txt
Git提示,使用 git reset HEAD file
可以把添加到暂存区的修改撤销(unstage
)
$ git reset HEAD readme.txt
重置后取消暂存的变更:
M readme.txt
git reset
既可以回退版本,也可以把添加到暂存区的修改回退到工作区,HEAD
表示最新版本
此时查看git status
,暂存区没有修改,是干净的,工作区有修改。
$ git status
位于分支 master
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动)
修改: readme.txt
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
git checkout -- readme.txt
丢弃工作区的修改。然后查看,修改的文件已经回到原来状态$ git checkout -- readme.txt
$ cat readme.txt
`this is a test that I learning and use git version control system
this is a beginning
i Add a new line information in the end of readme.txt file
撤销成功
对于已经commit
提交到版本库的撤销,可以使用版本回退更改。
如果你提交了远程仓库,则需要另行处理。
Git中,删除也是一个修改操作.
首先新建一个test.txt
文件,添加并提交到仓库
$ rm test.txt
$ git status
位于分支 master
尚未暂存以备提交的变更:
(使用 "git add/rm <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动)
删除: test.txt
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
git status
指出删除了test.txt
文件。
git rm
删除文件并git commit提交$ git rm test.txt
rm ‘test.txt‘
$ git status
位于分支 master
要提交的变更:
(使用 "git reset HEAD <文件>..." 以取消暂存)
删除: test.txt
$ git commit -m"remove test.txt"
[master 6a0f133] remove test.txt
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 test.txt
$ git status
位于分支 master
无文件要提交,干净的工作区
git checkout -- file
从暂存区恢复误删的文件(本质还是丢弃工作区的改动)$ git checkout -- test.txt
标签:stat ast beginning 问题 read machine 取消 mac 添加
原文地址:https://www.cnblogs.com/codemissing/p/git_manage_file.html