第一篇技术类博文:Git以及GitHub常用命令记录与总结【Rico】(已完结!)
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.创建一个本地仓库
本地仓库,这里可以看做是我们大部分时间时的工作区域,相当于你的办公室。
创建一个本地仓库非常简单。首先,选择一个合适的地方创建一个空目录:
mkdir my_github
cd my_github
若在Windows系统上,为了避免遇到各种莫名其妙的问题,避免所含目录中出现中文!!!
接着在新建好的my_github
目录下使用下面的命令行:
git init
则瞬间Git就把仓库建好了,而且告诉你是一个空的仓库。
接着我们就可以在这个仓库上边开始我们的工作啦~~~
4.添加文件到本地仓库
我们使用Vim新建一个readme.txt的文件
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
)文件到仓库:
git add readme.txt
或者 git add .
git commit -m "wrote a readme"
其中"wrote a readme"
我的理解是提示符,就是在你上传到GitHub的时候的描述一样,后面再细细道来,这只要知道双引号里边的东西不算进语法,写的东西只是为了让自己弄清自己commit的东西是干啥用的就可以了,只是一个提交的说明。
接着使用git log
可以查看我们的提交记录:
git log
当然我们也可以查看简要的提交信息,用下面的命令即可:
git log --pretty=oneline
5.本地仓库推送到远程仓库
上一小节我们已经创建了一个本地仓库后,又想在GitHub创建一个远程仓库,并且让这两个仓库进行远程同步。这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作了。
1.本地仓库与GitHub的匹配
这里一开始要把你的密钥上传到你的GitHub上,简单理解就是蓝牙连接时的配对码一样,你才能时远程仓库和本地仓库相匹配,并且能够从本地推送到远程。
我们在黑框框输入以下命令:
1.ssh-keygen -t rsa -C "你的邮箱地址"
2.接着默认一直按回车键直到提示完成即可。之后可以在用户主目录里找到.ssh目录,里面有id_rsa
和id_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上查看自己的项目,果然与本地的仓库同步了。
完成以上步骤之后,只要想要推送新的内容与远程端同步,只需要输入下列命令即可:
git push
6.远程仓库克隆到本地仓库
上一小节我介绍了本地仓库到远程仓库的推送更新,但我们要是参加了别人的开源项目,就得从别人的远程仓库克隆到自己的本地仓库中了,下面我们便开始介绍。
1.首先,登陆GitHub,创建一个新的仓库,取名叫my_first_github
,并且勾选Initialize this repository with a README
,之后点击Create repository
,可以看到,GitHub便给我们自动生成了一个README.md
文件。
2.接着,我们便切换到本地仓库,即在Git窗口操作,输入以下命令:
git clone git@github.com:DrRico/my_first_github.git
注意要把DrRico
换成你自己的用户名。
之后使用命令
ls
cd my_first_github
ls
就可以进入目录并且查看到README.md
文件了。到此为止,便可以在把远程仓库克隆到本地,在本地进行开发了。若开发完毕需要与远程同步,请参考第4和第5小结的文件的添加、提交以及推送的命令。
7.分支的使用和管理
分支作为GitHub最强大的功能之一,将在本小节进行介绍。
1.首先我们创建分支,输入以下命令即可创建并切换到此分支:
git checkout -b slave
其中以上命令可以拆分成以下两条命令的组和:
git branch slave
git checkout slave
查看分支的命令如下:
git branch
这里对于分支我们可以这样理解:假设有分支master
和分支slave
,这两个分支相当于两个平行宇宙,各自在各自的世界互相活动互不干扰。GitHub有分支合并(merge
)的功能,也就是说两平行宇宙开始重合了,那之前的完成的工作会怎么处理呢?
很简单当然是工作量的累加呀!
举个栗子,我们假设在分支master
上学会了打篮球,在slave
分支上学会了踢足球,那一进行合并之后,我们就即学会了打篮球,又学会了踢足球,怎么样是不是很神奇,大大提高了项目开发的效率有木有!!!
下面我们便来实践操作一下:
在slave
分支下,我们对readme.txt
文件进行修改,对readme.txt
文件写入:
working on slave!
接着添加,提交:
git add .
git commit -m "add working on slave"
之后我们切换回分支master
,用一下命令查看readme.txt
的内容:
cat readme.txt
我们发现我们之前写入的working on slave!
不见了!为什么呢???
这是因为我们是在slave
的世界进行的修改,当两个世界没有合并前(merge
),master
世界当然不会受到影响,还是保持之前的模样。现在我们在master
世界进行操作:把slave
的世界合并到master
世界中来,使用下面的命令:
git merge slave
接着,我们再查看查看readme.txt
的内容:
cat readme.txt
没错,working on slave!
出来了,也就是说,在master
世界什么都没做,而在slave
世界做了一堆东西,使用合并(merge
)功能,可以把slave
世界的工作成果复制到master
世界了!!!
假设所有的任务都完成了,也进行合并了,我们便可以只保留master
,而删除slave
分支了:
git branch -d slave
检查一下当前所有的分支:
git branch
真的就只有master
分支了。
8.标签的使用和管理
标签,顾名思义就是对一个完成的作品贴上版本号,以更好的进行区分
1.创建标签
在第7小结我们介绍了分支的管理和使用,在本小节,我们切换到需要切换标签的分支,例如我们在master
分支上创建标签,使用以下命令切换至master
分支:
git checkout master
接着在master
分支上创建标签,使用以下命令:
git tag v0.1
可以使用以下命令查看所有标签:
git tag
就可以看到我们刚刚打上的标签号了,这里有必要说明以下,默认标签是打在最新提交的commit上的。但有时候,如果我们想给之前commit的东西打标签,该怎么办呢?这里可以理解为游戏签到中的补签
功能。方法是找到历史提交的commit id
,然后打上就可以了。具体操作如下:
先查看历史提交的ID
号:
git log --pretty=oneline --abbrev-commit
接着给对应的ID号打上标签即可:
git tag v0.2 <ID号>
再使用以下命令查看标签:
git tag
2.标签操作
若是标签打错了,可以使用以下命令进行删除:
1. $ git tag -d v0.1
当然当标签只是应用在本地时,执行以上的这一条命令就足够了。
若我们使用以下命令,将标签推送到远程之后了呢?
git push origin v0.2
或者一次性推送本地所有标签到远程端:
git push --tags
此时我们想删除标签v0.2
我们应该怎么做呢?
也就稍稍麻烦一点点,两步走:
先删除本地的标签:
git tag -d v0.2
再删除远程端的标签:
git push origin :refs/tags/v0.2
便成功的在本地和云端删除了该标签,要看看是否真的从远程库删除了标签,可以登陆GitHub查看。
9.总结
GitHub的强大大家在熟练使用之后就可以深有体会了。虽然Git的命令很多,但经常使用的也就那几个,希望大家学会使用GitHub之后,工作效率能大大提高!感谢阅读。另外本人水平有限,文章在所难免会有错误的地方,希望各位朋友批评指正!若有侵权请联系作者删除:851774781@qq.com。
10.小记
1.查看提交的树形结构:gitk
第一篇技术类博文:Git以及GitHub常用命令记录与总结【Rico】(已完结!)相关推荐
- Git结合GitHub常用命令
简介 GIT 学习手册简介 这是 Git 学习参考手册.目的是为学习与记忆 Git 使用中最重要.最普遍的命令提供快速翻阅. 这些命令以你可能需要的操作类型划分,并且将提供日常使用中需要的一些常用的命 ...
- Github 常用命令
小记一些Github常用命令 : 在一个项目中... 假如要修补问题追踪系统上的 #53 问题.顺带说明下,Git 并不同任何特定的问题追踪系统打交道.这里为了说明要解决的问题,把新建的分支取名为 i ...
- 运维之道 | Git分布式版本控制常用命令解析
Git分布式版本控制常用命令解析 一.创建版本库 版本库(repository)也叫仓库,可以看做一个目录,这个目录里的所以文件都由Git进行管理,每个文件的修改.删除,Git都能跟踪 1.选择一个合 ...
- GitHub常用命令
GitHub常用命令 转载于:https://www.cnblogs.com/dancser/p/4326524.html
- Git Bash Here常用命令以及使用步骤
Git Bash Here常用命令以及使用步骤 1.首先,要clone项目代码: git clone 链接地址 2.更新代码: git pull 3.添加修改过的文件.文件夹: git add 修改过 ...
- git和svn常用命令
Git常用命令 1.查看指定文件状态 git status [filename] 2.查看所有文件状态 git status 3.添加所有文件到暂存区 git add . 4.提交暂存区中的内容到本地 ...
- centos查看盘符_Centos下磁盘管理的常用命令记录(如查找大文件)
Centos下磁盘管理的常用命令记录 查看系统磁盘空间占用,使用命令: df -h 结果: 查看磁盘inode使用情况,如果inode用完了,磁盘就没法写入新的内容了: df -i 结果: 如何查找磁 ...
- ElasticSearch常用命令记录
ElasticSearch常用命令记录 < - 个人学习笔记 - > 软件版本:curl -s localhost:9200/?pretty 输出中"version" ...
- Git版本控制软件结合GitHub常用命令学习手册
编程技术2015-1-16TECHUG1条评论 我们发布了很多Git相关的文章,有系列教程(<Pro Git系列>),也有各种独门绝技(<让你的Git水平更上一层楼的10个小贴士&g ...
最新文章
- ISLR_Propotion
- 现代教育技术课后作业(五)
- win7 设置自动关机
- AOP的两种实现方式
- vue-cli安装笔记
- [雪峰磁针石博客]2018最佳12个开源或免费web服务器和客户端性能测试工具
- 2020武汉dotNET俱乐部分享交流会圆满结束
- 我们正在下注:这个注解很快就会出现在JDK中
- faker.js 登 GitHub 趋势榜标星 27.1k,可大批量生成假数据!
- C#读取Win32标准DLL文件中的Bitmap(位图)
- Python基础进阶之路(三)之列表
- 《SharePoint Portal Server 2003 深入指南》即将完稿 大纲
- 克服大数据集群的挑战
- 一般如何调试php程序吗,如何调试PHP程序
- Java集合之一—HashMap
- c++标准程序库:STL容器之vector
- 隐马尔科夫模型HMM学习最佳范例
- Win10鼠标单击经常变双击
- 如何关闭谷歌的安全搜索?
- 【活动】为中秋献上祝福
热门文章
- 黑猫互联云计算机,黑猫评测 篇二十六:解决联想轻薄本痛点,3TB性价比NAS方案,联想个人云存储A1评测...
- 天机阁——全链路跟踪系统设计与实现
- nginx配置搭建单网站/多网站
- 百元蓝牙耳机哪个好用?2022开学季适合入手的蓝牙耳机推荐
- 记修改ElementUI的时间控件DateTimePicker样式踩坑日记
- (转)Android状态栏微技巧,带你真正理解沉浸式模式
- 利用云函数+Python实现每日网站自动签到并用QQ提醒
- wifi ap channel
- 在HTML 中嵌入 JS 代码的三种方式
- java 修改文件创建时间_Java如何更改文件的最后修改时间?