git学习笔记(1)

1、安装Git

Git 各平台安装包下载地址为:http://git-scm.com/downloads

msysGit项目提供了Windows下的git版本,从https://git-for-windows.github.io下载(国内镜像),然后直接点击“下一步”按默认选项安装即可。

2、安装完Git后,需要对其进行配置,包括:

  • 第一个要配置的是你个人的用户名称和电子邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.co
  • 我们先来理解下Git 工作区、暂存区和版本库概念

  工作区:就是你在电脑里能看到的目录。

  暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

  版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库(又名仓库),这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何      时刻都可以追踪历史,或者在将来某个时刻可以“还原”。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个      分支master,以及指向master的一个指针叫HEAD。

  • 创建一空的版本库

  创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录(空文件夹):

  (1)可以利用命令行进行创建

$ mkdir learngit  --在当前目录下直接创建learngit文件夹
$ cd learngit  --进入learngit问价夹中
$ pwd  --显示当前目录的路径/Users/michael/learngit
$ git init   --创建为仓库显示为Initialized empty Git repository in /Users/michael/learngit/.git/

  (2)也可以自己建好目录(文件夹)后,通过命令进到文件夹下,再创建

$ cd E:     --进入E盘 
$ mkdir learngit     --在E:盘下建立learngit文件夹 
$ cd learngit     --进入learngit文件夹 
$ git init     --将当前目录变成Git可以管理的仓库,显示为Initialized empty Git repository in /Users/michael/learngit/.git/

 这个时候在工作区目录下会多出个.git的目录,这个目录是Git来跟踪管理版本库的,不要手动修改这个目录里面的文件,否则容易把Git仓库给破坏了。

3、添加文件到版本库中

  (1)注意事项

  所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。

  需要注意的是Microsoft的Word格式是二进制格式,因此,版本控制系统是没法跟踪Word文件的改动的。因为文本是有编码的,比如中文有常用的GBK编码,建议所有文本文件使用标准的UTF-8编码,所有语言使用同一种编码,既没有冲突,又被所有平台所支持。

  有一点尽量不要使用Windows自带的记事本编辑任何文本文件,因为其在保存UTF-8编码的文件时,会在每个文件开头添加一个0xefbbbf(十六进制)的字符,可能会出现文本开头处会莫名其妙地多出“?”,很容易出现编译错误。建议使用Notepad++代替记事本,把编码格式改为UTF-8 without BOM即可。

  (2)添加文本文件

  • 编写一个.text文件,放到learngit目录下,这样Git才能找到;
  • 第一步,用命令git add告诉Git,把文件添加到仓库: $ git add readme.txt ,实际上就是把文件修改添加到暂存区stage(或是index);
  • 第二步,用命令git commit告诉Git,把文件提交到仓库:
    $ git commit -m "wrote a readme file"
    [master (root-commit) cb926e7] wrote a readme file
     1 file changed, 2 insertions(+)
     create mode 100644 readme.txt

     git commit -m "xxx" 输入的是本次提交的说明,可以输入有意义的内容,这样你就能从历史记录里方便地找到改动记录,实际上就是把暂存区的所有内容提交到当前分支master。

   另外可以使用 $ git add xxx 添加多个文件,然后利用 git commit -m "xxx" 同时提交,如:

$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."

4、小结

把文件往Git版本库里添加的时候,是分两步执行的:

  第一步是用 git add 把文件添加进去,实际上就是把文件修改添加到暂存区;

  第二步是用 git commit 提交更改,实际上就是把暂存区的所有内容提交到当前分支。

  因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在, git commit 就是往master分支上提交更改。

  可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

  一旦提交后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的,暂存区里也没有任何内容。

posted @ 2017-06-13 17:39  Allen_su  阅读(170)  评论(0)    收藏  举报