第一篇技术类博文:Git以及GitHub常用命令记录与总结【Rico】(已完结!)

Git身为目前世界上最先进的分布式版本控制系统,本菜鸟也是刚刚开始学习,目前上手还是有点难度,记录下来,希望更多的初学者看到,也可以让自己需要用到的适合可以方便的查阅。

1.Git的安装

Git最早使用在Linux系统中,后来才有人慢慢地将他移植到MAC,WINDOW上。下面介绍Git在Linux和window的安装。

1.1Git在Linux的安装
Git在Linux的安装最为方便,几行代码便可以完成。

1.sudo apt-get install git 

1.2Git在window下的安装
window环境下点击下载,默认安装即可。安装完成后,在>开始菜单>所有程序>Git>点击Git Bush即可打开Git。

2.初步使用Git

本文演示的是Git在window下的使用。
打开Git后如下图所示,则表示安装成功了。
第一篇技术类博文:Git以及GitHub常用命令记录与总结【Rico】(已完结!)
接着在命令行内输入

git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

这样就相当于在你的window***册”了你的用户名了。注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置。

3.创建一个本地仓库

本地仓库,这里可以看做是我们大部分时间时的工作区域,相当于你的办公室。
创建一个本地仓库非常简单。首先,选择一个合适的地方创建一个空目录:

1.$ mkdir my_github
2.$ cd my_github

若在Windows系统上,为了避免遇到各种莫名其妙的问题,避免所含目录中出现中文!!!
接着在新建好的my_github目录下使用下面的命令行:

1. $ git init

则瞬间Git就把仓库建好了,而且告诉你是一个空的仓库。
接着我们就可以在这个仓库上边开始我们的工作啦~~~

4.添加文件到本地仓库

我们使用Vim新建一个readme.txt的文件

1. $  vim readme.txt

接着在里边写入:

This is my first git,I'm working on it!

oh对了,在进入vim时可以按下键盘的a或者i还有o都可以进入插入(编辑)模式,输入完成后按下ESC之后再按下:wq表示保存退出。vim也是一款很强大方便的软件,参考这里了解更多。

接着使用命令添加(git add)和提交(git commit)文件到仓库:

1. $ git add readme.txt
1.或者$ git add .
2. $ git commit -m "wrote a readme" 

其中"wrote a readme"我的理解是提示符,就是在你上传到GitHub的时候的描述一样,后面再细细道来,这只要知道双引号里边的东西不算进语法,写的东西只是为了让自己弄清自己commit的东西是干啥用的就可以了,只是一个提交的说明。
接着使用git log可以查看我们的提交记录:

3. $ git log

当然我们也可以查看简要的提交信息,用下面的命令即可:

3. $ git log --pretty=oneline

5.本地仓库推送到远程仓库

上一小节我们已经创建了一个本地仓库后,又想在GitHub创建一个远程仓库,并且让这两个仓库进行远程同步。这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作了。
1.本地仓库与GitHub的匹配
这里一开始要把你的**上传到你的GitHub上,简单理解就是蓝牙连接时的配对码一样,你才能时远程仓库和本地仓库相匹配,并且能够从本地推送到远程。
我们在黑框框输入以下命令:

1. $ ssh-****** -t rsa -C "你的邮箱地址"

2.接着默认一直按回车键直到提示完成即可。之后可以在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
3.随后登录你的GitHub账号,右上角点击你的头像>选择settings>再选择SSH and GPG keys>接着点击New SHH key.
4.Title任意填写即可,接着把id_rsa.pub里边的内容复制到Key文本框,点击Add SHH key即可完成添加。

2.在GitHub上建立一个Project
然后我们登录GitHub,点击start a project,接着输入Repository name:git_test,然后点击绿色的按键Create repository即可完成创建。如下图第一篇技术类博文:Git以及GitHub常用命令记录与总结【Rico】(已完结!)
目前,在GitHub上的这个git_test仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。

git remote add origin [email protected]:DrRico/git_test.git

注意DrRico要换成你的用户名,不然你电脑本地的仓库关联的是我的GitHub上的远程仓库了。
接着输入:

git push -u origin master

把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令而直接使用git push即可。

推送之后我们到GitHub上查看自己的项目,果然与本地的仓库同步了。

完成以上步骤之后,只要想要推送新的内容与远程端同步,只需要输入下列命令即可:

1. $ git push

6.远程仓库克隆到本地仓库

上一小节我介绍了本地仓库到远程仓库的推送更新,但我们要是参加了别人的开源项目,就得从别人的远程仓库克隆到自己的本地仓库中了,下面我们便开始介绍。
1.首先,登陆GitHub,创建一个新的仓库,取名叫my_first_github,并且勾选Initialize this repository with a README,之后点击Create repository,可以看到,GitHub便给我们自动生成了一个README.md文件。
2.接着,我们便切换到本地仓库,即在Git窗口操作,输入以下命令:

1. $ git clone [email protected]:DrRico/my_first_github.git

注意要把DrRico换成你自己的用户名。
之后使用命令

2. $ ls
3. $ cd my_first_github
4. $ ls

就可以进入目录并且查看到README.md文件了。到此为止,便可以在把远程仓库克隆到本地,在本地进行开发了。若开发完毕需要与远程同步,请参考第4和第5小结的文件的添加、提交以及推送的命令。

7.分支的使用和管理

分支作为GitHub最强大的功能之一,将在本小节进行介绍。
1.首先我们创建分支,输入以下命令即可创建并切换到此分支:

1. $ git checkout -b slave

其中以上命令可以拆分成以下两条命令的组和:

2. $ git branch slave
3. $ git checkout slave

查看分支的命令如下:

4. $ git branch

这里对于分支我们可以这样理解:假设有分支master和分支slave,这两个分支相当于两个平行宇宙,各自在各自的世界互相活动互不干扰。GitHub有分支合并(merge)的功能,也就是说两平行宇宙开始重合了,那之前的完成的工作会怎么处理呢?
很简单当然是工作量的累加呀!
举个栗子,我们假设在分支master上学会了打篮球,在slave分支上学会了踢足球,那一进行合并之后,我们就即学会了打篮球,又学会了踢足球,怎么样是不是很神奇,大大提高了项目开发的效率有木有!!!

下面我们便来实践操作一下:

slave分支下,我们对readme.txt文件进行修改,对readme.txt文件写入:

working on slave!

接着添加,提交:

1. $ git add .
2. $ git commit -m "add working on slave"

之后我们切换回分支master,用一下命令查看readme.txt的内容:

3. $ cat readme.txt

我们发现我们之前写入的working on slave!不见了!为什么呢???

这是因为我们是在slave的世界进行的修改,当两个世界没有合并前(merge),master世界当然不会受到影响,还是保持之前的模样。现在我们在master世界进行操作:把slave的世界合并到master世界中来,使用下面的命令:

4. $ git merge slave

接着,我们再查看查看readme.txt的内容:

5. $ cat readme.txt

没错,working on slave!出来了,也就是说,在master世界什么都没做,而在slave世界做了一堆东西,使用合并(merge)功能,可以把slave世界的工作成果复制到master世界了!!!

假设所有的任务都完成了,也进行合并了,我们便可以只保留master,而删除slave分支了:

6. $ git branch -d slave

检查一下当前所有的分支:

7. $ git branch

真的就只有master分支了。

8.标签的使用和管理

标签,顾名思义就是对一个完成的作品贴上版本号,以更好的进行区分
1.创建标签
在第7小结我们介绍了分支的管理和使用,在本小节,我们切换到需要切换标签的分支,例如我们在master分支上创建标签,使用以下命令切换至master分支:

1. $ git checkout master

接着在master分支上创建标签,使用以下命令:

2. $ git tag v0.1

可以使用以下命令查看所有标签:

3. $ git tag

就可以看到我们刚刚打上的标签号了,这里有必要说明以下,默认标签是打在最新提交的commit上的。但有时候,如果我们想给之前commit的东西打标签,该怎么办呢?这里可以理解为游戏签到中的补签功能。方法是找到历史提交的commit id,然后打上就可以了。具体操作如下:

先查看历史提交的ID号:

4. $ git log --pretty=oneline --abbrev-commit

接着给对应的ID号打上标签即可:

5. $ git tag v0.2 <ID号>

再使用以下命令查看标签:

6. $ git tag

2.标签操作
若是标签打错了,可以使用以下命令进行删除:

1. $ git tag -d v0.1

当然当标签只是应用在本地时,执行以上的这一条命令就足够了。
若我们使用以下命令,将标签推送到远程之后了呢?

2. $ git push origin v0.2

或者一次性推送本地所有标签到远程端:

3. $ git push --tags

此时我们想删除标签v0.2我们应该怎么做呢?
也就稍稍麻烦一点点,两步走:
先删除本地的标签:

4. $ git tag -d v0.2

再删除远程端的标签:

5. $ git push origin :refs/tags/v0.2

便成功的在本地和云端删除了该标签,要看看是否真的从远程库删除了标签,可以登陆GitHub查看。

9.总结

GitHub的强大大家在熟练使用之后就可以深有体会了。虽然Git的命令很多,但经常使用的也就那几个,希望大家学会使用GitHub之后,工作效率能大大提高!感谢阅读。另外本人水平有限,文章在所难免会有错误的地方,希望各位朋友批评指正!若有侵权请联系作者删除:[email protected]