Git的使用

Git初步学习

Posted by Wang Chao on March 10, 2018

Git是什么?

Git官网

Git是目前世界上最先进的分布式版本控制系统(没有之一)。

Git有什么特点?简单来说就是:高端大气上档次!

那什么是版本控制系统?

如果你用Microsoft Word写过长篇大论,那你一定有这样的经历:

想删除一个段落,又怕将来想恢复找不回来怎么办?

有办法,先把当前文件“另存为……”一个新的Word文件,再接着改,改到一定程度,再“另存为……”一个新文件,这样一直改下去,最后你的Word文档变成了这样:

来自网络的图片

图片

过了一周,你想找回被删除的文字,但是已经记不清删除前保存在哪个文件里了,只好一个一个文件去找,真麻烦。

看着一堆乱七八糟的文件,想保留最新的一个,然后把其他的删掉,又怕哪天会用上,还不敢删,真郁闷。

更要命的是,有些部分需要你的财务同事帮助填写,于是你把文件Copy到U盘里给她(也可能通过Email发送一份给她),然后,你继续修改Word文件。一天后,同事再把Word文件传给你,此时,你必须想想,发给她之后到你收到她的文件期间,你作了哪些改动,得把你的改动和她的部分合并,真困难。

于是你想,如果有一个软件,不但能自动帮我记录每次文件的改动,还可以让同事协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看某次改动,只需要在软件里瞄一眼就可以,岂不是很方便?

这个软件用起来就应该像这个样子,能记录每次文件的改动:

版本 文件名 用户 说明 日期
1 test.doc 张三 创建文件 2018年2月10日 21:12:52
2 test.doc 李四 增加项目要求 2018年3月1日 12:27:22
3 test.doc 王五 修改项目要求 2018年3月10日 20:29:15

这样,你就结束了手动管理多个“版本”的史前时代,进入到版本控制的20世纪。

常用命令

创建SSH KEY: ssh-keygen -t rsa -C "youremail@example.com"

用户主目录.ssh目录,里面有id_rsaid_rsa.pub两个文件id_rsa是私钥,不能泄露,id_rsa.pub是公钥

在Github上创建一个新仓库

克隆到本地:git clone git@github.com:xxxx

文件修改增加到暂存区git add filename

当前文件夹所有文件都增加到暂存区git add .

提交更改:git commit -m "modified what"

本地修改提交到远程仓库master分支(默认分支)git push origin master 或者 git push -u origin master 或者git push -u

查看git日志:git log

本地回退到某个版本 git reset --hard log_id

本地回退更新到远程仓库 git push -f origin master

更新你的本地仓库至最新改动,执行: git pull

查看当前分支 git branch或者git branch -a

新建分支 git branch debug

创建一个叫做“feature_x”的分支,并切换过去: git checkout -b feature_x

切换分支: git checkout master

删除分支: git branch -d feature_x

分支推送到远程仓库 git push origin <branch>

合并其他分支到当前分支(例如 master),执行: git merge <branch>

增加标签,如1b2e1d63ff版本为1.0.0 : git tag 1.0.0 1b2e1d63ff

假如你操作失误(当然,这最好永远不要发生),你可以使用如下命令替换掉本地改动: git checkout -- <filename>

此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件。已添加到暂存区的改动以及新文件都不会受到影响。