无基础不能高楼,合抱之木,生于毫末,九层之台,起于累土

一:git简介:

git是目前世界上最先进的分布式版本控制系统(没有之一)。分布式版本控制系统除了 Git 以及促使 Git 诞生的 BitKeeper 外,还有类似 Git 的 Mercurial 和 Bazaar

等。这些分布式版本控制系统各有特点,但最快、最简单也最流行的依然是 Git!

特点:

好处多了去了,这里就先说几条,用久了,用深了,你会发现更多用处。

1.代码托管

就是我们做的最多的,上传代码,云端备份,可以想象成一个云盘。

2.项目管理

GitHub最初是为了开发的管理而生,当然也就具备了项目管理的潜质,特别是与开发密切联系的项目中,它的优势尽显

3.Github Pages

可以为项目建立静态主页(即gh-pages分支), 就是我所说的搭建个人网站。

4:github可以当做自己的个人博客网站

 

总结:

Github可自动记录每次文件的改动可与同事协同操作;可上传代码,可备份相当于一个网盘耶!!!

二:安装给git

最早 Git 是在 Linux 上开发的,很长一段时间内,Git 也只能在 Linux 和 Unix 系统上跑。不过,慢慢地有人把它移植到了 Windows 上。现在,Git 可以在 Linux、Unix、Mac 和 Windows 这几大平台上正常运行了。

要使用 Git,第一步当然是安装 Git 了。根据你当前使用的平台来阅读下面的文字:

在Linux上安装git:

首先,你可以试着输入 git ,看看系统有没有安装 Git:

github操作组织仓库代码 github组织有什么用_git

像上面的命令,有很多 Linux 会友好地告诉你 Git 没有安装,还会告诉你如何安装 Git。

如果你碰巧用 Debian 或 Ubuntu Linux,通过一条 sudo apt-get install git 就可以直接完成 Git 的安装,非常简单。

如果是其他 Linux 版本,可以直接通过源码安装。先从 Git 官网下载源码,然后解压,依次输入: ./config , make ,

sudo make install  yum这几个命令安装就好了。

在 Windows 上安装 Git

在 Windows 上使用 Git,可以从 Git 官网直接下载安装程序,(网速慢的同学请移步国内镜像),然后按默认选项安装即可。安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明 Git 安装成功!

安装完成后,还需要最后一步设置,在命令行输入:

$ git config --global user.name "Your Name"

$ git config --global user.email email@example.com

因为 Git 是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和 Email 地址。你也许会担心,如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。

注意 git  config 命令的--global 参数,用了这个参数,表示你这台机器上所有的 Git 仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和 Email 地址。

我在这里是使用yum安装的git。

三:创建版本库

什么是版本库呢?版本库又名仓库,英文名 repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被 Git 管理起来,每个文件的修改、删除,Git 都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:

[root@localhost ~]#mkdir test

[root@localhost ~]#cd test/

第二步,通过 git init 命令把这个目录变成 Git 可以管理的仓库

[root@localhost test]# git init

[root@localhost test]#ll -a

github操作组织仓库代码 github组织有什么用_github安装部署及基本操作命令_02

创建一个用于登录github的账户及邮箱地址

[root@localhost test]#git config --global user.name "lvranbo"

[root@localhost test]#git config --global user.email "lrb.@lrb.com"

瞬间 Git 就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个.git 的目录,这个目录是 Git 来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把 Git 仓库给破坏了。

如果你没有看到.git 目录,那是因为这个目录默认是隐藏的,用 ls -ah 命令就可以看见。也不一定必须在空目录下创建 Git 仓库,选择一个已经有东西的目录也是可以的。不过,不建议你使用自己正在开发的公司项目来学习 Git,否则造成的一切后果概不负责。

四:把文件添加到版本库中:

现在我们编写一个 readme.txt 文件,内容如下:

[root@localhost test]#vim readme.txt

[root@localhost test]# cat readme.txt

welcome to beijing!!!!

一定要放到 test 目录下(子目录也行),因为这是一个 Git 仓库,放到其他地方 Git 再厉害也找不到这个文件。和把大象放到冰箱需要 3 步相比,把一个文件放到 Git 仓库只需要两步。

第一步,用命令 git add 告诉 Git,把文件添加到仓库:

[root@localhost test]#  git add readme.txt

执行上面的命令,没有任何显示,说明添加成功。

github操作组织仓库代码 github组织有什么用_版本库_03

第二步,用命令 git commit 告诉 Git,把文件提交到仓库:

[root@localhost test]# git commit -m “第一次修改”

github操作组织仓库代码 github组织有什么用_版本库_04

简单解释一下 git commit 命令,-m 后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。

为什么 Git 添加文件需要 add ,commit 一共两步呢?因为 commit 可以一次提交很多文件,所以你可以多次 add 不同的文件,比如:

$git add file1.txt

$ git add file2.txt file3.txt

$ git commit -m "add 3 files."

小结:初始化一个 Git 仓库,使用 git init 命令。

添加文件到 Git 仓库,分两步:

  第一步,使用命令 git add <file> ,注意,可反复多次使用,添加多个文件;

  第二步,使用命令 git commit ,完成。

五:创建一个新的文件测试更改删除回退功能:

[root@localhost test]# vim lrb.txt

[root@localhost test]# cat lrb.txt

测试文件!!!

[root@localhost test]# git add lrb.txt

[root@localhost test]# git status

# 位于分支 master

# 要提交的变更:

#   (使用 "git reset HEAD <file>..." 撤出暂存区)

新文件:    lrb.txt、

[root@localhost test]# git commit -m "第1次修改"

[master 4c0d732] 第1次修改

 1 file changed, 1 insertion(+)

 create mode 100644 lrb.txt

[root@localhost test]# git status

# 位于分支 master

无文件要提交,干净的工作区

github操作组织仓库代码 github组织有什么用_git_05

github操作组织仓库代码 github组织有什么用_Linux_06

小结:

  要随时掌握工作区的状态,使用 git status 命令。

  如果 git status 告诉你有文件被修改过,用 git diff 可以查看修改内容

版本控制系统肯定有某个命令可以告诉我们历史记录,在 Git 中,我们用 git log 命令查看:

github操作组织仓库代码 github组织有什么用_github安装部署及基本操作命令_07

git log 命令显示从最近到最远的提交日志,我们可以看到 3 次提交,如果嫌输出信息太多,看得眼花缭乱的,可以试试加上

--pretty=oneline 参数:

github操作组织仓库代码 github组织有什么用_git_08

如果我们想从第三次更改中回到第2次更改中则么做呢?

首先,Git 必须知道当前版本是哪个版本,在 Git 中,用 HEAD 表示当前版本,也就是最新的提交a3d4..(注意我的提交 ID 和你的肯定不一样),上一个版本就是 HEAD^ ,上上一个版本就是 HEAD^^ ,当然往上 100 个版本

写 100 个^ 比较容易数不过来,所以写成 HEAD~100 。

现在我们退回到上一次的修改时候:

github操作组织仓库代码 github组织有什么用_Linux_09

github操作组织仓库代码 github组织有什么用_git_10

github操作组织仓库代码 github组织有什么用_版本库_11


Git 提供了一个命令 git reflog 用来记录你的每一次命令:也可以更方便的帮自己恢复到任何地方;相当于后悔药!!!

github操作组织仓库代码 github组织有什么用_Linux_12

如:

github操作组织仓库代码 github组织有什么用_github操作组织仓库代码_13

删除文件:

在 Git 中,删除也是一个修改操作,我们实战一下,先添加一个新文件 abc.txt 到 Git 并且提交:

github操作组织仓库代码 github组织有什么用_git_14

一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用 rm 命令删了:

[root@localhost test]# rm -f abc.txt

这个时候,Git 知道你删除了文件,因此,工作区和版本库就不一致了,git status 命令会立刻告诉你哪些文件被删

除了:

github操作组织仓库代码 github组织有什么用_github操作组织仓库代码_15

现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令 git rm 删掉,并且 git commit :

github操作组织仓库代码 github组织有什么用_github操作组织仓库代码_16

 

小结:

HEAD 指向的版本就是当前版本,因此,Git 允许我们在版本的历史之间穿梭,使用命令 git  reset  --hard  commit_id 。

  穿梭前,用 git log 可以查看提交历史,以便确定要回退到哪个版本。

  要重返未来,用 git reflog 查看命令历史,以便确定要回到未来的哪个版本。

.命令 git rm 用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。

撤销修改:

github操作组织仓库代码 github组织有什么用_版本库_17

如果不小心提交到了暂存区只有:撤出暂存区再撤销修改

github操作组织仓库代码 github组织有什么用_github安装部署及基本操作命令_18

以上这些都是git的基础操作命令;现在我们部署远程仓库github

 

六:远程仓库

到目前为止,我们已经掌握了如何在 Git 仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题了。

请自行注册 GitHub 账号。由于你的本地 Git 仓库和 GitHub 仓库之间的传输是通过 SSH 加密的,所以,需要一点设置:

第 1 步:创建 SSH Key。在用户主目录下,看看有没有.ssh 目录,如果有,再看看这个目录下有没有 id_rsa 和 id_rsa.pub这两个文件, 如果已经有了,可直接跳到下一步。如果没有,打开 Shell (Windows 下打开 Git Bash),创建 SSH Key:

ssh-keygen -t rsa -C 16619894296@163.com

你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个 Key 也不是用于军事目的,所以也无需设置密码。

github操作组织仓库代码 github组织有什么用_github操作组织仓库代码_19

github操作组织仓库代码 github组织有什么用_github安装部署及基本操作命令_20

注册github账号:(电子邮件要与密钥的邮箱一致)

 

 

github操作组织仓库代码 github组织有什么用_github安装部署及基本操作命令_21

第 2 步:登陆 GitHub,打开“Account settings”,“SSH Keys”页面:

然后,点“Add SSH Key”,填上任意 Title,在 Key 文本框里粘贴 id_rsa.pub 文件的内容:

github操作组织仓库代码 github组织有什么用_Linux_22

点“Add Key”,你就应该看到已经添加的 Key:

github操作组织仓库代码 github组织有什么用_版本库_23

添加远程库

首先,登陆 GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库:

github操作组织仓库代码 github组织有什么用_github操作组织仓库代码_24

github操作组织仓库代码 github组织有什么用_github安装部署及基本操作命令_25

 

github操作组织仓库代码 github组织有什么用_github安装部署及基本操作命令_26

github操作组织仓库代码 github组织有什么用_github安装部署及基本操作命令_27

git clone https://github.com/lvranbo/lrb.git

是把本地仓库内容上传到网上仓库

github操作组织仓库代码 github组织有什么用_github安装部署及基本操作命令_28

下一步,就可以把本地库的所有内容推送到远程库上:

vim a.txt

 git add a.txt

git commit -m "123"

git push origin master

添加电子邮件:

github操作组织仓库代码 github组织有什么用_Linux_29

 

把本地库的内容推送到远程,用 git push 命令,实际上是把当前分支 master 推送到远程。

由于远程库是空的,我们第一次推送 master 分支时,加上了-u 参数,Git 不但会把本地的 master 分支内容推送的远

程新的 master 分支,还会把本地的 master 分支和远程的 master 分支关联起来,在以后的推送或者拉取时就可以简

化命令。

推送成功后,可以立刻在 GitHub 页面中看到远程库的内容已经和本地一模一样:

github操作组织仓库代码 github组织有什么用_github操作组织仓库代码_30

刷新界面:推送成功后,可以立刻在 GitHub 页面中看到远程库的内容已经和本地一模一样

github操作组织仓库代码 github组织有什么用_github安装部署及基本操作命令_31