zoukankan      html  css  js  c++  java
  • Git使用整理

    【本文由水木桶首发于博客园,原文地址:https://www.cnblogs.com/shuimutong/p/11404664.html,未接允许,严禁转载】

    背景

    很久之前使用的是svn,直接在Eclipse里点击即可使用。后来开始使用git,虽然Eclipse里有git的工具,但是使用起来有诸多不畅,最终转向了gitbash。虽然网上有许多教程,但是距离使用还需要进一步的整理,所以就接着博客整理一下使用步骤。一方面为了记忆,一方面为了后期使用。

    一、安装

    git客户端网上一搜就搜到了,但是没有“上网”下载起来真心慢。关于下载gitbash客户端 之前我写了一篇文章,主要是通过手机热点的方式下载的,速度还不错。

    二、基本操作

    按照代码开发流程进行描述

    1、克隆资源到本地

    git clone +资源路径
    示例:git clone https://github.com/shuimutong/gdao.git

     2、拉取最新代码

    git pull

    3、查看分支

    git branch 查看本地分支

    git branch -a  查看所有分支

    4、切换到(检出)指定分支

    git checkout +分支名

    示例:git checkout dev-1

    5、查看分支状态

    git status

    查看本地是否有修改

    6、比对

    git diff

    和代码库对比已经修改但是还没有提交的代码

    git diff 分支名称

    和指定分支的代码进行比较,可用于codeReview

    7、添加准备提交的修改

    添加指定文件:git add +文件(夹)名

    添加全部:git add .

    7-1、添加后如何取消

    git reset HEAD

    取消上一次add的内容

    git reset HEAD log4j-learn

    取消添加的log4j-learn文件

    8、提交修改到本地库

    git commit -m "注释"

    提交修改并添加注释

    9、将提交推送到远程

    git push

    10、暂存代码,还原暂存代码

    git stash

    将当前修改暂存起来

    git stash pop

    将最近一次暂存的代码还原

    git checkout .

    还原本地修改

    三、分支、标签概念

    1、概述

    分支用于开发,标签用于备份版本。

    分支可以进行不断修改,标签代码不是用来进行不断修改的。

    2、分支

    一个项目需要开发一个新需求,那么我们就创建一个分支,此需求的开发都是在这个分支上进行。

    a、创建新分支

    git checkout -b 分支名称

    //创建分支依赖于当前所处的分支,可以切换到任意分支来创建新分支。

    b、将新分支推到远程

    git push --set-upstream origin 分支名称

    3、标签

    前面开发的那个新需求上线了,我们把上线的最终版本打一个tag,以方便后期查看。

    a、打tag

    git tag -a 标签名称 -m "注释"

    b、将tag推到远程

    git push origin 标签名称

    c、查看已有tag

    git tag

    d、检出tag代码

    git checkout 标签名称

    四、合并代码

    假设项目gdao存在分支master、dev-1-simple

    master有代码更新,需要将新代码合并到dev-1-simple。

    具体步骤:

    1、提交当前分支的修改

    2、git checkout master //切换到master

    3、git push //拉取最新代码

    4、git checkout dev-1-simple  //切换到开发分支

    5、git merge master  //将master合并到开发分支

    6、冲突处理

    7、提交合并后的代码到远程

    因本人水平有限,如有问题,还请多多指教。

  • 相关阅读:
    Shell工具——cut、sed、awk、sort
    基于RocketMQ分布式事务实现
    Alpine Linux 包管理工具
    分布式事务之可靠消息最终一致性
    消息系统本质思考
    深入剖析Redis数据结构
    Feign原理深入剖析
    Shell中 /dev/null用法解析
    Lua 数据类型与变量
    分布式事务之Seata开源方案
  • 原文地址:https://www.cnblogs.com/shuimutong/p/11404664.html
Copyright © 2011-2022 走看看