通俗易懂的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 ...
随机推荐
- Idea配置文件的读取
开发过程中遇到配置文件读取问题,因此记录以后运用的到. 配置文件位置: 配置文件内容: default_size = 100 grid_size = 20 delayTime = 200 配置文件读取 ...
- POJ 2114 点分治
思路: 点分治 //By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> u ...
- HD-ACM算法专攻系列(11)——Exponentiation
问题描述: 源码: 考察对大数的计算,需要注意去除前导0与后导0. import java.math.BigDecimal; import java.util.*; public class Main ...
- asp.net mvc5 文件下载上传
下载:是通过点击a标签直接下载的方式,没有其他任何要求,在服务器上存在实体文件,不需要请求后台控制层 前段js: <a id="NF-DownLoad" authorize= ...
- 关于PageRank的总结
好久不用CSDN,最近想给带的本科生实验课开个期末习题专题页,发现CSDN的博客忽然要绑定之类.只好弃用回博客园写学习总结了.塞翁失马焉知非福. *************************** ...
- java zyUpload 实现多文件上传
1.html部分 <form enctype="multipart/form-data"> <label>请选择文件</label> <i ...
- 紫书 例题11-11 UVa 12661 (dihkstra变形)
这道题主要比较权值的时候要改变一下,其他地方基本一样. 比较权值的时候要考虑边的时间与a, b 可以设相对于当前边的时间now, 则now = d[u] % (a+b), 也就是当前这个边进行到整个a ...
- Java基础学习总结(1)——equals方法
一.equals方法介绍 1.1.通过下面的例子掌握equals的用法 package cn.galc.test; public class TestEquals { public static vo ...
- MySQL数据类型及后面小括号的意义
1,数值类型 1.1数值类型的种类 标准 SQL 中的数值类型,包括严格数值类型(INTEGER.SMALLINT.DECIMAL.NUMERIC),以及近似数值数据类型(FLOAT.REAL.DOU ...
- 纯CSS实现小圆点和三角形图案
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...