Git入门与练习(一)

Git简介

Git是什么?

Git是目前世界上最先进的分布式版本控制系统(没有之一)。

Git有什么特点?简单来说就是:高端大气上档次!

集中式VS分布式

Linus一直痛恨的CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢?

先说集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。

在Windows上安装Git

在Windows上使用Git,可以从Git官网直接下载安装程序,然后按默认选项安装即可。

安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

安装完成后,还需要最后一步设置,在命令行输入:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心,如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。

注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

创建版本库

1、选择一个工作目录,右键Git Bash Here

2、输入命令$ mkdir learngit,会该目录下创建一个空的文件夹

3、切换到learngit目录(这就是你的repository):$ cd learngit

4、将repository纳入git的管理:$ git init ,此命令会在learngit目录下创建一个.git文件夹,默认不可见,其中包含了git版本库(对应你的learngit目录)和一些配置信息,切记不要改动。

向版本库中添加文件

1、在工作目录learngit中创建文件readme.tx,并使用EditPlus或Notepad++编辑(设置字符集为utf-8 without BOM),因为word或记事本会影响文件的编码,文件内容如下:

 Git is distributed version system.

 Git is a free software.

2、将文件添加到版本库分为两步:先add后commit

 $ git add readme.txt ,执行后没有反应?没有消息就是好消息!

 $ git commit -m "create a file readme.txt"

 1 file changed, 2 insertions(+) ,一个文件成功更新到版本库,文件的变更有两行内容

 create mode 100644 readme.txt 

commit的参数-m是注释本次提交的信息,便于我们以后在版本库中找到对应的版本,作为一个程序员,你应该养成这个好习惯。

 先add是将文件资源管理器中的文件加入到版本库(.git)中的暂存区(stage),这是Git中很重要的一个概念,工作目录的文件要更新到版本库中必须都经过暂存区

你可以添加任意个文件到暂存区中,commit命令会将暂存区中的所有文件更新到版本库。 


修改文件

当你需要把readme文件的内容修改如下:
Git is distributed version control system.

Git is a free software.

你想同步更新到版本库中,也需要先add后commit,在此之前我们可以看一下暂存区的状态:

命令为:$ git status  提示消息如下:On branch masterChanges not staged for commit:(没有文件被add到暂存区中)  (use "git add <file>..." to update what will be committed)  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   readme.txt(有文件被修改了)

 我们可以查看具体的修改细节:

$ git diffdiff --git a/readme.txt b/readme.txtindex b0e8017..5f5c4e8 100644--- a/readme.txt+++ b/readme.txt@@ -1,2 +1,2 @@-Git is distributed version system.(修改前)+Git is distributed version control system.(修改后) Git is a free software.\ No newline at end of file如我所言, 现在我们可以放心提交了

$ git add readme.txt

在修改之前我们再看一下暂存区的状态:

$ git status
# On branch master# Changes to be committed:(已有更改的文件被add到暂存区)# (use "git reset HEAD <file>..." to unstage)## modified: readme.txt(该文件被修改过)git status告诉我们,将要被提交的修改包括readme.txt,下一步,就可以放心地提交了:$ git commit -m "insert a word control"[master 1065292] insert a word control 1 file changed, 1 insertion(+)(有一行被修改), 1 deletion(-)

版本回退

我们再将readme内容修改如下:

Git is distributed version control system.

Git is a free software distributed under GPL.

并add后commit

 $ git commit -m "append GPL"

这时对应之前的三次commit,版本库中已经有了readme文件的三个版本,依次是:
1、create a file readme
Git is a version control system.
Git is free software.
2、insert a word control
Git is a version control system.
Git is free software.
3、append GPL
Git is a version control system.
Git is free software distributed under the GPL.

如果我们有n次提交,我们不可能将这些版本信息都记在脑子里,这时就用到了log命令:
$ git log
commit 0c9d4ec59e2975a28d7178abf9862afa542d56d8 (HEAD -> master)
Author: zaw <872852458@qq.com>
Date:   Wed Feb 7 23:16:37 2018 +0800

    append GPL

commit 10652926b09e0f9191db72cd5bad5cb84bf23dc3
Author: zaw <872852458@qq.com>
Date:   Wed Feb 7 23:05:49 2018 +0800

    insert a word control

commit 78d680c4b62d2e7d190c5ea820308e7297844410
Author: zaw <872852458@qq.com>
Date:   Wed Feb 7 22:52:38 2018 +0800

    create a file readme.txt:


log将为我们显示当前版本之前所有的提交信息,commit后面的一长串字母是每次提交的id(我们不一样),方便我们找到对应版本,
(HEAD -> master),HEAD是一个指针指向master分支,master分支是默认主分支,这点在后续会详解。关注后续练习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值