您的位置:首页 > 其它

Git学习笔记 chapter01--Git介绍和基础操作

2017-07-20 10:17 363 查看
因为后来用了github,平时没怎么用到,git的一些命令渐渐忘记了。但是掌握git的基本原理和这些命令还是很有必要的,于是找到了廖雪峰老师的git教程,准备学一遍,并做笔记供以后翻阅。


点击进入:廖雪峰老师的Git教程

Git是什么?

Git是一个版本控制工具,可以帮我们记录每次的改动,和改动的内容。

我们可以和别人合作编辑同一个文件,最后通过它合并在一起。

Git和其他版本控制工具的区别

CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统。

集中式的版本控制系统有一个中央服务器,工作时从中央服务器获取最新版本,修改后再推送回去,最大的缺点就是需要联网。

分布式版本控制系统相当于每个人的电脑都是一个完整的版本库(中央仓库),无需联网便可进行版本的控制。分布式版本控制系统也有中央服务器的概念,但是没有集中式中那么重要,仅仅是方便很多人通过这个服务器进行文件的交换。

分布式版本控制系统安全性很高,其中一个人的版本库挂掉了,另外一台电脑上仍可以充当中央仓库,因为在本地保存着完整的版本历史。

增加一些对这个理解就是(引用评论):

Git本地仓库包含代码库还有历史库,在本地的环境开发就可以记录历史

而SVN的历史库存在于中央仓库,每次对比与提交代码都必须连接到中央仓库才能进行,所以需要联网 这样的好处在于:

1、自己可以在脱机环境查看开发的版本历史

2、多人开发时如果充当中央仓库的Git仓库挂了,任何一个开发者的仓库都可以作为中央仓库进行服务

Git还有很强大的分支管理功能。

初始化一个Git的仓库

git init 命令初始化一个文件夹,初始化完成后,文件夹下会有.git文件夹,这个.git文件夹里是git的配置文件,不要乱动,在非实验的情况下也不要乱删除。

$ git init
Initialized empty Git repository in E:/GitRepsitory
4000
/LearnGit/.git/
$ ls -a
./  ../  .git/


我们可以看到已经有.git文件夹了。

git status可以查看当前工作区的状态,在未添加文件时我们可以git status一下看看。

$ git status
On branch master

Initial commit

nothing to commit (create/copy files and use "git add" to track)


可以看到提示nothing to commit,需要我们创建或者复制一个文件过来,使用git add命令。

新建一个README.MD文件,内容为This is my first use.

再使用git status命令看一下。

$ git status
On branch master

Initial commit

Untracked files:
(use "git add <file>..." to include in what will be committed)

README.MD

nothing added to commit but untracked files present (use "git add" to track)


这时会看到我们已经添加了一个文件在工作区当中了,但是还没有git add,我们执行git add命令再git status查看。

$ git add README.MD
warning: LF will be replaced by CRLF in README.MD.
The file will have its original line endings in your working directory.


我这里出了警告,LF和CRLF分别是Linux/Unix 和Windows下的换行符,这里提示将会由CRLF替代,这里我们先不去管这个问题。

使用git status查看,会发现终端下提示变成了绿色,状态显示new file

$ git status
On branch master

Initial commit

Changes to be committed:
(use "git rm --cached <file>..." to unstage)

new file:   README.MD


这里我的猜想是git add先把文件添加到暂存区之中了(往后面学习会验证这个我猜想),使用git commit -m “这里写提交说明” 命令,这样就相当于彻底完成了一个新版本提交。

$ git commit -m "new file README.MD"
[master (root-commit) be8afaa] new file README.MD
1 file changed, 1 insertion(+)
create mode 100644 README.MD


这样就提交成功了,再次git status看看

$ git status
On branch master
nothing to commit, working tree clean


证明这次的修改或者添加文件已经彻底提交上去了,工作区很干净。

接下来进行修改和查看此文件的历史版本。

编辑README.MD文件,增加一句话,再次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:   README.MD

no changes added to commit (use "git add" and/or "git commit -a"


此时,如果忘记此前都修改了什么内容,使用git diff可以查看文件被修改的记录,但是如果是add和commit 之后再使用此命令就无法这样查看了。

$ git diff README.MD
warning: LF will be replaced by CRLF in README.MD.
The file will have its original line endings in your working directory.
diff --git a/README.MD b/README.MD
index 918efd9..3d21572 100644
--- a/README.MD
+++ b/README.MD
@@ -1 +1,2 @@
This is my first use.
+This is my second use.


最后git addgit commit提交就完成了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: