windows操作
第1步:任意盘符新建文件夹,右击鼠标点击git Bash(没有安装的自行安装)
第2步:通过git init
命令把这个目录变成Git可以管理的仓库:
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
Git建好了仓库后会自动生成.git
的目录,ls -ah
命令就可以看见。
第3步:在仓库目录里新建abc.txt,编辑内容如下:
Git is a version control system.
Git is free software.
第4步:用命令git add
告诉Git,把文件添加到仓库:
$ git add abc.txt
输入上面命令,回车就可以了(无消息返回)
第5步:用命令git commit
告诉Git,把文件提交给仓库:
$ git commit -m "wrote a readme file"
[master (root-commit) eaadf4e] wrote a readme file
1 file changed, 2 insertions(+)
create mode 100644 readme.txt
git commit
命令,-m
后面输入的是本次提交的说明(输入任意内容)
因为我们已经在仓库目录里新建了abc.txt,直接修改内容为:
Git is a distributed version control system.
Git is free software.
第6步:我们可以通过运行git status命令看看显示结果:
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: abc.txt
no changes added to commit (use "git add" and/or "git commit -a")
git status
命令可以让我们时刻掌握仓库当前的状态,上面的命令输出告诉我们,abc.txt
被修改过了,但还没有准备提交的修改。
我们想进一步看看具体修改了什么内容,用git diff命令即可以查看。
第7步:输入git diff 回车
$ git diff abc.txt
diff --git a/readme.txt b/abc.txt
index 46d49bf..9247db6 100644
--- a/abc.txt
+++ b/abc.txt
@@ -1,2 +1,2 @@
-Git is a version control system.
+Git is a distributed version control system.
Git is free software.
从上面的命令输出看到,我们在第一行添加了一个distributed
单词。
第8步:因为修改过abc.txt文件所以需要再次输入git add abc.txt 提交给仓库(回车无信息显示)
也可以用git status命令查看 待提交文件变为绿色(git add命令前为红色)
第9步:git commit -m "描述记忆类(文字随意)"
$ git commit -m "add distributed"
[master e475afc] add distributed
1 file changed, 1 insertion(+), 1 deletion(-)
提交后我们在用git status查看仓库的当前状态:
$ git status
On branch master
nothing to commit, working tree clean
以上为仓库建立和文件提交,修改,主要用到了git add \ git commit \git status命令。
接下来我们操作如何进行版本回退。
上面操作步骤我们对abc.txt进行了一次修改
原始内容:
Git is a version control system.
Git is free software.
修改后内容:
Git is a distributed version control system.
Git is free software.
第1步:我们使用git log命令即可以查看所有修改记录,
$ git log
commit 1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master)
Author: Michael Liao <408212402@qq.com>
Date: Fri May 18 21:06:15 2018 +0800
append distributed
commit e475afc93c209a690c39c13a46716e8fa000c366
Author: Michael Liao <408212402@qq.com>
Date: Fri May 18 21:03:36 2018 +0800
简洁信息输出git log后面加上--pretty=oneline
参数:
$ git log --pretty=oneline
1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master) append distributed
eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0 wrote a readme file
准备把abc.txt
回退到上一个版本,也就是原始
的那个版本,怎么做呢?
第2步:git reset命令输入
$ git reset --hard HEAD^
HEAD is now at e475afc add distributed
第3步:cat abc.txt命令查看文件内容
$ cat abc.txt
Git is a version control system.
Git is free software.
发现已经回退到上个版本的内容了。
如果想继续恢复其它版本,可以继续使用git log查看其它提交版本编号,根据编号进行版本回退。
备注:恢复后发现不对,想再次回到原先版本怎么办,操作窗口关闭,相合命令编号不记得了,没事,git提供后悔药,对每次操作都做了记录。我们可以通过git reflog
$ git reflog
e475afc HEAD@{1}: reset: moving to HEAD^
1094adb (HEAD -> master) HEAD@{2}: commit: append GPL
e475afc HEAD@{3}: commit: add distributed
eaadf4e HEAD@{4}: commit (initial): wrote a readme file
使用命令git reset --hard commit_id 即可回到你想到的任意版本。