Github学习(二)
参考文献
廖雪峰老师的官网https://www.liaoxuefeng.com
上面关于git用法的介绍很详细
本片文章是关于文件修改的操作,仅供学习。
工作区和暂存区
1.工作区:就是我们开始创建的git;版本库:工作区内的 .git目录,便是版本库了。暂存区:存在与版本库中,称为stage。master是git创建的一个分支。

- git add命令就是把文件添加到暂缓区;
- git commit 命令则把暂缓区的内容添加到当前的分支master里面;
- 简单理解就是,修改的文件都存在暂缓区,然后,一次性提交到master内。
2.修改readme.txt 并常见一个LICENSE文件,内容随意
# 用命令git status查看状态
# git status
位于分支 master
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动)
修改: readme.txt
未跟踪的文件:
(使用 "git add <文件>..." 以包含要提交的内容)
LICENSE
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
# 用git add 命令添加
# git add LICENSE readme.txt
# 再次查看状态
# git status
位于分支 master
要提交的变更:
(使用 "git reset HEAD <文件>..." 以取消暂存)
新文件: LICENSE
修改: readme.txt
# 缓存区的状态图

# 接下来执行git commit命令
# git commit -m "understand how stage works"
[master b4bee5e] understand how stage works
2 files changed, 2 insertions(+)
create mode 100644 LICENSE
# 查看状态
# git status
位于分支 master
无文件要提交,干净的工作区
# 提交后,状态图如下,缓存区中没有了东西:

管理修改
证明:Git管理的是修改,而不是文件
# 修改readme.txt,添加下面的内容
Git has a mutable index called stage. Git tracks changes.
# 添加
# git add readme.txt
# git status
位于分支 master
要提交的变更:
(使用 "git reset HEAD <文件>..." 以取消暂存)
修改: readme.txt
# 然后再修改readme.txt,添加如下的内容:
Git tracks changes of files.
# 提交:
# git commit -m "git tracks changes"
# 提交后再查看状态
# git status
位于分支 master
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动)
修改: readme.txt
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
# 确实是还有没提交的,这是因为第二次的修改并没有保存进暂存区,所以提交的只是第一次修改的内容。
撤销修改
# 修改readme.txt,添加下面的内容
My stupid boss still prefers SVN.
# 查看状态
# git status
位于分支 master
要提交的变更:
(使用 "git reset HEAD <文件>..." 以取消暂存)
修改: readme.txt
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动) #在这里就提示可以用git checkout readme.txt来撤销改动了。
修改: readme.txt
# 执行git checkout readme.txt命令,实践表明确实撤销了改动。
# 另一种情况,当我们把修改后的文件添加到了暂缓区,还未提交:
# git reset HEAD readme.txt #先撤销在暂缓区的东东,
# git checkout readme.txt # 再撤销改动
删除文件
从版本库中删除文件
git rm <file>
git commit -m ""
如果错删,可以这样做:
git checkout --<file>
浙公网安备 33010602011771号