Git和Github的使用
一、了解Git和Github
1、什么是GIT?
Git是一个免费、开源的版本控制软件
2、什么是版本控制系统?
版本控制是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况得系统。
- 系统具体功能
记录文件的所有历史变化
随时可恢复到任何一个历史状态
多人协作开发或修改
错误恢复
版本控制的工具:
- svn
- git :软件帮助使用者进行版本的管理
3、什么是Github
Github是全球最大的社交编程及代码托管网站(https://github.com/)。
Github可以托管各种git库,并提供一个web界面(用户名.github.io/仓库名)
4、 Github和Git是什么关系
Git是版本控制软件
Github是项目代码托管的平台,借助git来管理项目代码
二、使用Git
一个创业者的故事:
项目背景:这个创业者想开发一个资源共享的系统
阶段一:顺利上线代码
首先在你创建的项目的文件夹里面右键--->点击Gir Bash Here---->吧git运行起来。
1、初始化:git init
2、如果你第一次使用git的时候,需要配置一下。如果你已经配置了,以后就不用配置了
3、吧当前的目录以及及所有的子文件添加到git:git add . #所有的文件
git templates/index.html #具体添加的文件
4、真实的吧数据提交上线:git commit -m "描述信息"
5、查看状态,看那个是否被修改过:git status
一定记得先add,后commit,add之后是没有放到版本里的,只有commit的时候才有版本
6、查看有几个版本:查看版本提交记录 :git log
7、回滚到上一个版本:git reset --hard 版本号
没一次生成的时候commit后面都会随机的生成版本号
8、再跳回去(查看往后的版本号):git reflog
Git把管理的文件分为了两个区域四个状态。
add到暂存状态的时候成绿色了,在commit的时候就没有了
提供了这个回滚的功能。
阶段二:当开发到一半的时候出现bug,修复bug
- 开发直播功能(预计一周开发完成)
当项目开发到一半的时候,出现bug了怎么办?
解决思路:把我们的代码变成没开发之前的代码,改完bug再提交。先把你当前开发的代码拿走,找个地方先存起来。
那么怎么做呢?
方案一:修复bug:stash
stash用于将工作区发生变化的所有文件获取临时存储在“某个地方”,将工作区还原当前版本未操作前的状态;stash还可以将临时存储在“某个地方”的文件再次拿回到工作区。
特别的:执行 git stash pop 命令时,可能会遇到冲突,因为在紧急修复bug的代码和通过stash存储在“某个地方”的代码会有重合部分,所以执行 git stash pop 时候就会出现冲突,有冲突解决冲突即可。
stash相关常用命令:
- git stash 将当前工作区所有修改过的内容存储到“某个地方”,将工作区还原到当前版本未修改过的状态
- git stash list 查看“某个地方”存储的所有记录
- git stash clear 清空“某个地方”
- git stash pop 将第一个记录从“某个地方”重新拿到工作区(可能有冲突)
- git stash apply 编号, 将指定编号记录从“某个地方”重新拿到工作区(可能有冲突)
- git stash drop 编号,删除指定编号的记录
当你新开发的代码和你修复的代码发生冲突的时候就手动解决冲突。
方案二:修复bug:利用分支(推荐)
默认会有一个master的分支。只做线上的版本,注意不要在master分支上修改,要修改的话就创建一个bug分支
1、创建一个修复bug的分支:git branch bug ,这个bug分支是在master分支上建的,相当于拷贝了一份
2、查看一共有几个分支 : git branch
3、跳转到bug分支:git checkout bug
4、跳转到master分支:git branch master
5、创建一个修复bug的分支:git branch dev #只做开发的版本
现在就有三个分支了,每个分支都是不一样的,bug修复完了,现在就要合并在master上了。
6、master和bug分支合并:git mare bug
7、删除bug分支:git branch -d bug
8、继续开发,切到dev:git branch dev
9、开发完毕,master和dev合并:git marge dev
切换之前一定记得把你的代码提交一下。
合并的时候可能出现冲突,可能不出现,出现冲突了就得手动解决

修复Bug流程:
git branch dev
git checkout dev # 写代码
git add .
git commit -m 'xxx' git checkout master
git branch bug
git chekcout bug # 修复bug
git add .
git commit -m '紧急修复bug' git checkout master
git merge bug git branch -d bug git checkout dev
# 继续开发

阶段三: 两个地方办公
云端需要一个存放代码的地方用Github
公共的
- Github是用来做代码托管的
- 码云,做代码托管
- csdn code ,做代码托管
内部搭建:
- gitlab
1、登录Github
在家里:
创建完成以后
就会有这样一个地址,我们就可以用这个地址来提交
下面是正在往远程推送,完了登录上去就会有mester分支了。
当然我们也可以吧dev也推送过来,和上面一样的方式。
在公司:
克隆
克隆的时候只是把master分支克隆了,其他的怎么拿呢?
用 git pull origin dev #拿到远程的dev
创建目录

家里: git add .
git commit -m 'xx' git remote add origin https://github.com/WuPeiqi/greenlu.git git push origin master 公司: # 新公司第一次获取代码
方式一
git clone https://github.com/WuPeiqi/greenlu.git 方式二
git init
git remote add origin https://github.com/WuPeiqi/greenlu.git
git pull origin master 直接拿回来 方式三
git init
git remote add origin https://github.com/WuPeiqi/greenlu.git
这的两句相当于git pull origin master 这一句
git fetch origin master 拿到分支上了
git merge origin/master 合并在一起 # 日后
git pull origin master # 或者
git fetch origin master
git merge origin/master # 如果你在本地修改问题,又add,又提交,在线上去拿的时候,或许会冲突
Git和Github的使用的更多相关文章
- 简单使用Git和Github来管理自己的代码和读书笔记
原文链接:http://my.oschina.net/bxxfighting/blog/378196 先注册github.com的账号官方网站: https://github.com/ 注册界面, ...
- git for windows 的默认工作路径(HOME)的设置以及Git与GitHub之间的SSH加密协议
1.安装及配置默认路径 Windows中从GitHub上面:https://git-for-windows.github.io/ 下载安装好git后(双击,改一下需要的安装路径,一路确定就好了),安装 ...
- git与github安装、配置、pull、push
操作系统是Ubuntu 16.04 LTS 64bit 1 安装git (1)安装 sudo apt-get install git-core (2)一些全局变量的初始化 在本地建立一个文件夹,然后做 ...
- 转:sublime上使用git连接github
"工欲善其事,必先利其器." 这是古人的教诲,也是一个高效率的工程师需要遵循的法则之一.从大学开始写Java使用了JBuilder,Eclipse,后来写PHP用了Zend,写Ja ...
- git与github使用
Git和Github简单教程 目录: 零.Git是什么 一.Git的主要功能:版本控制 二.概览 三.Git for Windows软件安装 四.本地Git的使用 五.Github与Git的关联 六. ...
- linux下git以及github的连接与使用
简单理解 Git 的思想和基本的工作原理,能够更好的进一步和使用Git.在开始学习Git 的时候,最好不要把Git的各种概念和其他的版本控制系统诸如 Subversion 等相比,否则容易混淆每个操作 ...
- Git和Github简单教程
原文链接:Git和Github简单教程 网络上关于Git和GitHub的教程不少,但是这些教程有的命令太少不够用,有的命令太多,使得初期学习的时候需要额外花不少时间在一些当前用不到的命令上. 这篇文章 ...
- Git和Github简单教程(转)
这篇文章只挑一部分命令来讲,差不多够用就行的程度.如果需要其他命令,到时候再去其他地方了解就行了先在Github上写好再搬过来的:本文Github链接 目录: 零.Git是什么 一.Git的主要功能: ...
- WebStorm和sublime上使用git连接github(转)
WebStorm使用git连接github的方法: 用webstorm上传代码时,首先要先下载git,网址一搜就可以搜到,安装git,并且把ssh配置到github上.然后开始配置webstorm,打 ...
- git和github使用方式
git 和github github是远程管理代码的服务器的名称 git代码管理系统 (git既然是一个系统,所以说git也有一些命令) git操作过程 首先在本地建立一个仓库,用来把代码提交到git ...
随机推荐
- html css回顾总结
//html基本结构<!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- Confluence 6 分享一个文件
协同合作和编辑不仅仅是发生在页面中,很多时候你需要与你的项目小组针对文档,报告,图片,表格进行协同操作.不管是针对性的市场计划或者一个完整的项目计划,你可以在 Confluence 中让你的项目小组成 ...
- 22.Python赋值运算符(入门必读)
赋值运算符主要用来为变量(或常量)赋值,在使用时,既可以直接用基本赋值运算符“=”将右侧的值赋给左侧的变量,右侧也可以在进行某些运算后再赋值给左侧的变量. = 基本赋值运算符 Python 使用“=” ...
- 使用powershell管理域用户
在域内环境中,常常需要使用命令行管理域用户,此时可以使用Active Directory中的命令行工具Dsquery.exe,或CSVE,以及Ldifde等,其实,使用Windows Powershe ...
- 遍历 ArrayList与Map集合
import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** * 遍历 ArrayList * @ ...
- css常见小问题(自己遇到的)
禁止div点击 //css属性: pointer-events: none; //或者定义属性,在js中添加: $(".原类名").addClass("新类名" ...
- 一、Vue基础之常用方法
一.JSON.parse() 与 JSON.stringify() 1.JSON.parse() :是从一个字符串中解析出 json 对象 //定义一个字符串 var data='{"nam ...
- Android Stuido中断点调试和高级调试
写一个简单的调试程序 import android.os.Bundle; import android.support.v7.app.AppCompatActivity; public class M ...
- 通过ssh管道连接内网数据库(mysql)
公网连接内网数据库(如云数据库)时,通常需要白名单:如果不是白名单IP,通常需要一个跳板机(类似代理)来连接内网数据库, 下方以mysql为例(其他数据库基本一致): import pymysql a ...
- Nginx OCSP
#开启 vim /path/to/path/conf/nginx.conf ..... events{ ...... 省略..... } http { ..... server{ listen 44 ...