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

1.Git的安装

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

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

sudo apt-get install git

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

2.初步使用Git

本文演示的是Git在window下的使用。
打开Git后如下图所示,则表示安装成功了。

接着在命令行内输入

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

或者 git add .

  1. git commit -m "wrote a readme"

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

  1. git log

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

  1. git log --pretty=oneline

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

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

1.ssh-keygen -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即可完成创建。如下图
目前,在GitHub上的这个git_test仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。

git remote add origin git@github.com: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 git@github.com:DrRico/my_first_github.git

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

  1. ls
  2. cd my_first_github
  3. ls

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

7.分支的使用和管理

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

  1. git checkout -b slave

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

  1. git branch slave
  2. git checkout slave

查看分支的命令如下:

  1. 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的内容:

  1. cat readme.txt

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

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

  1. git merge slave

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

  1. cat readme.txt

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

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

  1. git branch -d slave

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

  1. git branch

真的就只有master分支了。

8.标签的使用和管理

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

  1. git checkout master

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

  1. git tag v0.1

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

  1. git tag

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

先查看历史提交的ID号:

  1. git log --pretty=oneline --abbrev-commit

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

  1. git tag v0.2 <ID号>

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

  1. git tag

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

1. $ git tag -d v0.1

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

  1. git push origin v0.2

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

  1. git push --tags

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

  1. git tag -d v0.2

再删除远程端的标签:

  1. git push origin :refs/tags/v0.2

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

9.总结

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

10.小记

1.查看提交的树形结构:gitk

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

  1. Git结合GitHub常用命令

    简介 GIT 学习手册简介 这是 Git 学习参考手册.目的是为学习与记忆 Git 使用中最重要.最普遍的命令提供快速翻阅. 这些命令以你可能需要的操作类型划分,并且将提供日常使用中需要的一些常用的命 ...

  2. Github 常用命令

    小记一些Github常用命令 : 在一个项目中... 假如要修补问题追踪系统上的 #53 问题.顺带说明下,Git 并不同任何特定的问题追踪系统打交道.这里为了说明要解决的问题,把新建的分支取名为 i ...

  3. 运维之道 | Git分布式版本控制常用命令解析

    Git分布式版本控制常用命令解析 一.创建版本库 版本库(repository)也叫仓库,可以看做一个目录,这个目录里的所以文件都由Git进行管理,每个文件的修改.删除,Git都能跟踪 1.选择一个合 ...

  4. GitHub常用命令

    GitHub常用命令 转载于:https://www.cnblogs.com/dancser/p/4326524.html

  5. Git Bash Here常用命令以及使用步骤

    Git Bash Here常用命令以及使用步骤 1.首先,要clone项目代码: git clone 链接地址 2.更新代码: git pull 3.添加修改过的文件.文件夹: git add 修改过 ...

  6. git和svn常用命令

    Git常用命令 1.查看指定文件状态 git status [filename] 2.查看所有文件状态 git status 3.添加所有文件到暂存区 git add . 4.提交暂存区中的内容到本地 ...

  7. centos查看盘符_Centos下磁盘管理的常用命令记录(如查找大文件)

    Centos下磁盘管理的常用命令记录 查看系统磁盘空间占用,使用命令: df -h 结果: 查看磁盘inode使用情况,如果inode用完了,磁盘就没法写入新的内容了: df -i 结果: 如何查找磁 ...

  8. ElasticSearch常用命令记录

    ElasticSearch常用命令记录 < - 个人学习笔记 - > 软件版本:curl -s localhost:9200/?pretty 输出中"version" ...

  9. Git版本控制软件结合GitHub常用命令学习手册

    编程技术2015-1-16TECHUG1条评论 我们发布了很多Git相关的文章,有系列教程(<Pro Git系列>),也有各种独门绝技(<让你的Git水平更上一层楼的10个小贴士&g ...

最新文章

  1. ISLR_Propotion
  2. 现代教育技术课后作业(五)
  3. win7 设置自动关机
  4. AOP的两种实现方式
  5. vue-cli安装笔记
  6. [雪峰磁针石博客]2018最佳12个开源或免费web服务器和客户端性能测试工具
  7. 2020武汉dotNET俱乐部分享交流会圆满结束
  8. 我们正在下注:这个注解很快就会出现在JDK中
  9. faker.js 登 GitHub 趋势榜标星 27.1k,可大批量生成假数据!
  10. C#读取Win32标准DLL文件中的Bitmap(位图)
  11. Python基础进阶之路(三)之列表
  12. 《SharePoint Portal Server 2003 深入指南》即将完稿 大纲
  13. 克服大数据集群的挑战
  14. 一般如何调试php程序吗,如何调试PHP程序
  15. Java集合之一—HashMap
  16. c++标准程序库:STL容器之vector
  17. 隐马尔科夫模型HMM学习最佳范例
  18. Win10鼠标单击经常变双击
  19. 如何关闭谷歌的安全搜索?
  20. 【活动】为中秋献上祝福

热门文章

  1. 黑猫互联云计算机,黑猫评测 篇二十六:解决联想轻薄本痛点,3TB性价比NAS方案,联想个人云存储A1评测...
  2. 天机阁——全链路跟踪系统设计与实现
  3. nginx配置搭建单网站/多网站
  4. 百元蓝牙耳机哪个好用?2022开学季适合入手的蓝牙耳机推荐
  5. 记修改ElementUI的时间控件DateTimePicker样式踩坑日记
  6. (转)Android状态栏微技巧,带你真正理解沉浸式模式
  7. 利用云函数+Python实现每日网站自动签到并用QQ提醒
  8. wifi ap channel
  9. 在HTML 中嵌入 JS 代码的三种方式
  10. java 修改文件创建时间_Java如何更改文件的最后修改时间?