{am}shuanbao

Learn Git & GitHub

0.初次使用Git的感受

第一次使用Git缘因Github,感觉Git也就是和SVN之类的版本控制软件类似,也是同样的修改、提交、更新、合并、解决冲突等,也同样需要一个服务器来管理不同人提交的内容。印象最深刻的是Git拥有一个强大的命令行,但是查询文件历史、文件变更等不如SVN在GUI客户端中那样直接,在技术的拐角处瞥到Git完全是因为Github、Linux。

1.误会的产生与释疑

我一直纳闷那么不好用的一个工具,为什么在全世界的技术圈备受尊崇?直到真正使用Git后,才明白真正的差异是什么?
Git是一个分布式的版本控制系统,它根本不需要一个“中央服务器”,每个人的电脑上即是一个完整的版本库,所有的工作在没有网络的情况下也可以继续进行,待需要时再一次同步至服务器,大家可以通过服务器可以更方便的获取你共享的文件,当然没有服务器也可以共享文件,但在多人协作的情况下不太方便而已。

2.Create a repository

在使用Git前,先设置下自己的用户名和邮箱,用来作为你的身份标识,你的每一次提交都将使用这个信息。

1
2
$ git config --global user.name "shma"
$ git config --global user.email "msb17561@gmail.com"

接着,创建仓库。
可以Clone已有的版本库

1
$ git clone git@github.com:xxxxx/repo.git

可以在当前目录下初始化一个本地库

1
$ git init

现在,我们可以把新建的文集纳入版本管理了。

1
2
3
4
5
6
$ touch README.MD
$ git add README.MD
$ git commit -m "add one file"
[master b102e3a] add one file
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 README.MD

当执行完add、commit文件就被纳入版本管理了,下面说说文件的版本操作。
总结
通过上述简单的例子,实现了一个文件纳入版本管理的基本工作流。那么在这个过程中其实我们可以发现文件会随着不同的操作变化着状态,在Git中通常有3种状态:commited、modified、staged