tip:使用简单的例子来制作一个使用指南过程,默认文件夹为demo。看了3个早晨,写一下留个记录,可能有些不成熟,如有错误欢迎指正。

参考一:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

一.一幅图和一些概念

图1-1是理解你所做的任何操作的一个图

红色字体1(红1)是代表工作区,下例就是demo文件夹和里边的文件

红色字体2(红2)和3(红3)是版本库,红2是暂存区,红3是主分支

三种文件状态
已提交(committed),已修改(modified)和已暂存(staged)。

典型工作流程(图1-1就是演示的新文件--已暂存--已提交)
新文件--已暂存--已提交--已修改--已暂存--已提交

二.准备工作

2.1 github上创建demo库(上图),本地创建demo文件夹,在文件夹右键会有 Git Bash选项打开

图2-1 github上创建demo库

2.2

图2-2 本地demo文件夹右键Git Bash打开

2.3 添加秘钥(请百度下我这装过了)

#生成密钥
ssh-keygen -t rsa -C “邮箱”
#按3个回车,密码为空。(不要输密码)
#然后到.ssh下面将id_rsa.pub里的内容复制出来粘贴到github个人中心的账户设置的ssh key里面
#测试是否成功
ssh -T git@github.com

2.4 初始化,初始化的名字和邮箱都可以更改的,github后台有添加邮箱设置,无论你是用后台有的还是没有的都可以上传到github上,在哪可以显示呢?

当三执行一遍后,右键demo文件夹会多出Git History可以查看你上传不同文件或者更改同一文件然后推送到github时所用的name和邮箱(这个测试过)

但是感觉没什么实际意义,除非2个人用同一台电脑

git config --global user.name "name"
git config --global user.email "yauremail@example.com"

三.初始化

3.1 输入git init 进行初始化,demo文件夹里会出现一个.git的隐藏文件夹,里边包含图1-1里的红2和红3,还有一些别的信息

git init

3.2 本地demo里创建一个a.txt文件,随便输入一行字母a然后输入git add a.txt(图1-1的红1到红2)

git add a.txt

3.3 提交更新 git commit -m "更新概括"

git commit -m "更新概括"

3.4 添加远程仓库,这里要说明的是origin是代替git@github.com:leiak/demo.git的,以后直接origin就可以代表你的远程仓库了,你起别的名称都可以

leiak是我的远程仓库名称,请改成自己的

git remote add origin git@github.com:leiak/demo.git

3.5 推送数据到远程仓库(origin代表远程仓库名称。master代表本地分支,分支可以创建,可以有很多,可以合并)

git push -u origin master

3.6 经过上述5个步骤(如下图)会在你的github上demo库里出现a.txt文件

四.工作区内的时光控制(这个标题不知道如何起)

4.1 先介绍几个功能

git status (状态查询)
git log (提交日志)(git log --pretty=oneline 这个会让输出单行显示便于观看)

4.2 现在将a.txt文件再添加一行字母b(填什么都行),然后git add a.txt,再输入git status(如下图)

下图git reset HEAD <file> 是告诉你后悔添加了怎么退回去

4.3下面输入 git reset HEAD a.txt

下图最后一行告诉你现在暂存区没有任何东西

4.4 将修改的添加到github

4.5现在用下git log命令,下面两行输出的就是提交日志(现在红3里的HEAD就指向的bb 那行)

4.6如果现在后悔改动了,现在指针指向的bb,想回到gx可以用下面的两条语句

这里要讲的就是af26是4.5里图的gx前的黄字,也就是那个提交日志(这里就输入了4个字母af26 ,如果提交次数多建议多输入几位,可能出现前几位重叠)

这里同时a.txt文件里的内容也会随着你的日志更改而更改,比如到gx下bb里提交的内容就会去掉

git reset --hard HEAD^
git reset --hard af26

上面指针指向了gx了想回到bb 怎么办呢 git reset --hard 9eef就可以回去了

4.7 如果第二天又后悔回去了怎么办呢?

git reflog

上面的代码就起到作用了,下图就会知道你都reset,commit了什么,再reset回去就可以了

五.工作区到版本库内的时光控制(这个标题不知道如何起)

5.1

git rm file.txt
git rm -f file.txt 强制删除,适用于已修改且已暂存。
git rm --cached file.txt 从跟踪清单中删除,但不实际删除文件。
git rm *~ 删除当前目录下所有~结尾的文件。
git rm \*~ 递归删除当前目录及子目录下所有~结尾的文件。

5.2 再给a.txt添加一行字母c

六:分支

6.1 用到的概念.冲突没有涉及

git branch mo #创建mo分支
git checkout mo #切换至mo分支
git checkout -b mo #创建并切换至iss53分支。
git checkout master  #首先切换到主分支
git merge mo #测试完毕后,合并mo分支
git branch -d mo #删除已合并的hotfix分支

6.2创建并切换到了分支mo 然后给a.txt添加一行字母e,commit下

现在分别切换两个分支然后看下a.txt里边的内容,会发现mo里有e的一行字母

6.3 现在切换到主分支master 然后合并了mo分支,看下master分支下的a.txt文件也有了e字母

6.4 未完待续

window下Git和github入门的更多相关文章

  1. Linux下Git和GitHub使用方法总结

    来源:Linux下Git和GitHub使用方法总结 1 Linux下Git和GitHub环境的搭建 第一步: 安装Git,使用命令 “sudo apt-get install git” 第二步: 到G ...

  2. window下git的下载

    window下git的下载window下git的下载window下git的下载window下git的下载 https://git-scm.com/download/win https://git-sc ...

  3. Git和Github入门

    推文:官方手册,十分详细 推文:git和github快速入门 一.git使用 1.git安装 (1)windows 网站:https://git-scm.com/download/win下载安装即可 ...

  4. linux下git以及github的连接与使用

    简单理解 Git 的思想和基本的工作原理,能够更好的进一步和使用Git.在开始学习Git 的时候,最好不要把Git的各种概念和其他的版本控制系统诸如 Subversion 等相比,否则容易混淆每个操作 ...

  5. window下golang使用gRPC入门案例&net core客户端

    gRPC是google开源高性能分布式RPC框架,支持http/2 双向数据流传输及Protobuff,可以在任何环境下运行. 它可以有效地将数据中心内和跨数据中心的服务与可插拔支持进行负载均衡,跟踪 ...

  6. git和github入门指南(6)

    6.交作业的流程 以下内容是螺钉课堂在线就业班提交作业的要求,非螺钉课堂在线就业班学员不用学习 螺钉课堂作业全程采用git管理,希望在日常使用中,加深对git和github的理解 具体流程: 1.注册 ...

  7. window下git多账户管理

    前言 一般情况下,我们都是一台电脑配置一个Git账号,使用如下命令: git config --global user.name "your name" git config -- ...

  8. Git与GitHub入门

    一.git起步https://www.runoob.com/git/git-install-setup.html1.下载git(Windows)2.安装GUI(TortoiseGit)3.查看git配 ...

  9. git和github入门指南(1)

    1.git和github简介 1.1.git是什么?github是什么?git和github的关系? Git是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理. Git ...

随机推荐

  1. Centos6.5安装与配置Tomcat-8的方法

    环境要求: 系统: [root@Wulaoer ~]# cat /proc/version Linux version 2.6.32-431.el6.x86_64 (mockbuild@c6b8.bs ...

  2. 高性能web开发:如何加载js,,js的存放位置

    外部JS的阻塞下载 所有浏览器在下载JS的时候,会阻止一切其他活动,比如其他资源的下载,内容的呈现等等.至到JS下载.解析.执行完毕后才开始继续并行下载其他资源并呈现内容. 有人会问:为什么JS不能像 ...

  3. 在web项目中使用cxf开发webservice,包含spring支持

    本文主要介绍了,如何使用cxf内置的例子,学会开发webserivce,在web项目中使用,且包含spring支持. webserivce的开发可以使用cxf或者axis,好像还有httpclient ...

  4. Ubuntu14.04下SP_Flash_Tool_exe_Linux无法烧录

    1,用命令lsusb查看usb信息. 2,vim 20-mm-blacklist-mtk.rules 输入下面内容: ATTRS{idVendor}=="0e8d",ENV{ID_ ...

  5. MyEclipse2015 javaweb项目从svn检出后变成java项目,clean之后不能编译,解决办法是

     javaweb项目从svn检出后变成java项目,解决办法是:1.项目右键–properties–Project Facets,勾选上Dynamic Web Module .Java 两个复选框.点 ...

  6. FusionCharts 分类以及各个属性参数列表

    <FusionCharts学习及使用笔记>之 第一篇 其实一直以来我都在有意无意的把我平常工作中遇到并解决的问题做个记录,放到我的网易博客中.但却一直没有想过如何把我使用的技术做一个系列化 ...

  7. java调用dll-JNA

    介绍 给大家介绍一个最新的访问本机代码的 Java 框架 —JNA . JNA(Java Native Access) 框架是一个开源的 Java 框架,是 SUN 公司主导开发的,建立在经典的 JN ...

  8. (转)在Java中如何遍历Map对象

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

  9. CodeForces 139C Literature Lesson(模拟)

    这个题,读懂了就是水,读不懂就没办法下手,论英语阅读的重要性...只有五种形式,第一种万能型aaaa,是另外3种的特殊情况,第二种克莱里林四行打油诗aabb形式,第三种是交替的abab形式,第四种是封 ...

  10. 注册表检测office版本

    #region 查询注册表,判断本机是否安装Office2003,2007和WPS public int ExistsRegedit() { int ifused = 0; RegistryKey r ...