完成添加和提交readme.txt文件,修改操作如下:
$ vi readme.txt
# 修改内容
Git is a distributed version control system.
Git is free software.
运行git status查看结果

上述提示信息为readme.txt文件已经被修改,但是还未提交更改
运行git diff查看被修改的内容

确定修改结果后,按照相同步骤提交
$ git status
# 运行git status再次查看当前仓库的状态
git status

将要提交被修改的readme.txt文件
# 提交
git commit -m "add distributed"

修改结束
再次修改readme.txt文件并提交修改
Git is a distributed version control system.
Git is free software distributed under the GPL.
commit的作用就是将文件修改到一定程度以后保存修改的文件,并且不会改变以前的版本,一旦文件改乱或者误删了某个文件,可以从最近的commit恢复,然后继续修改
git log命令查看历史记录git log
git log命令显示从最近到最远的提交日志git log --pretty=oneline使提示信息的输出更为简洁明了
HEAD表示当前版本(最新提交的文件),上一个版本HEAD^,第50个版本HEAD~50git reset回溯到指定版本$ git reset --hard HEAD^^
HEAD is now at wrote a readme file
用cat readme.txt查看当前版本内容

git reset --hard 版本号
git reflog查看所操作的每一次命令
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用git reset --hard commit_idgit log可以查看提交历史,以确定要回退到哪个版本要重返新的版本(未来),用git reflog查看命令历史,以便要确定回到(未来)哪个版本
.git叫做Git的版本库,版本库里最重要的部分是stage(或者index),叫做暂存区,还包括第一个分支master,以及指向master的一个指针HEAD。
readme.txt文档:Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
然后新增加License.txt文件,用git status查看当前状态

readme.txt被修改了;License.txt从未被修改,状态为Untracked。
将两个文件夹都add,查看状态

此刻暂存区如下图所示:

执行git commit一次性将暂存区的文件提交到分支master

提交结束,工作区clear

再次修改readme.txt文件
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes.

继续修改readme.txt,然后提交

查看状态

此时,第二次修改未被提交,原因是第二次提交并未执行git add,也就是说,第二次修改的文件依旧存储在工作区,并未add到暂存区(stage)
用git diff HEAD -- readme.txt查看工作区版本和版本库中的最新版本的区别:

继续执行git add,把第二次修改提交,随后git commit -m


git add和git commit -m " "命令
git checkout -- readme.txt丢弃工作区的修改
git add到暂存区
git commitgit reset HEAD readme.txt可以把暂存区的修改撤销掉(unstage),重新放回到工作区:

丢弃工作区修改


执行rm命令直接在文件管理器中删除test.txt文件
rm test.txt

git rm,然后git commit
文件误删(版本库中存有),将误删的文件恢复到最新版本,执行git checkout -- test.txt

原文:https://www.cnblogs.com/DyerLee/p/10572622.html