通俗易懂的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 ...
随机推荐
- [雅礼NOIP2018集训] day6
打满暴力好像是一种挑战,已经连续几天考试最后一个小时自闭了,因为自以为打完了暴力,然而,结果往往差强人意 大概是考试的策略有些问题 T1: 我们设$g[x]$为在x时取小于等于m个物品的最大价值,下面 ...
- Cocos结构
基类:CApplicationProtocol 纯虚函数virtual bool applicationDidFinishLaunching() = 0; CCApplication继承于CCAppl ...
- Swift学习笔记(8):闭包
目录: 基本语法 尾随闭包 值捕获 自动闭包 闭包是自包含的函数代码块,闭包采取如下三种形式之一: ・全局函数是一个有名字但不会捕获任何值的闭包 ・嵌套函数是一个有名字并可以捕获其封闭函数域内值的闭包 ...
- (转载) Android RecyclerView 使用完全解析 体验艺术般的控件
Android RecyclerView 使用完全解析 体验艺术般的控件 标签: Recyclerviewpager瀑布流 2015-04-16 09:07 721474人阅读 评论(458) 收藏 ...
- springMVC小项目实例
一.什么是 Spring MVC Spring MVC 属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 里面,是一个强大灵活的 Web 框架.Spring ...
- c/s结构的自动化——pyautogui
环境:Python 3.5.3 pip install pyautogui -i http://pypi.douban.com/simple --trusted-host pypi.douban.co ...
- 修改maven打包名字
仅需在pom.xml添加下列配置 build> <finalName>userapi</finalName> </build>
- 【BZOJ3730】震波 - 动态点分治
题意: Description 在一片土地上有N个城市,通过N-1条无向边互相连接,形成一棵树的结构,相邻两个城市的距离为1,其中第i个城市的价值为value[i]. 不幸的是,这片土地常常发生地震, ...
- webpack2.X、Vue学习以及将两者相结合
在家的闲暇时间来完善自己的前端知识. 经过两三天的学习,按照webpack文档学习,vue文档学习,最后实现了两者结合的目标. webpack 按照网站上guide的流程依次学习 1.使用npm安装w ...
- 怎样避免在EF自己主动生成的model中的DataAnnotation被覆盖掉
相信非常多人刚接触EF+MVC的时候,会有这个疑问.就是当我们在model类中加验证信息的时候.会在又一次生成model的时候被重写掉. 这里介绍一个方法: 比方我有个Employee类是从数据库中生 ...