git原本是为程序员的编程项目管理设计的,网上找到的文章也都毫无疑问是给程序员看的,但实际上这个工具也可以用到一般白领范围内的文字版本的管理;首先这里再明确一下,所有的版本控制系统,只能跟踪文本文件的改动,比如TXT文件,Html网页,md文件(这篇分享就是用md格式写的,和用git来管理的),所有的程序代码等。
版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而图片、视频、Word文档、Excel文档这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了109KB,但到底改动什么,git不知道。
让我们来理一下,首先可以100%跟踪文本文件,让我们来扒一扒具体有哪些:
序号 | 内容 (100%可控) | 说明 |
---|---|---|
1 | 各种程序代码 | 这当然是应用最重要和广泛的领域 |
2 | 纯TXT文档 | 因为没有格式,故应用也许不够广泛,但是作家一般用这个就足够了 |
3 | 网页 | 主要是HTML格式,但不仅仅是 |
4 | 可扩展标记语言XML | XML的应用非常广泛,有很多让人眼前一亮的软件是以XML格式存储,比如牛哄哄的 draw.io |
5 | markdown格式文件 | 一种轻量级「标记语言」,被越来越多的写作爱好者、撰稿者广泛使用。到网上搜一下,可以有很多新发现! |
6 | 微信或其他手机端文字内容 | 手机端文字内容基本都是文本文件 |
7 | 其他 | 有不少专业程序的储存格式都是文本文件 |
非100%可控内容 | 这方面有多少意义就要自己判断了 | |
8 | Word文档 | 这可能是办公室应用最多的文档格式之一 |
9 | Excel文档 | 这也是办公室应用最多的文档格式之一 |
10 | PPT文档 | 这是非常吃功夫文档 |
11 | 照片 | 意义有多大不好说,也许有更有效的管理方法 |
12 | 图纸 | 应该先看一下储存格式,有可能也是文本格式 |
13 | … | 在此就不一一例出了 |
这里要说明一下,git在本版管理的同时,也给顺便做了备份(Backup)
如果觉得对你有用,请先看一下廖雪峰写的Git教程中下面几个章节,不然后面有些地方会卡;跟我之前的分享一样,我不是从零开始,而是站在大卡的肩上。
序号 | 题目 | 说明 |
---|---|---|
1 | Git教程 | 浅显易懂的Git教程!但不完美 |
2 | Git简介 | 这样写好懂,但有点误导。 |
3 | 安装Git | 几个版本的安装讲得蛮清楚的。 |
4 | 创建版本库 | 请注意看这里文件夹的位置,这个很重要,后面会用到。 |
5 | 时光机穿梭 | 简单看一下几个基本命令的使用,感受一下,后面有用。 |
在这里不介绍Github的用法,想知道Github用法请看上面廖雪峰写的Git教程。
git server 也可以安装在局域网内随便一台旧电脑上。
git程序一般会自动安装,先用下面命令查看状态
root@debian-2:~# git --version
git version 2.11.0
如果git程序还没有安装,可以按这里的说明安装,或在网上找相应的安装说明。
在git服务器安装完成后,在服务器上查看用户名git
root@debian-2:~# id git
id: ‘git’: no such user (没有git用户)
useradd git (创建新的用户)
passwd git (创建密码这步一般不能省略,不然后面有麻烦,请把密码写在纸上。)
(请务必注意,括号里文字都为说明,并非命令,不能执行)
建目录的位置因人而异,在这个例子里是建在根目录/data下的。
root@debian-2:~# cd /data
root@debian-2:/data# mkdir gitrepo (创建新的目录)
root@debian-2:/data# chown -R git:git gitrepo (更改目录所有者为git)
drwxr-xr-x 2 git git 4096 Feb 8 17:22 gitrepo
root@debian-2:/data# cd gitrepo
root@debian-2:/data/gitrepo# git init --bare sample.git (创建一个裸仓库,裸仓库没有工作区)
Initialized empty Git repository in /data/gitrepo/sample.git/
chmod -R 775 gitrepo (在git server端,这是必须的,不然无法上传)
如果还没有安装和设置过,请根据这个说明安装和做初始设置;要对外宣布你是谁!
在Git Bash客户端里输入下面的命令。
注意上面这服务器端的git用户的密码,在下面的命令中马上会用到,但用密码比较麻烦,用密匙更安全也方便,具体的SSH密匙方法请看这个分享。
$ git clone [email protected]:/data/gitrepo/sample.git (第一次下载)
$ cd sample
$ pwd
/c/Users/hans/sample (请注意这里的目录位置,你的电脑应该有你的设置)
在这个sample目录里可以copy一个txt文件进去,或者用上面廖雪峰教程中readme.txt的例子,然后用下面的命令。
$ git add readme.txt (第一步,用命令git add告诉Git,把文件添加到仓库)
$ git commit -m "第一次从笔记本1 win上添加一个文件" (第二步,用命令git commit告诉Git,把文件提交到仓库)
接下来的步骤就是上传了,这个过程经常会出错,因为在学习的过程中,有些步骤反反复复做了很多次,有些成功,有些失败,有些状态作为新手的当事人可能不清楚,也搞不清楚如何查状态,不过要有耐心,仔细看反馈信息,git是一个很伟大的软件会给出反馈信息。
通常来说第一次上传都是用下面的命令:
$ git remote add origin [email protected]:/data/gitrepo/sample.git (或)
$ git remote add master [email protected]:/data/gitrepo/sample.git
也许会得到下面的反馈,那么就表示要用另外的命令来上传。
$fatal: remote origin already exists.
$fatal: remote master already exists.
然后看到上面两条出错信息,那就简单多了,就用下面命令就可以上传
$ git push origin master
当你看到下面信息时,恭喜你,你成功了!
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 5.02 KiB | 1.26 MiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To your.server.ip:/data/gitrepo/sample.git
* [new branch] master -> master
如果这个信息卡在一半,那就要去查一下 服务器上 /data/gitrepo/sample.git目录的读写权限。
在 服务器端 用$ ls -al命令查看,显示应该是drwxrwxr-x 7 git git,不然上传就会有问题。
通常来说上传只要3句命令
$ git add 你的文件名 (第一步,用命令git add告诉Git,把文件添加到仓库)
$ git commit -m "你的修改说明,必须说清楚,但要简明扼要" (第二步,用命令git commit告诉Git,把文件提交到仓库)
$ git push origin master (上传命令)
通常在修改文件前先用下面的命令从服务器下载一下看看有什么新的变化可以省去好多麻烦
$ git pull origin master (下载命令)
在笔记本2、笔记本3和笔记本N上的操作原理是一样的,在不同的操作系统上界面会有不同,但道理是一样的,后面日常操作就四条命令,在正常情况下是很简单的。
如果还没有安装和设置过,请根据这个说明安装和做初始设置;要对外宣布你是谁!
在Git Bash客户端里输入下面的命令。
注意上面这服务器端的git用户的密码,在下面的命令中马上会用到,但用密码比较麻烦,用密匙更安全也方便,具体的SSH密匙方法请看这个分享。
$ git clone [email protected]:/data/gitrepo/sample.git (第一次下载)
$ cd sample
$ pwd
/c/Users/hans/sample (请注意这里的目录位置,你的电脑应该有你的设置)
$ git pull origin master (下载命令)
然后修改你的文件,修改完成以后
$ git add 你的文件名 (第一步,用命令git add告诉Git,把文件添加到仓库)
$ git commit -m "你的修改说明,必须说清楚,但要简明扼要" (第二步,用命令git commit告诉Git,把文件提交到仓库)
$ git push origin master (上传命令)
上面只是最简单的git介绍,如果你运气好,也有点技术头脑,花一天时间就能把这个伟大的工具转动起来,当然git有很多具体的功能需要花时间和场景去了解,在下面列出了这几天看到好的分享。
序号 | 内容 | 说明 |
---|---|---|
1 | 完整的git说明书 | 这日常的应用中会出现很多场景,git几乎都替你想到了,当然越强大的东西不是一眼就能看透的,好在有这个中文文档。 |
2 | 看完还不会用GIT操作,你就掐死我吧 | 很不错的分享,git还是很容易上手的! |
3 | 别说你会用Git,尤其是在女同胞面前 | git高级应用 ,有微信版,不过得你自己找! |
4 | Git图形化界面客户端盘点(Linux平台) | 图形工具对某些用户群还是很重要的,可以大大降低心理障碍 |
5 | 推荐一款图形化界面客户端TortoiseGit下载网址 | 链接是安装和使用说明书,强大好用,快捷,短视频关于小乌龟git图形工具 |
6 | 谷歌的代码管理 | 如果你对代码管理本身有兴趣,这是一篇很不错的分享,主要是针对大项目,这是一篇被到处转载的文章。 |
7 | 阿里云ECS云服务器安装+git+drush | 2016年感觉特别好的一篇文章 |
8 | CentOS搭建Git服务器及权限管理 | 2018年好像还是蛮全的,如果大点的团队,最好用gitolite 或者 gitosis,两者都差不多,一个是Perl开发,一个是Python开发 |
9 | 三年Git使用心得和常见问题整理 | 非常棒的一篇分析,结构清晰、易懂 |
小乌龟git图形工具是在Windows上绝对值得用的git,能给你很多信息,看下图:
Git简明指南中文说明,参考手册。