分支本质上其实就是一个指向某次提交的可变指针。Git的默认分支名字为master 。而我们是怎么知道当前处于哪个分支当中呢?答案就是在于HEAD这个十分特殊的指针,它专门用于指向于本地分支中的当前分支。
Note: 测试数据准备
创建新文件“branch.txt”,并提交三个版本1
this Is test branch.
查看分支
1 | $ git branch |
命令会列出所有分支,当前分支前面会标一个*号。
izheyi.com
远程仓库是指托管在因特网或其他网络中的你的项目的版本库。本节只介绍一些很基础的操作应用。
说明:这里我们用github任务远程仓库,需要注册github账号。
为了便于管理,Git要求每个远程主机都必须指定一个主机名。git remote命令就用于管理主机名。
HTTPS
1 | $ git remote add origin https://github.com/yongfeiuall/yongfeiuall.github.io.git |
SSH
本地Git仓库和GitHub仓库之间的传输是通过SSH加密,需要设置:Generating SSH keys
1 | $ git remote add origin git@github.com:yongfeiuall/yongfeiuall.github.io.git |
添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的。
Notes: 使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https。
Git跟踪并管理的是修改,而非文件。
每次修改,如果不add到暂存区,那就不会加入到commit中。
(可以多次add, 一次commit)第一次修改 -> git add -> 第二次修改 -> git add …… -> git commit
在任何一个阶段,你都有可能想要撤消某些操作。有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有 –amend 选项的提交命令尝试重新提交:1
2
3$ git commit -m 'initial commit'
$ git add status.txt
$ git commit --amend
最终你只会有一个提交 - 第二次提交将代替第一次提交的结果。
在提交了若干更新,你也许想回顾下提交历史。git log完成这个任务。
然后在此项目中运行 git log,应该会看到下面的输出:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24$ git log
commit b6a3a44ff118711f59d6ea729453605ae7166ca9
Author: yongfeiuall <yongfeiuall@163.com>
Date: Tue Nov 10 08:05:31 2015 +0800
add update track
commit 15d47dabff32d9e6e374220fa28a11e6c7bb722b
Author: yongfeiuall <yongfeiuall@163.com>
Date: Tue Nov 10 07:57:03 2015 +0800
1st commit
commit 60850fd49a528418120836febdb996ef05afd175
Author: yongfeiuall <yongfeiuall@163.com>
Date: Tue Nov 10 07:56:23 2015 +0800
1st commit
commit a93f60ed24cb23ccaff828e63402a6fba3ae9d08
Author: yongfeiuall <yongfeiuall@163.com>
Date: Mon Nov 9 14:52:43 2015 +0800
docuument draft
这里只用基本的使用,如果想用更详细的参数和方法,请查看官方文档。
工作目录下的每一个文件都不外乎这两种状态:已跟踪或未跟踪。
1 | $ git init |
初始化完成,会在当前目录下多了’.git’目录,这个子目录含有你初始化的Git仓库中所有的必须文件,这些文件是Git仓库的骨干。没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
但是,在这个时候,我们仅仅是做了一个初始化的操作,你的项目里的文件还没有被跟踪。
可参见上一篇中的Git工作流程。
在当前目录下创建一个文件’gitLearn.txt’
1 | This note for git learning. |
git add,把文件添加到仓库
1 | $ git add gitLearn.txt |
git commit,把文件提交到仓库
1 | $ git commit -m "docuument draft" |
Git可以在Linux、Unix、Mac和Windows这几大平台上正常运行。 这里只介绍在Windows下的Git安装,其他平台下的安装请自行Google。
msysgit是Windows版的Git,从 http://msysgit.github.io/ 下载,然后安装即可。
安装完成后,鼠标右键,在菜单里找到“Git GUI Here”和“Git Bash Here”,就说明Git安装成功!
Git 自带一个git config的工具来帮助设置控制Git外观和行为的配置变量。
安装完成后,还需要设置一下,在命令行输入1
2$ git config --global user.name "yongfeiuall"
$ git config --global user.email "yongfeiuall@163.com"
这样做很重要,因为每一个Git的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改.
注意: 如果使用了 –global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。 当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 –global 选项的命令来配置。
本网站是用hexo+github搭建的,为了解决多电脑操作的问题,联想到用Git在github上来实现;再者Git是目前世界上最先进的分布式版本控制系统,很多公司现在都是用这高端大气上档次的东东。
此次会对Git和Github有个简单的入门学习,主要是学习一下思想和流程。说不定以后在自动化的过程中也会用Git来管理自动化工程。
概念性的东西,不做介绍,实在不明白,请Google吧。
说明:此系列是学习笔记,为了减少打字,可能会有Copy过来的理论上的知识说明,如有问题,请告之。