Git与Github操作指南(入门)
1.Git的操作
参考:
廖雪峰的Git教程
git Fast-forward与no-ff的区别
Git 官方文档
1.创建版本库
1.1 寻找一个适合的地方
$ mkdir version_nam
1.2 windows系统中确保目录不含中文名。(使用pwd查看绝对路径)
2.初始化版本库
$ git init
2.1 初始化成功后会显示
Initialized empty Git repository in D:/Git/.git/
3.把文件添加到版本库
3.1 添加到暂存区:
$ git add readme.txt
这里假设我新建的是一个readme.txt文档 。你的文档则修改readme.txt即可。
3.2 提交到当前分支:
$ git commit -m djdjd
参数解释:
- -m的意思是关于这个提交的描述。通常是默认必须跟一个描述,作用是便于自己和其他人了解你提交的内容。
note:git commit命令可以一次提交多个相同文件夹的内容。
4.查看当前状态
4.1 加入我对上面的readme.txt的内容进行了修改
$ git status
4.2 查看修改的内容
$ git diff
5.版本回退
5.1 查看历史版本
$ git log
5.2 回车键之后
$ git log
commit c7684d70618939337449649ecaf0f03a6b437bec
Author: Eternaldeath <222@qq.com>
Date: Sun Jan 14 18:03:26 2018 +0800noword
commit 63f5ff1d9de011f577454388beda0cf41eedf66f
Author: Eternaldeath <222@qq.com>
Date: Sun Jan 14 18:02:11 2018 +0800noword
commit acf45e68454cd873ecf687d838d0c3b95dc4ea56
Author: Eternaldeath <222@qq.com>
Date: Sat Jan 13 19:27:12 2018 +0800no
参数解释:
- commit:这里是版本号
- Author:你的用户名和邮箱
- Date:版本更新的时间
- 下面的“noword”是你提交git commit -m输入的描述。
5.3 版本回退
$ git reset --hard HEAD^
参数解释:
- HEAD^:表示回退的版本。如果后面接一个 ^ ,表示上一个版本。若是两个 ^^
,就表示上上的版本。如果是10个,就表示成HEAD~10.
5.4 查看命令历史
$ git reflog
6.撤销修改
撤销工作区的修改:
$ git checkout -- <你的文件名>ex:$ git checkout -- readme.txt
7.删除操作
$ rm <你的文件>ex: rm readme.txt
7.1 使用 git status 用来查看删除的命令
8.远程仓库
8.1 本地库关联 Github 上的远程库
$ git remote add origin git@github.com:Eternaldeath/Font-end-Ggame.git
参数解释:
- Eternaldeath 这是你的 Github 账户名称,填写自己的。
- Font-end-Ggame 这是你的 Github 上的仓库的名称。
8.2 推送本地库到远程库中
$ git push -u origin master
参数解释:
- -u:推送加关联本地库和远程库。
此时查看 Github 上的内容,内容就和本地库一样了。
同时,只要现在使用该命令就可以同步到远程库(网页的 Github)中。
8.3 克隆远程库到本地库
比如你在网页的 Github 上有一个不错的仓库,但是你的本地主机上没有,那么你就可以通过下面这个命令创建一个本地的仓库。
$ git clone git@github.com:Eternaldeath:Personal-Resume.git
参数解释:
- Eternaldeath:这是你的账户名称。(Eternaldeath是我的)。
- Personal-Resume:这是你的仓库名称。(其实仓库就可以理解为一个文件夹)。
完成后查看你的主机,就会发现多了克隆的文件夹。
9.分支管理
9.1 创建并切换分支
$ git checkout -b aaa
参数解释:
- -b:b就是branch的缩写。 如果没有 -b 就是直接切换分支。
9.2 查看当前分支
$ git branch
回车键后显示
$ git branch
* aaamaster
你会看到两个分支,aaa 和 master(这是默认的分支),aaa 前面有一个 * ,这就是指针的意思,意思是现在指向 aaa 这个分支。
9.3 合并分支
假如我们切换回分支 master 了。
现在合并两个分支。
$ git merge aaa
合并完成后显示
$ git merge aaa
Updating 27e69f2..72c2a05
Fast-forwardreadme.txt | 1 +1 file changed, 1 insertion(+)
参数解释:
- Fast-forward:一种合并的模式:快进合并(合并的速度非常快)。
9.4 删除分支
$ git branch -d aaa
参数解释:
- -d:就是 delet 的缩写。
10.解决冲突
10.1 查看分支合并情况
$ git log --graph
类似下图
$ git log --graph
* commit 8e855d0b14adbf964c9b070173796c59ee19413e
|\ Merge: a9d6680 98312b7
| | Author: Eternaldeath <xxxx@qq.com>
| | Date: Mon Jan 15 11:18:56 2018 +0800
| |
| | branch-in-master
| |
| * commit 98312b78c0d925e4d208c8f56e7e6d1dc33f1d96
| | Author: Eternaldeath <xxxx@qq.com>
| | Date: Mon Jan 15 11:14:55 2018 +0800
| |
| | branch-in-new-branch
| |
* | commit a9d668067aaf59acdbcba3060bdca3b37f936b05
|/ Author: Eternaldeath <xxxx@qq.com>
| Date: Mon Jan 15 11:17:15 2018 +0800
|
| branch-in-master
|
11.分支策略
11.1 使用 –no-ff 策略执行分支
我们假设除了 master 的另一个分支是 dev
$ git merge --no-ff -m use-no-ff dev
参数解释:
- no-ff 和 Fast-forward 的区别:前者会保留一个 commit 的记录。
12.Bug分支
预设场景:假设一个这样的背景环境,当你在使用git进行工作A的时候,突然需要进行紧急工作B,而工作A无法立刻提交,这种情况应该怎么办呢?
$ git stash
参数解释:
- stash:藏匿。就是把当前的工作A隐匿起来,先在工作区执行紧急工作B。
12.1 查看隐匿的工作内容
$ git stash list
12.2 恢复隐匿的工作内容
$ git stash pop
语法解释:恢复隐匿的工作内容,并且删除 stash 区域。
当然还有一种方式,就是把恢复和删除分成两步。
$ git stash apply //恢复
$ git stash drop //删除
13.feature 分支
特点:feature 分支的特点应该是“特性”,就是如果你的产品每添加一个新的功能,而你又不想打乱主代码的布置,就可以使用feature。(个人理解)
14.多人协作
14.1 查看远程库信息
$ git remote -v
参数解释:
- -v :是查看详情信息。如果不查看详情信息就不用 -v
14.2 推送分支
$ git push origin master
参数解释:
- origin:远程库的名字,这就是你创建本地库和远程库关联的时候的名字。
- master:这是你要推送的分支。也可以其他分支,比如之前提到的 bug,feature等。
15.标签管理
标签是版本库的快照
本质上是一个指针
与分支的区别在于标签作为指针是不能移动的
需要标签的原因是,我们之前看到分支的commit号都是很长的一串数字和字符组成,而使用标签就只需要一个类似:v1.2的形式
15.1 标记标签
$ git tag v1.0
参数解释:
- v1.0:就是你要打标签的内容。
15.2 查看标签
$ git tag
15.3 标记以往的标签
如果你忘记给上一次打标签了,那么可以通过查找上一次的 commit 号来标记标签。
$ git tag v1.1 1234567
参数解释:
- 1234567:这个就是你的上一次的 commit 号
15.4 查看标签信息
$ git show <tagname>
15.5 删除标签
$ git tag -d <tagname>
15.6 推送标签
推送某一个
$ git push origin <tagname>
推送所有
$ git push origin --tags
15.7 删除远程标签
先删除本地的。
然后删除远程库的
$ git push origin :refs/tags/<tagname>
16.DIY你的Git的功能
增加Git代码的颜色
$ git config --global color.ui true
2.Github 的补充
参考:Github 帮助
对于 Github 的教程很多,这里不赘述。只作为简单的补充。
1.单词解释
fork:fork就是把对方的仓库克隆在自己的远程库里。比如,你在 Github 上看见一个不错的开源仓库,你想要 clone 下来,但是 clone 是 clone 到本地主机,以后想推送自己的修改是不能的,所以可以先 fork 到自己的远程库在 clone 下来。
pull request:接着上面的 fork 。现在你做了一些对项目的修改,你想让开源项目的负责人看见,你就需要 pull request 给他,如果他觉得不错,他就会 merge (合并)你的分支。
2.界面解释
这里只列出了常用的一些页面,其他的Github的使用参考Github官方帮助文档。
转载于:https://www.cnblogs.com/comefuture/p/8305935.html
Git与Github操作指南(入门)相关推荐
- Git及Github之入门到进阶
一言以蔽之, 所谓Git,一款免费.开源的分布式版本控制系统:所谓Github,用Git做版本控制的代码托管平台.一张图来说明代码提交者.Git与Github之间的关系: 以下主要分以下几个阶段来对G ...
- git与github从入门到精通
1.了解Git和Github 1.1 什么是Git Git是一个免费.开源的版本控制软件 1.2 什么是版本控制系统 版本控制是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况得系统. ...
- Git和GitHub快速入门
Git入门 简介 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的分布式版本控制系统. 工具 准备工具 Git下载地址:https://git-scm ...
- Git 和 GitHub 快速入门
Git & GitHub 的快速上手 文章目录 Git & GitHub 的快速上手 一.Git和版本控制的概念 (1) 集中式版本控制工具 (2) 分布式版本控制工具 二.Git的安 ...
- git和github的入门使用(一)
1. 使用的第一步当然是注册账号啦! Github: git项目托管网站,请先免费申请一个github帐号:www.github.com Git:分布式版本控制工具,可以去官方下载:https://g ...
- git与github初入门:git与git命令的基本使用
git与git命令的基本使用 一.git是什么 1.定义 定义:git是一款开源的,去中心化的分布式版本控制系统. 2.git的工作原理 1.工作架构: 工作区----暂存区----本地仓库----远 ...
- clone git 修改保存路径_Git和Github详细入门教程(别再跟我说你不会Git和Github)
前言:成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成.你好,我是梦阳辰,快和我一起搞定Git和Github吧. 文章目录 01.Git概述 02.Git的本地仓库操作 Git的版本回退操作 ...
- 轻松Git与Github入门
文章目录 前言 一.版本控制系统介绍 1.版本控制系统的概念 2.版本控制系统功能 3.版本控制系统分类 二.Git 与GitHub 简介 1.Git 2.GitHub 三.Git账户注册与管理 1. ...
- Git与Github入门资料
Git与Github入门资料 Git主要优势及安装 git,一个非常强大的版本管理工具.Github则是一个基于Git的日益流行的开源项目托管库.Git与svn的最大区别是,它的使用流程不需要联机,可 ...
最新文章
- Spring中的Controller ,Service,Dao是不是线程安全的?
- 5模型数据起别名_DMBOK 06|数据建模与设计
- calendar当前时间整点_时间处理相关类
- linux下使用update-alternatives切换java版本的正确姿势
- 数据包接收系列 — IP协议处理流程(一)
- 因为虚拟机导致的错误
- linux7空闲内存,centos7 内存占用率高处理问题
- sqlCommang ADO.Net
- 摩拜单车微信小程序开发技术总结
- 【转载】RPG或SLG游戏在线地图编辑器
- DHU数据结构-循环单链表-ADT应用-圆桌问题
- Unity特效基础:粒子效果面板
- C语言是一个什么样的语言
- linux atop日志查看,A - atop - 监控Linux系统资源与进程的工具 - 《Linux命令大全搜索工具(旧版)》 - 书栈网 · BookStack...
- 智慧家庭工程师题初级
- php花朵飘落特效,WordPress 主题添加花瓣飘落特效
- 水位传感器(Water Sensor)原理图
- Html怎样往div中添加文本,给div中添加文本元素
- PIC16F C语言测频率程序,PIC单片机C语言程序—实例5
- ASP.NET 实用资料[转]
热门文章
- 消防信号总线原理_消防报警系统中消防模块分类与用途简介
- 大二c语言数电课程设计,数电课程设计报告(数字钟的设计).doc
- NMS 非极大值抑制
- 【项目实战课】NLP入门第1课,人人免费可学,基于TextCNN的新闻文本分类实战...
- 有三AI小程序上线,把你的代码show给世界
- 全球及中国甲醇催化剂行业前景动态与市场需求调研报告2022版
- 传统外贸不好做,为什么不来做跨境电商?
- openresty开发系列33--openresty执行流程之3重写rewrite和重定向
- git fetch 和git pull 的差别
- mysql数据库文件的真实的物理存储位置