通俗易懂的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 ...
随机推荐
- angular4(1)angular脚手架
angular2之后有了类似于vue-cli的脚手架工具,很方便的帮助我们搭建项目: 1.安装angular命令行工具:npm install @angular/cli -g 2.检测angular- ...
- HD-ACM算法专攻系列(10)——大明A+B
题目描述: 源码: 需要注意的一点是输出是最简形式,需要去除小数的后导0,而调用stripTrailingZeros()函数后,数会以科学计数法输出,所以需要调用toPlainString(). im ...
- js小知识 delete操作符
说明:delete操作符用于删除对象的某个属性. 语法: delete object.property //删除 对象.属性 delete object['property'] //删除 对象['属性 ...
- 头像文件上传 方法一:from表单 方法二:ajax
方法一:from表单 html 设置form表单,内包含头像预览div,内包含上传文件input 设置iframe用来调用函数传参路径 <!--表单提交成功后不跳转处理页面,而是将处理数据返回给 ...
- 3ds Max制作厨房贴图和纹理实例
来源:CG游 使用软件:3ds Max 软件下载:www.xy3dsmax.com/xiazai.html 大家好,欢迎大家来阅读这个教程.这个教程是讲解我前不久制作的一个场景效果图.因为场景已经制作 ...
- jQuery基本操作以及与js的一些比较
jQuery和js主要区别在DOM操作 用jQuery必须先引进jQuery.js文件 js和jQuery写在哪: 1.标签里面 常用就是方法调用 2.写在script标签里面 3.js文件 dom操 ...
- web移动端-弹性盒模型
(父元素加) : /*新版弹性盒模型*/ /* display: flex; */ /*设置主轴方向为水平方向*/ /* flex-direction: row; */ /*设置主轴方向为垂直方向*/ ...
- Linux Shell脚本编程-信号捕获
bash编程的信号捕获: kill -l 显示当前系统可用信号(trap -l) 获取帮助:man 7 single 常用信号: 1) SIGHUP 无须重启进程而让其重读配置文件 2) SI ...
- 紫书 习题 11-12 UVa 1665 (并查集维护联通分量)
这道题要逆向思维 反过来从大到小枚举, 就是在矩阵中一点一点加进去数字,这样比较 好操作, 如果正着做就要一点一点删除数字, 不好做. 我们需要在这个过程中维护联通块的个数, 这里用到了并查集. 首先 ...
- linux下创建带password的用户
一直在做实验室linuxserver的账号管理系统,现阶段是用户申请后我这边收到邮件,然后手动创建,这个略显麻烦,打算全然做成自己主动化的.用户申请后,我直接在管理界面点击批准就可以创建用户,同一时候 ...