GIT :实现版本控制的软件

命令:
git init # 初始 git (先执行这个才能执行接下来的)

git status # 查看当前文件夹状态
git add 文件名 # 对指定文件进行版本控制
git add . # 对指定文件夹下的所有文件及子目录进行版本控制

git commit -m '详细的版本信息描述' # 创建提交记录(版本)

git log # 查看当前所有版本全部信息
git reflog # 查看全部版本信息(包括历史版本和现在版本)

git reset --hard # 提交记录(版本号)

git reset --hard 版本号 # 退回当前版本

git mv file_from file_to # 重命名文件

解决问题:帮助我们存储一些只开发一部分功能,或正在开发过程中的代码,就比如说正在开发一个新的功能,
但是突然之前已经上线的某个功能出BUG了,这时候就可以将当前正在开发的储存起来,然后修复BUG后再回来

解决方式1:
git stash # 将当前工作区所有修改的内容储存在"某个地方",再将工作区还原到未修改前的状态
git stach list # 查看"某个地方"储存的所有记录
git stash clear # 清空"某个地方"
git stash pop # 将第一个记录从"某个地方"重新拿到工作区(可能会冲突)
git stash apply 编号 # 将指定编号从"某个地方"重新拿到工作区(可能会冲突)
git stash drip 编号 # 删除指定编号记录

解决方式2:(使用这个)
git branch # 查看都有哪些分支
git branch dev # 创建一个分支 叫做 dev(比如这个分支里的东西是当前正在做的功能)
git branch bug # 创建一个分支 叫做 bug(比如这个分支是处理BUG用的分支)
git branch -d bug # 删除 bug 分支
git checkout dev # 跳到 dev 分支
git merge bug # 将 bug分支 和 masster分支 合并
(注:合并的时候,如果两个分支都修改了同一条数据那么会出现冲突,则需要手动去修改)

- 两台电脑的 代码上传(使用 github)

电脑1:
git remote add origin github地址 # 添加一个地址
git push origin dev # 将 dev 分支推送到 github 上

电脑2:
git clone github地址  # 克隆存放代码的地址
  - 注:在执行下一步之前 需要 cd 到当前目录
git pull origin dev # 将 github 上的代码 拉到自己当前目录下
上面这一条等价于:
git fetch origin dev # 将dev分支放到一个远程的存储地方
git merge origin/dev # 将dev分支拉到自己电脑
git rebase origin/dev# 这条命令等于 git merge origin/dev 但是不会出现分叉问题(二选一)
  - git rebase 的作用:保持提交记录的整洁

版本:
git tag -a v1.0(版本名) -m "版本介绍" # 本地创建 Tag
git show v1.0 # 查看
git tags -n # 查看本地Tag
git tag -l "v1.4.2.*" # 查看本地Tag,模糊匹配
git tag -d v1.0 # 删除Tag
git push origin :refs/tags/v0.2 # 更新远程tag
git fetch origin tag v1.2 # 切换tag

git push origin --tags # 将创建的版本推送到github
git pull origin --tags # 将创建的版本从github拉下来

git clone -b v1.0 github文件地址 # 将 v1.0的版本拉下来

Git - Q的更多相关文章

  1. IGS_学习笔记03_Integrated SOA Gateway设定配置(案例)

    20150506 Created By BaoXinjian

  2. npm遇到的问题--npm install 执行报错 /bin/git submodule update -q --init --recursive

    1.执行npm i 安装依赖时,报错:cannot read property 'match' of undefined 据说是npm本地缓存导致 解决方案: rm -rf package-lock. ...

  3. 执行git log/status等命令时,重新打开了个窗口,必须按q才能退出

    终端运行: git config --global core.pager ''

  4. Git 在团队中的最佳实践--如何正确使用Git Flow

    我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用. Git的优点 Git的优点很多,但是这里只列出我认为 ...

  5. Git小技巧 - 指令别名及使用Beyond Compare作为差异比较工具

    前言 本文主要写给使用命令行来操作Git的用户,用于提高Git使用的效率.至于使用命令还是GUI(Tortoise Git或VS的Git插件)就不在此讨论了,大家根据自己的的喜好选择就好.我个人是比较 ...

  6. cmder git bash 使用

    cmder 是一款 windows 下的命令集合软件,它可以集合各种系统下的命令,并且操作非常快速方便. 安装有两个版本,一个是简化版(4.27M),一个是完全版(75.7M),它们的唯一区别:完全版 ...

  7. Git 常用命令

    一.初始環境配置 git config --global user.name "John Doe"git config --global user.email johndoe@ex ...

  8. 学习廖雪峰的git教程

    地址:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 1.git add:添加文件 ...

  9. git 修改最后一次提交的用户名 或者 commit的内容

    修改git最后一次提交的命令 $ git commit --amend 修改git最后一次提交用户名的相关命令 git config user.name 'wangz' git config user ...

随机推荐

  1. LeetCode 104. 二叉树的最大深度(Maximum Depth of Binary Tree)

    104. 二叉树的最大深度 104. Maximum Depth of Binary Tree 题目描述 给定一个二叉树,找出其最大深度. 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数. 说 ...

  2. Linux基础-11-rpm管理软件包

    1. 使用RPM安装及移除软件 1) RPM的定义:RPM就是Red Hat Package Manger(红帽软件包管理工具)的缩写. 2) rpm的文件名分为5部分,其中: 第1部分是name,表 ...

  3. Python进阶:聊协程

    从一个爬虫说起 Python 2 的时代使用生成器协程,Python 3.7 提供了新的基于 asyncio 和 async / await 的方法.先看一个简单的爬虫代码,爬虫的 scrawl_pa ...

  4. PAT甲级题分类汇编——理论

    本文为PAT甲级分类汇编系列文章. 理论这一类,是让我觉得特别尴尬的题,纯粹是为了考数据结构而考数据结构.看那Author一栏清一色的某老师,就知道教数据结构的老师的思路就是和别人不一样. 题号 标题 ...

  5. iis安装ssl证书

    在证书控制台下载IIS版本证书,下载到本地的是一个压缩文件,解压后里面包含.pfx文件是证书文件,pfx_password.txt是证书文件的密码. 友情提示: 每次下载都会产生新密码,该密码仅匹配本 ...

  6. 前端开发 Vue -4promise解读2

    https://www.runoob.com/vue2/vue-tutorial.html promise promise是什么?   1.主要用于异步计算 2.可以将异步操作队列化,按照期望的顺序执 ...

  7. VBA嵌套if语句

    一个If或ElseIf语句可以嵌套在另一个If或ElseIf语句中.内部的If语句是根据最外层的If语句执行的.这使得VBScript能够轻松处理复杂的条件. 语法 以下是VBScript中嵌套的If ...

  8. Python实现YOLO目标检测

    作者:R语言和Python学堂 链接:https://www.jianshu.com/p/35cfc959b37c 1. 什么是目标检测? YOLO目标检测的一个示例 啥是目标检测? 拿上图 (用YO ...

  9. Qt布局

    常用的布局方法 1. 水平布局类 QHBoxLayout 2. 垂直布局类 QVBoxLayout 3. 网格布局类 QGridLayout QHBoxLayout 对象横向排列开 QVBoxLayo ...

  10. Linux 知识

    linux下如何查看某软件是否已安装 因为linux安装软件的方式比较多,所以没有一个通用的办法能查到某些软件是否安装了.总结起来就是这样几类: 1.rpm包安装的,可以用rpm -qa看到,如果要查 ...