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

参数解释:

  1. -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

参数解释:

  1. commit:这里是版本号
  2. Author:你的用户名和邮箱
  3. Date:版本更新的时间
  4. 下面的“noword”是你提交git commit -m输入的描述。

5.3 版本回退

$ git reset --hard HEAD^

参数解释:

  1. 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

参数解释:

  1. Eternaldeath 这是你的 Github 账户名称,填写自己的。
  2. Font-end-Ggame 这是你的 Github 上的仓库的名称。

8.2 推送本地库到远程库中

$ git push -u origin master

参数解释:

  1. -u:推送加关联本地库和远程库。

此时查看 Github 上的内容,内容就和本地库一样了。
同时,只要现在使用该命令就可以同步到远程库(网页的 Github)中。

8.3 克隆远程库到本地库

比如你在网页的 Github 上有一个不错的仓库,但是你的本地主机上没有,那么你就可以通过下面这个命令创建一个本地的仓库。

$ git clone git@github.com:Eternaldeath:Personal-Resume.git

参数解释:

  1. Eternaldeath:这是你的账户名称。(Eternaldeath是我的)。
  2. Personal-Resume:这是你的仓库名称。(其实仓库就可以理解为一个文件夹)。

完成后查看你的主机,就会发现多了克隆的文件夹。

9.分支管理

9.1 创建并切换分支

$ git checkout -b aaa

参数解释:

  1. -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(+)

参数解释:

  1. Fast-forward:一种合并的模式:快进合并(合并的速度非常快)。

9.4 删除分支

$ git branch -d aaa

参数解释:

  1. -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

参数解释:

  1. no-ff 和 Fast-forward 的区别:前者会保留一个 commit 的记录。

12.Bug分支

预设场景:假设一个这样的背景环境,当你在使用git进行工作A的时候,突然需要进行紧急工作B,而工作A无法立刻提交,这种情况应该怎么办呢?

$ git stash

参数解释:

  1. 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

参数解释:

  1. -v :是查看详情信息。如果不查看详情信息就不用 -v

14.2 推送分支

$ git push origin master

参数解释:

  1. origin:远程库的名字,这就是你创建本地库和远程库关联的时候的名字。
  2. master:这是你要推送的分支。也可以其他分支,比如之前提到的 bug,feature等。

15.标签管理

标签是版本库的快照
本质上是一个指针
与分支的区别在于标签作为指针是不能移动的
需要标签的原因是,我们之前看到分支的commit号都是很长的一串数字和字符组成,而使用标签就只需要一个类似:v1.2的形式

15.1 标记标签

$ git tag v1.0

参数解释:

  1. v1.0:就是你要打标签的内容。

15.2 查看标签

$ git tag

15.3 标记以往的标签

如果你忘记给上一次打标签了,那么可以通过查找上一次的 commit 号来标记标签。

$ git tag v1.1 1234567

参数解释:

  1. 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操作指南(入门)相关推荐

  1. Git及Github之入门到进阶

    一言以蔽之, 所谓Git,一款免费.开源的分布式版本控制系统:所谓Github,用Git做版本控制的代码托管平台.一张图来说明代码提交者.Git与Github之间的关系: 以下主要分以下几个阶段来对G ...

  2. git与github从入门到精通

    1.了解Git和Github 1.1 什么是Git Git是一个免费.开源的版本控制软件 1.2 什么是版本控制系统 版本控制是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况得系统. ...

  3. Git和GitHub快速入门

    Git入门 简介 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的分布式版本控制系统. 工具 准备工具 Git下载地址:https://git-scm ...

  4. Git 和 GitHub 快速入门

    Git & GitHub 的快速上手 文章目录 Git & GitHub 的快速上手 一.Git和版本控制的概念 (1) 集中式版本控制工具 (2) 分布式版本控制工具 二.Git的安 ...

  5. git和github的入门使用(一)

    1. 使用的第一步当然是注册账号啦! Github: git项目托管网站,请先免费申请一个github帐号:www.github.com Git:分布式版本控制工具,可以去官方下载:https://g ...

  6. git与github初入门:git与git命令的基本使用

    git与git命令的基本使用 一.git是什么 1.定义 定义:git是一款开源的,去中心化的分布式版本控制系统. 2.git的工作原理 1.工作架构: 工作区----暂存区----本地仓库----远 ...

  7. clone git 修改保存路径_Git和Github详细入门教程(别再跟我说你不会Git和Github)

    前言:成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成.你好,我是梦阳辰,快和我一起搞定Git和Github吧. 文章目录 01.Git概述 02.Git的本地仓库操作 Git的版本回退操作 ...

  8. 轻松Git与Github入门

    文章目录 前言 一.版本控制系统介绍 1.版本控制系统的概念 2.版本控制系统功能 3.版本控制系统分类 二.Git 与GitHub 简介 1.Git 2.GitHub 三.Git账户注册与管理 1. ...

  9. Git与Github入门资料

    Git与Github入门资料 Git主要优势及安装 git,一个非常强大的版本管理工具.Github则是一个基于Git的日益流行的开源项目托管库.Git与svn的最大区别是,它的使用流程不需要联机,可 ...

最新文章

  1. Spring中的Controller ,Service,Dao是不是线程安全的?
  2. 5模型数据起别名_DMBOK 06|数据建模与设计
  3. calendar当前时间整点_时间处理相关类
  4. linux下使用update-alternatives切换java版本的正确姿势
  5. 数据包接收系列 — IP协议处理流程(一)
  6. 因为虚拟机导致的错误
  7. linux7空闲内存,centos7 内存占用率高处理问题
  8. sqlCommang ADO.Net
  9. 摩拜单车微信小程序开发技术总结
  10. 【转载】RPG或SLG游戏在线地图编辑器
  11. DHU数据结构-循环单链表-ADT应用-圆桌问题
  12. Unity特效基础:粒子效果面板
  13. C语言是一个什么样的语言
  14. linux atop日志查看,A - atop - 监控Linux系统资源与进程的工具 - 《Linux命令大全搜索工具(旧版)》 - 书栈网 · BookStack...
  15. 智慧家庭工程师题初级
  16. php花朵飘落特效,WordPress 主题添加花瓣飘落特效
  17. 水位传感器(Water Sensor)原理图
  18. Html怎样往div中添加文本,给div中添加文本元素
  19. PIC16F C语言测频率程序,PIC单片机C语言程序—实例5
  20. ASP.NET 实用资料[转]

热门文章

  1. 消防信号总线原理_消防报警系统中消防模块分类与用途简介
  2. 大二c语言数电课程设计,数电课程设计报告(数字钟的设计).doc
  3. NMS 非极大值抑制
  4. 【项目实战课】NLP入门第1课,人人免费可学,基于TextCNN的新闻文本分类实战...
  5. 有三AI小程序上线,把你的代码show给世界
  6. 全球及中国甲醇催化剂行业前景动态与市场需求调研报告2022版
  7. 传统外贸不好做,为什么不来做跨境电商?
  8. openresty开发系列33--openresty执行流程之3重写rewrite和重定向
  9. git fetch 和git pull 的差别
  10. mysql数据库文件的真实的物理存储位置