标签:one append pos 定位 查看命令 focus 分享图片 版本 loaded
Git is a distributed version control system Git is free software
现在运行 git status
命令查看状态:
[root@localhost learngit]# 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: readme.txt # no changes added to commit (use "git add" and/or "git commit -a")
git status
命令可以让我们时刻掌握仓库当前状态,上面的输出告诉我们如下信息:
当前处于master分支
修改还没有提交到暂存区
readme.txt文件被修改了
Git
虽然告诉我们readme.txt
文件被修改了,但是如果能告诉我们具体修改了什么,那是最好不过了。
使用git diff
命令就可以查看到底什么被修改了。
git diff readme.txt ? diff --git a/readme.txt b/readme.txt index f7249b8..2fdf0c4 100644 --- a/readme.txt //表示源文件 +++ b/readme.txt //目标文件 @@ -1,2 +1,2 @@ //差异定位 -Git is a version control system //只出现在源文件中 +Git is a distributed version control system //只出现在目标文件中 Git is free software //既出现在源文件又出现在目标文件中
---
代表源文件,比如 a/readme.txt
是源文件
+++
代表目标文件,比如 b/readme.txt
是目标文件
@@ -1,2 +1,2 @@
表示差异小结的定位
-
开头的,只出现在源文件中
+
开头的,只出现在目标文件中
空格开头的,即出现源文件又出现在目标文件中。
看完差异之后,我们再次将修改提交到版本库中
git add . git commit -m "add distributed"
为了更好的显示版本控制,我们对 readme.txt
再进行一次修改,并提交到版本库
Git is a distributed version control system Git is free software distributed under the GPL ? git add . git commit -m "append GPL"
我们可以使用 git log
命令显示从最近到最远的提交日志
[root@localhost learngit]# git log commit 79aa29e0b2cfa9023c5814108948ae969516979b Author: zhoumingjun <africancu@126.com> Date: Mon Aug 27 17:25:45 2018 -0400 ? append GPL ? commit 79a2516b55dabea00086ab0d53c9481ea5da539d Author: zhoumingjun <africancu@126.com> Date: Mon Aug 27 17:20:30 2018 -0400 ? add distributed ? commit 63c6fc5426a4b8962522e183a45b609708448f53 Author: zhoumingjun <africancu@126.com> Date: Mon Aug 27 16:43:05 2018 -0400 ? wrote a readme file
可以看到有三次提交信息,使用 git log --pretty=oneline
可以输出精简版
[root@localhost learngit]# git log --pretty=oneline
79aa29e0b2cfa9023c5814108948ae969516979b append GPL
79a2516b55dabea00086ab0d53c9481ea5da539d add distributed
63c6fc5426a4b8962522e183a45b609708448f53 wrote a readme file
这个长度为40的字符串就是每次提交的版本号。我们想回退的话,必须要告诉Git
我们要回退到那个版本。
在Git
中,HEAD
表示当前版本,HEAD^
表示上一个版本,HEAD^^
表示上上个版本,依次类推,如果回退100个版本,那就是简写成HEAD~100
。
比如我们现在要向前回退一个版本,就可以执行 git reset
命令
git reset --hard HEAD^ ? HEAD is now at 79a2516 add distributed //当前版本在79a2516
如果又要回到最新的那个版本
git reset --hard 79aa29e
现在总结一下:
HEAD
指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
。
穿梭前,用git log
可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog
查看命令历史,以便确定要回到未来的哪个版本。
工作区(Working Direcotory)
就是电脑里面能看到的目录,比如我的learngit
文件夹就是一个工作区
版本库(Repository)
工作区有一个隐藏目录.git
,这个不算工作区,而是Git
的版本库。
Git
的版本库中存了很多东西,其中最重要的就是暂存区(stage / index),还有Git
为我们创建的第一个分支 master
,以及指向master
的一个指针HEAD
。
前面我们将文件提交到版本库是分两步进行的:
使用git add
将文件从工作区添加到暂存区(暂存区是版本库的一部分)。
使用 git commit
将暂存区的内容提交到当前分支。
我们创建Git
版本库时,Git
自动为我们创建了唯一一个master
分支,所以,现在,git commit
就是往master
分支上提交更改。
可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。
标签:one append pos 定位 查看命令 focus 分享图片 版本 loaded
原文地址:https://www.cnblogs.com/africancu/p/9543780.html