无基础不能高楼,合抱之木,生于毫末,九层之台,起于累土
一: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:
像上面的命令,有很多 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的账户及邮箱地址
[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
执行上面的命令,没有任何显示,说明添加成功。
第二步,用命令 git commit 告诉 Git,把文件提交到仓库:
[root@localhost test]# git commit -m “第一次修改”
简单解释一下 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
无文件要提交,干净的工作区
小结:
• 要随时掌握工作区的状态,使用 git status 命令。
• 如果 git status 告诉你有文件被修改过,用 git diff 可以查看修改内容
版本控制系统肯定有某个命令可以告诉我们历史记录,在 Git 中,我们用 git log 命令查看:
git log 命令显示从最近到最远的提交日志,我们可以看到 3 次提交,如果嫌输出信息太多,看得眼花缭乱的,可以试试加上
--pretty=oneline 参数:
如果我们想从第三次更改中回到第2次更改中则么做呢?
首先,Git 必须知道当前版本是哪个版本,在 Git 中,用 HEAD 表示当前版本,也就是最新的提交a3d4..(注意我的提交 ID 和你的肯定不一样),上一个版本就是 HEAD^ ,上上一个版本就是 HEAD^^ ,当然往上 100 个版本
写 100 个^ 比较容易数不过来,所以写成 HEAD~100 。
现在我们退回到上一次的修改时候:
、
Git 提供了一个命令 git reflog 用来记录你的每一次命令:也可以更方便的帮自己恢复到任何地方;相当于后悔药!!!
如:
删除文件:
在 Git 中,删除也是一个修改操作,我们实战一下,先添加一个新文件 abc.txt 到 Git 并且提交:
一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用 rm 命令删了:
[root@localhost test]# rm -f abc.txt
这个时候,Git 知道你删除了文件,因此,工作区和版本库就不一致了,git status 命令会立刻告诉你哪些文件被删
除了:
现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令 git rm 删掉,并且 git commit :
小结:
HEAD 指向的版本就是当前版本,因此,Git 允许我们在版本的历史之间穿梭,使用命令 git reset --hard commit_id 。
• 穿梭前,用 git log 可以查看提交历史,以便确定要回退到哪个版本。
• 要重返未来,用 git reflog 查看命令历史,以便确定要回到未来的哪个版本。
.命令 git rm 用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
撤销修改:
如果不小心提交到了暂存区只有:撤出暂存区再撤销修改
以上这些都是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账号:(电子邮件要与密钥的邮箱一致)
第 2 步:登陆 GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意 Title,在 Key 文本框里粘贴 id_rsa.pub 文件的内容:
点“Add Key”,你就应该看到已经添加的 Key:
添加远程库
首先,登陆 GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库:
git clone https://github.com/lvranbo/lrb.git
是把本地仓库内容上传到网上仓库
下一步,就可以把本地库的所有内容推送到远程库上:
vim a.txt
git add a.txt
git commit -m "123"
git push origin master
添加电子邮件:
把本地库的内容推送到远程,用 git push 命令,实际上是把当前分支 master 推送到远程。
由于远程库是空的,我们第一次推送 master 分支时,加上了-u 参数,Git 不但会把本地的 master 分支内容推送的远
程新的 master 分支,还会把本地的 master 分支和远程的 master 分支关联起来,在以后的推送或者拉取时就可以简
化命令。
推送成功后,可以立刻在 GitHub 页面中看到远程库的内容已经和本地一模一样:
刷新界面:推送成功后,可以立刻在 GitHub 页面中看到远程库的内容已经和本地一模一样