通俗易懂的Git使用入门教程
原文链接:点我
首先新司机接触 Git 和 Github 可能会搞不清楚两者之间的关系,这里稍微解释一下:
1.Git是一款免费、开源的分布式版本控制系统
2.Github是用Git做版本控制的代码托管平台
本地仓库
主要介绍:
- 创建本地仓库
- 查看当前项目状态
- 仓库状态
- 添加
- 添加文件后仓库当前状态
- 提交(快照)
- 添加所有.txt类型文件并快照
- 查看日志
建立本地仓库
(注意此处忽略选择目录,也就是说在现实操作中我们需要新建或跳转到我们选择的文件夹,来建立本地仓库)
可以看到命令执行后在当前目录下出现一个.git目录,是Git用来跟踪管理版本库的。
查看当前项目状态
创建完本地仓库,先查看下当前项目状态
可以看到现在是处于master分支,master分支都是最终版本的代码,所以后面涉及到协同工作中其他分支merge到master分支概念,后再提。
仓库状态
1.3是添加和快照,这里我们可以看到Trygithub已经给我们创建好的一个txt文档。这时候再执行git status查看此时创建一个txt后仓库会有的状态状态。
这里我们看到,仓库状态显示,一个没有被跟踪到的文件“octocat.txt”,并尚未提交。
添加
这里的git add命令是为了让文件添加到Git暂存区,其实也就是让git知道有个新文件添加进来了。
暂存区和工作区概念可参考 git工作区和暂存区
查看添加文件后仓库当前状态
这里可以看到仓库当前状态为
已经提交修改
新文件:octocat.txt
提交(快照)
这里commit有的地方叫提交,有的地方叫快照,但都是一个意思。
这里
git commit -m "你的注释"
实际上操作是将暂存区的的文件提交到当前分支。
但简单来说,也可以理解为我们每次对项目做修改时都需要有一个注释(快照)。这样使得我们在以后再看我们的项目时知道我们当时修改了什么东西。
添加所有.txt类型文件并快照
这里可以发现,只要是.txt格式的文件,无论是在octofamily目录下还是根目录下都被添加
查看日志
到目前为止已经执行了两个git commit命令,此时我们想看一下我们已经有的所有快照,于是执行git log 命令。
到此为止,在本地仓库所做的所有工作结束。
远程仓库
主要介绍:
- 链接远程仓库
- pull&push
- 差异
- 撤销
- 分支操作
- 合并
- push
远程仓库
这里要做的是将你的本地仓库与GitHub上远程仓库链接起来。
这个工作的主要意义是,将你的修改提交到远程仓库(pull),也可以将别人的修改从远程仓库拉到自己的本地仓库里(push),以便共享。
但首先你要有个自己的GitHub账号,并建好remote repository。
需注意,本地Git仓库和GitHub仓库之间的传输是通过SSH加密的。这里需要做:
- 打开终端(windows打开 Git bash),输入 ssh-keygen -t rsa -C "你的邮件地址",一路回车,使用默认值即可。
- 跳转到.ssh目录
- 发现里面有id_rsa.pub和 id_rsa.pub文件。这两个就是SSH Key的秘钥对,其中id_rsa是私钥,不能泄露。id_rsa.pub是公钥,可以放心地告诉任何人。
- more id_rsa.pub,打开id_rsa.pub文件,复制。
- 登陆GitHub,找到Account settings-SSH Keys-Add SSH Key,Title随便写,文本框粘贴。(Key开头为ssh-rsa)
这里进入你想要作为远程仓库的repository的界面,在
Clone or download得到你所要链接的远程仓库 URL。
在1.10中,它所提供的https://github.com/try-git/try_git.git 即为需要连接的远程仓库 URL。
pull & push
上传本地仓库内容至远程
git push -u origin master
第一次推送master分支时,加上了-u参数,在以后的推送或者拉取时就可以简化命令。
拉取远程仓库中别人的修改
git pull origin master
差异
查看在最后一次提交之后的所有变更git differ HEAD
查看添加(add)而并未提交(commit)的变更 git differ --staged
撤销
此处详细介绍了git reset 的使用
改变暂存区的快照,工作区无变化
git checkout -- file的使用
改变工作区的快照
分支操作
创建分支clean_up: git branch clean_up
跳转分支clean_up:git checkout clean_up
此时可见on branch clean_up处于分支clean_up
删除分支中所有.txt类型文件:git rm '*.txt'
此时可见下方目录中所有*.txt类型文件都被删除
在分支进行删除操作依旧需要提交快照:git commit -m "Remove all the cats"
合并(merge)
跳转回master分支,发现*.txt类型文件依旧存在:git branch master
执行合并,将在clean_up分支上的修改合并到master上:git merge clean_up
删除分支clan_up:git branch -d clean_up
push
完成远程仓库中所git push
通俗易懂的Git使用入门教程的更多相关文章
- Git简单入门教程
1.下载Git,360的软件管家里搜 2.安装Git,下载好之后安装到指定路径下 安装方法有多个复选框的把第一个也选上,其他默认直接next,最后一步什么都不选 3.配置用户信息:(右键-->g ...
- mac os x使用Git简易入门教程
具体如下: 1, 首先要了解什么是Git. 简而言之,Git是一个分布式的代码版本管理工具.类似的常用工具还有SVN,CVS. 概念了解参见:http://baike.baidu.com/subvie ...
- git 入门教程
git 入门教程之协同开发 前面我们已经介绍过远程仓库的相关概念,不过那时并没有深入探讨,只是讲解了如何创建远程仓库以及推送最新工作成果到远程仓库,实际上远程仓库对于团队协同开发很重要,不仅仅是团队协 ...
- 廖雪峰Git入门教程
廖雪峰Git入门教程 2018-05-24 23:05:11 0 0 0 https://www.liaoxuefeng.com/wiki/00137395163059296 ...
- Git学习记录 力做全网最强入门教程
目录 Git学习记录 力做全网最强入门教程 什么是GitHub? 什么是Git? Git的配置 Git的安装(只介绍windos操作系统下) Git的配置 至此我们的入门教程到此结束,更新中级教程要等 ...
- Git 极简入门教程学习笔记
Git 极简入门教程 http://rogerdudler.github.io/git-guide/index.zh.html 测试用 https://github.com/xxx/BrnShop. ...
- git 入门教程之 git 私服搭建教程
git 私服搭建教程 前几节我们的远程仓库使用的是 github 网站,托管项目大多是公开的,如果不想让任何人都能看到就需要收费,而且 github 网站毕竟在国外,访问速度太慢,基于上述两点原因,我 ...
- gulp详细入门教程
本文链接:http://www.ydcss.com/archives/18 gulp详细入门教程 简介: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优 ...
- [转]Scrapy入门教程
关键字:scrapy 入门教程 爬虫 Spider 作者:http://www.cnblogs.com/txw1958/ 出处:http://www.cnblogs.com/txw1958/archi ...
随机推荐
- vue keep-alive保存路由状态2 (高级用法,接上篇)
接上篇 https://www.cnblogs.com/wangmaoling/p/9803960.html 本文很长,请耐心看完分析. 4.高级用法,指定从什么组件进入才缓存,以及销毁缓存:先介绍我 ...
- mysql 字符串的处理
1.SUBSTRING 2.SUBSTRING_INDEX 3. right/left 4.POSITION sql实例 select left(right(SUBSTRING_INDEX(data_ ...
- java高级——暴力反射
反射,java中一个比较高级的应用,主要和开发中的框架紧密相连.今天我们就介绍一下他的特性之一,暴力反射.(听名字很恐怖呦) package wo; public class A{ public St ...
- C# Lambda && Linq
Lambda表达式在C#3.0加入,它是一个匿名函数,可用于创建委托或者表达式树类型,运算符为=>,读作"goes to",=>左侧是变量,右侧是表达式,变量类型可以自 ...
- Swift 闭包中 self? 的由来
class UIViewSpringAnimator: SwipeAnimator { // 动画完成的闭包 var completion:((Bool) ->Void)? func addCo ...
- vue反向代理解决跨域
问题描述 在项目开发的时候,接口联调的时候一般都是同域名下,且不存在跨域的情况下进行接口联调,但是当我们现在使用vue-cli进行项目打包的时候,我们在本地启动服务器后,比如本地开发服务下是 http ...
- pyinstall 常见错误
字符编码错误: https://blog.csdn.net/weixin_42426496/article/details/81102665 https://blog.csdn.net/qq_4206 ...
- java 模拟ajax上传图片
1.maven 引入依赖 <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpmime --> &l ...
- centeros 7开机自动挂载磁盘
场景: 使用mount命令将新发现的磁盘/dev/sdb挂载给/liu后,但是重启后又看不到磁盘? 问题导致原因: 虽然我们可以使用mount命令去挂载磁盘,但是此操作只对服务器运行期间有效,也就是临 ...
- GenIcam标准(一)
1.概述 如今的数码摄相机包含了很多的功能,而不仅仅是采集图像.对于机器视觉相机来说,处理图像并把结果附加到图像数据流上,控制附加的硬件,代替应用程序作实时的处理等都是很平常的事情.这也导致了相机的编 ...