惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
博客园 - 聂微东
雷峰网
雷峰网
Microsoft Azure Blog
Microsoft Azure Blog
WordPress大学
WordPress大学
Hugging Face - Blog
Hugging Face - Blog
S
SegmentFault 最新的问题
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
博客园 - 三生石上(FineUI控件)
V
Visual Studio Blog
博客园 - 司徒正美
爱范儿
爱范儿
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
博客园_首页
博客园 - 【当耐特】
Jina AI
Jina AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
酷 壳 – CoolShell
酷 壳 – CoolShell
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
人人都是产品经理
人人都是产品经理
V
V2EX

卡瓦邦噶!

服务器高性能网络调优 | 卡瓦邦噶! 为何写作 | 卡瓦邦噶! 读《金阁寺》 | 卡瓦邦噶! 雨季又来 | 卡瓦邦噶! MTU Probe 引起的初始延迟 | 卡瓦邦噶! 3.5 秒的固定延迟问题 | 卡瓦邦噶! 学习网络的一点经验 | 卡瓦邦噶! ARP 问题诊断 | 卡瓦邦噶! 网络断断续续…… | 卡瓦邦噶! Piccolo P2P 镜像分发 | 卡瓦邦噶! 一起看电影 | 卡瓦邦噶! 《征服C指针》 | 卡瓦邦噶! 我的姥姥 | 卡瓦邦噶! WordPress网站迁移方案 Python的哲学 Python 3.5的新特性 学校不教的计算机课 垃圾回收(GC)的三种基本方式 在编程中体验纯粹的快乐 从《美丽新世界》谈自由 在快钱实习 迷人的嗓音和迷人的故事——《Sleepyhead》 Python 的十个自然语言处理工具 记一个愚蠢的bug 一年炉石传说的游戏体验 《以撒的结合:重生》网页版图鉴 分清 C++的指针、引用和数组 笑话三则 自由比皇帝更伟大——《悲惨世界》笔记 Git 10 周年访谈:Linus 讲述背后故事
Git简明教程
laixintao · 2014-11-24 · via 卡瓦邦噶!

为什么会有本文?

很久以前,在我刚刚接触计算机的时候,就非常贪心,想把自己所有的文件保存下来,为了以后会“用得到”。后来有了网盘之类的东西,但是我不满足于仅仅保存一个文件。对其中的同步逻辑不明白,怕把文件同步成了不想要的版本。在我认识了Git之后,这个问题得到了完美的解决。

Git是一个版本控制的工具,是林纳斯开发,用于开发过程中项目的版本控制的一个工具。他能记录下项目的每一个提交,提交之间的变更。你可以随意的查看项目的每一次版本。还支持多人开发, 每个人的提交都一目了然。这样一个好东西也可以用来管理自己的文档,例如写一个word,或者一个ppt,将他变成一个项目,记录下项目的每一个进度,使自己的工作更加清晰明了。

有关于Git的教程,网络上已经有很多了。本文只会介绍Git,说明Git的功能,常用的命令,然后提供更多更详细的教程的链接,避免造轮子。

Why Git?

首先,Git的读音是|git|,汉字类似于“各异特”,不是“吉特”。

版本控制工具不仅仅只有Git,像流行的还有CVS,SVN等。但是这两个是“集中式版本控制系统”。而Git是一个“分布式版本控制系统”。有什么区别呢?集中式要求版本控制存放在一个服务器上,每一次工作都需要从服务器上拉取版本来进行工作。而分布式是在每一个用户的终端上都保存有一个版本仓库,不同的开发者之间可以用pull和push操作进行同步,也可以向主服务器进行同步。那么优势就很明显了——每个用户都有一个独立的版本库,拥有完全的权限,不用联网就可以工作。此外,Git还有快速,省心,可退回任意版本等优点,所以它是目前最流行的版本控制工具。

Git始于Linux,但是不止于Linux,已经有人将它移植到了windows,现在Git支持Linux,Mac和Windows等主流平台。

在Linux或者Mac的终端下,可以使用brew等工具进行安装。在windows下,需要Cygwin这样的模拟环境,但是有人将它封装好了,这个工具叫做msysgit,只要从http://msysgit.github.io/下载,然后默认安装就好了。

第一个仓库

创建一个Git仓库非常简单。首先,进入到一个空目录,然后对项目进行初始化就可以了。但是由于我们是第一次操作,所以需要对Git进行一些初始化的动作。

git的初始化配置

Shell

1

2

$git config --global user.name "laixintao"

多人协作的时候,是靠邮件来识别提交者的。在Github,不管你的用户名是什么,只根据邮箱来匹配提交者,亲测。所以邮箱一定要设定成自己的,否则你的工作成果就要打上别人的名字啦!

建立第一个项目

Shell

1

2

3

4

5

$ cd /path/to/ty/workspace

$ mkdir myGit

$ cd myGit

$ git init

Initialized empty Git repository in /path/to/ty/workspace/myGit.git/

这样,第一个项目——myGit就建立好了。

在本地的操作

你可以理解为,Git的工作目录和版本库是在一起的。在本地有一个.git文件,保存了你的提交历史。那么,在本地进行的操作如何提交呢?

首先,要理解暂存区的概念。简单来说,暂存区是介于工作区和版本库之间的存在。在本地的操作需要添加到暂存区,用commit命令提交的时候,会将暂存区的内容提交到版本库。当然了,版本库,暂存区,和工作区之间可以进行同步。

工作区的文件如果没有被追踪,是不能提交的,首先,将工作区的内容添加到暂存区:

添加

Shell

1

$ git add <filename>

也可以add所有文件加入到暂存区,然后一次提交。但是非常不推荐这样做,因为这会使版本库乱掉,版本控制就失去了他的意义。

每一个提交都要有一个说明,在查阅的时候以便得知每一次提交做的是什么。

提交

Shell

1

$ git commit -m "This is my first commit."

查看此时的工作区状态命令:

查看

Shell

1

$ git status -s

其中,-s参数是显示精简信息,在显示的信息中,每一个工作区有改动的文件前面都会有两个字母:

  • ??——新文件没有被追踪;
  • 空M——这个文件的修改没有被追踪;
  • A空——有一个新文件被追踪还没有被添加;
  • M空——有一个文件修改,已经被追踪,没有被添加。

被追踪即是添加到工作区。

还可以查看提交记录:

查看提交记录

Shell

1

2

$ git log

$ git log --graph  --pretty=oneline

第二行可以用图表的形式查看。

回退到上一个版本:

版本回退

Shell

1

$ git reset --hard HEAD^

 For more infomation:

结语,这么快就结束了吗?哈哈,没有。相信你对版本控制已经有一个印象了吧?接下来的远程操作部分,已经有关git更多更方便的操作,我会提供一些好博主的链接供参考。

学会Git之后,你就可以轻松的管理你的项目了。将来,你可以把你所有的东西变成项目——你写的博客是项目,论文是一个项目,做的作业时一个项目。这样之后,可以纵览项目的进程,变化,发展,整个人生也可以看做一个项目。