序言

  在git使用过程中发现指令实在太多,就算记忆后不长用的话很快也会忘记掉,所以编写本文的初衷是为了记录在使用git指令的过程中所遇到的需求与解决方法,毕竟使用git的需求也就那么一些,范围不大,所以可以将需求与解决方法记录下来,下次使用时遇到相同需求如果忘记了也可以得到快速解决

需求1

描述:

Windows系统,在git中生产SSH key

扩展:

由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以必须要让github仓库认证你SSH key,在此之前,必须要生成SSH key。

步骤:

第1步:创建SSH Key。在windows下查看[c盘->用户->自己的用户名->.ssh]下是否有id_rsaid_rsa.pub文件,如果没有需要手动生成。
打开git bash,在控制台中输入以下命令。

ssh-keygen -t rsa -C "guimashusheng@126.com"

密钥类型可以用 -t 选项指定。如果没有指定则默认生成用于SSH-2的RSA密钥。这里使用的是rsa。同时在密钥中有一个注释字段,用-C来指定所指定的注释,可以方便用户标识这个密钥,指出密钥的用途或其他有用的信息。所以在这里输入自己的邮箱或者其他都行。输入完毕后程序同时要求输入一个密语字符串(passphrase),空表示没有密语。接着会让输入2次口令(password),空表示没有口令。3次回车即可完成当前步骤,此时[c盘>用户>自己的用户名>.ssh]目录下已经生成好了。

第2步:登录github。打开setting->SSH keys,点击右上角 New SSH key,把生成好的公钥id_rsa.pub放进 key输入框中,再为当前的key起一个title来区分每个key。

需求2

描述

将远程仓库上的文件同步到本地

步骤

git clone git@txxx.git

需求3

描述

将本地文件push到远程仓库上

步骤

进入到需要提交的文件所在目录,输入如下指令:

# add后跟空格加一点会将该目录下的所有文件添加至上传列表,若需上传指定文件只需将点改为指定文件的名称带后缀
git add . git commit -m "提交描述" # 如果文件所在的本地仓库和远程仓库从未连接过需要输入下面语句将本地与远程联系上
git remote add origin git@xxx.git # 将文件提交到主枝上
git push -u origin master

  

需求4

描述

为版本打tag

步骤

进入到项目根目录,输入如下指令

# 查看历史tag
git tag # 查看git的相关tag操作
git tag -h # 添加版本tag 其中v1.0.0为tag名称
git tag -a v1.0.0 -m "版本tag描述" # 将本地tag推送到远程上 其中的v1.0.0就是上面的tag名称
git push origin v1.0.0

需求5

描述

  在网页上面新建项目后,完成初始化操作

步骤

  进入到需要提交的文件所在目录,输入如下指令:

# 下载文件到本地
git clone git@xxx.git # 进入文件目录
cd fileStorage # 新建README文件
touch README.md # 添加README文件到提交列表
git add README.md # 提交说明
git commit -m "add README" # 提交文件到主枝
git push -u origin master

  

需求6

描述

  本地已有相关文件夹,在网页上面新建项目后,将本地文件推送到服务器

步骤

  进入到需要提交的文件所在目录,输入如下指令:

# 进入已有的本地文件目录
cd existing_folder # 初始化git到本目录
git init # 本地与远程取得联系
git remote add origin git@xxx.git # 添加文件的推送列表
git add . # 提交说明
git commit -m "Initial commit" # 推送到主枝
git push -u origin master

需求7

描述

  预览打包项目(gh-pages)

步骤

  进入到需要提交的文件所在目录,输入如下指令:

# 进入项目目录 Emoji-ChatRoom,注意这里的项目名称得和远程相同,不同的话反正我是没有上传成功过
cd Emoji-ChatRoom # 初始化git到本目录
git init # 取消dist文件过滤,.gitignore文件中删除dist(重要步骤) # 本地与远程取得联系
git remote add origin https://github.com/zhazhanitian/Emoji-ChatRoom.git # 添加文件的推送列表
git add -A # 提交说明
git commit -m "init file" # 推送到主枝
git push -u origin master # 把 dist 目录推送到 gh-pages 分支
git subtree push --prefix dist origin gh-pages # 然后通过 https://zhazhanitian.github.io/Emoji-ChatRoom 就可以访问了

需求8

描述

查看本地分支、查看远程分支、新建本地分支、推送本地分支到远程、切换分支、删除本地分支、删除远程分支

步骤

进入到项目根目录,输入如下指令

# 查看本地分支
git branch # 查看所有分支,包括远程,remotes为远程分支
git branch -a # 新建本地分支
git branch newbranch # 新建本地分支并切换
git checkout -b newbranch # 推送本地分支到远程
git push origin newbranch # 切换分支
git checkout master # 删除本地分支 (要切换出要删除的分支才可以删除)
git branch -d newbranch # 删除远程分支 方式1
git push origin --delete newbranch # 删除远程分支 方式2
git push origin :newbranch

需求9

描述

  fetch更新本地仓库(更新远程代码到本地)

步骤

  进入到需要提交的文件所在目录,输入如下指令:

# 方法一

# 从远程的 origin 仓库的 master 分支下载代码到本地的 origin master
git fetch origin master # 比较本地的仓库和远程参考的区别
git log -p master.. origin/master # 把远程下载下来的代码合并到本地仓库,远程的和本地的合并
git merge origin/master # 方法二 # 从远程的 origin 仓库的 master 分支下载到本地并新建一个分支 temp
git fetch origin master:temp # 比较 master 分支和 temp 分支的不同
git diff temp # 合并 temp 分支到 master 分支
git merge temp # 删除 temp
git branch -d temp

需求10

描述

开发中经常在错误的分支上改了大量代码,需要转移到正确到分支上

步骤

进入到项目根目录,输入如下指令:

# 将当前所以修改提交的本地一个储存库,使用此命令后当前分支将会是修改之前的状态
git statsh # 切换分支,通过如下命令将储存库的代码拉取下来
git checkout dev
git stash apply # 这个命令也可以实现,和上面不同的是会自动删除本地储存,不过出现冲突则不会删除
# git stash pop # 查看本地储存
git stash list # 删除本地储存
git stash drop

需求11

描述

回滚代码到某次commit,开发过程中可能合并到不需要到分支,或个别原因需要回退

步骤

进入到项目根目录,输入如下指令:

# 回退到上个版本
git reset --hard HEAD^ # 回退到前3次提交之前,以此类推,回退到n次提交之前
git reset --hard HEAD~3 # 退到/进到 指定commit的sha码
git reset --hard commit_id # 强推到远程
git push origin HEAD --force

需求12

描述

在我们工作中,经常会需要建立很多开发分支,但是过一段时间自己都不记得那个分支是干什么的了,这里提供给git分支添加备注功能,方便管理

步骤

进入到项目根目录,输入如下指令:

# branch_name 是需要加备注的分支名
git config branch.branch_name.description "这里添加注释" # 例如给 dev 分支加备注
git config branch.dev.description "家花不如野花香~" # 查看 dev 分支备注
git config branch.dev.description # 借助工具 git-br 查看分支备注
npm i -g git-br # 查看所有分支备注
git br

需求13

描述

Mac SSH证书配置

步骤

打开命令行,输入如下指令:

# 步骤一:检查是否已经存在SSH Key
ls -al ~/.ssh # 步骤二:生成/设置SSH Key # 情况一:终端出现文件id_rsa.pub 或 id_dsa.pub,则表示该电脑已经存在SSH Key,此时可继续输入命令:
pbcopy < ~/.ssh/id_rsa.pub # 这样你需要的SSH Key 就已经复制到粘贴板上了,然后进行步骤3 # 情况二:终端未出现id_rsa.pub 或 id_dsa.pub文件,表示该电脑还没有配置SSH Key,此时需要输入命令:
ssh-keygen -t rsa -C 'your_email@example.com' # 然后一路回车(-C 参数是你的邮箱地址)
# 此时再输入命令:ls -al ~/.ssh 就会出现id_rsa.pub 和 id_dsa.pub两个文件,然后重复情况一的步骤即输入以下命令
pbcopy < ~/.ssh/id_rsa.pub # 步骤三:将SSH Key添加到GitLab中
# 打开GitLab, 登录,找到左边栏有一个

gitlab使用过程中的需求与解决的更多相关文章

  1. win7 安装过程中遇到的错误解决方法

    win7 安装过程中遇到的错误解决方法 windows安装无法继续.若要安装windows 请单击 确定 重新启动计算机: 当 出现如上提示的时候,按下shift+f10 会打开命令窗口,进入到C:\ ...

  2. npm使用过程中的一些错误解决办法及npm常用命令

    node,npm在前端开发流程中提供了非常完善的自动化工具链,但是同样由于其复杂性导致有很多奇奇怪怪的问题.本文将记录使用过程中出现的一些问题及其解决方法备案. 国内由于gfw问题,导致很多国外的网站 ...

  3. 编译recovery及过程中的部分错误解决

    你必须使用32位或64位Ubuntu系统,关于如何建立编译环境和同步源码的指导,请自己查找有关指导的文章. 1, 安装所需要的包 2, 建立编译的环境,并同步CWM所需的源码,CyanogenMod源 ...

  4. 【转】npm使用过程中的一些错误解决办法及npm常用命令

    原文 node,npm在前端开发流程中提供了非常完善的自动化工具链,但是同样由于其复杂性导致有很多奇奇怪怪的问题.本文将记录使用过程中出现的一些问题及其解决方法备案. 国内由于gfw问题,导致很多国外 ...

  5. mongodb副本集搭建过程中的问题和解决技巧

    在我以往的认知中,一个系统一旦正式上线,多半不会轻易的迁移服务器,尤其是那种涉及到多个关联应用,涉及到多台硬件服务器的系统,因为这种迁移将是牵一发而动全身的. 但是,却仍然有这种情况存在,就如我这几天 ...

  6. npm使用过程中的一些错误解决办法及npm常用命令和技巧

    node,npm在前端开发流程中提供了非常完善的自动化工具链,但是同样由于其复杂性导致有很多奇奇怪怪的问题.本文将记录使用过程中出现的一些问题及其解决方法备案. 国内由于gfw问题,导致很多国外的网站 ...

  7. kubernetes安装过程中遇到问题及解决

    系列目录 根据机器环境的不同,有的可能一次就安装成功,有的则可能遇到各种各样的坑需要排查.建议不熟悉linux的用户使用全新的环境来安装kubernetes.以下记录本人在安装过程中遇到的问题及解决方 ...

  8. Ubuntu编译Android源码过程中的空间不足解决方法

    Android源码一般几十G,就拿Android5.0来说,下载下来大概也有44G左右,和编译产生的文件以及Ubuntu系统占用的空间加起来,源码双倍的空间都不够有.编译源码前能分配足够的空间再好不过 ...

  9. Swift开发iOS应用过程中的问题和解决记录

    虚拟机里安装OSX+XCode开发环境 用真机的请直接跳过这个部分. 主要是在VitrualBox里安装mac系统和xcode,参考这篇教程,VirtualBox的版本是4.3.18 r96156,O ...

随机推荐

  1. 从Docker 到Jenkins 到Ansible的部署经验

    从Docker 到Jenkins 到Ansible的部署经验 工作中,除了开发功能,还负责系统的部署工作.我从频繁的部署工作中,逐渐找到了一些偷懒的方法.从传统的Java -jar命令启动服务,到通过 ...

  2. Springboot集成Quartz

    之前学习过spring的定时任务 :https://www.cnblogs.com/slimshady/p/10112515.html 本文主要学习记录下springboot使用quartz 1.   ...

  3. jQuery使用(十五):when()方法的使用

    这个方法再次基于callbacks和deferred对象来实现的一个延迟异步回调来实现的,再when方法内可以添加多个deferred对象作为参数,只有当所有deferred全部被触发了成功的回调函数 ...

  4. CentOS7自定义系统服务示例

    CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/ ...

  5. day 23-1 类的命名空间、组合

    类的命名空间 类与对象命名空间 类里 可以定义两种属性 静态属性 动态属性 类中的静态变量 可以被对象和类调用对于不可变数据类型来说,类变量最好用类名操作对于可变数据类型来说,对象名的修改是共享的,重 ...

  6. 最小生成树--克鲁斯卡尔算法(Kruskal)

    按照惯例,接下来是本篇目录: $1 什么是最小生成树? $2 什么是克鲁斯卡尔算法? $3 克鲁斯卡尔算法的例题 摘要:本片讲的是最小生成树中的玄学算法--克鲁斯卡尔算法,然后就没有然后了. $1 什 ...

  7. Dubbo+Nacos做注册中心和配置中心

    项目结构 相关代码 EchoService public interface EchoService { String echo(String msg); } DefaultEchoService @ ...

  8. Java基础 -- String,StringBuilder,StringBuffer三者的区别

    结论 1-String,StringBuilder,StringBuffer 之间的区别主要是在两个方面,即运行速度和线程安全这两方面: 首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:St ...

  9. 2019 icpc南昌全国邀请赛-网络选拔赛J题 树链剖分+离线询问

    链接:https://nanti.jisuanke.com/t/38229 题意: 给一棵树,多次查询,每次查询两点之间权值<=k的边个数 题解: 离线询问,树链剖分后bit维护有贡献的位置即可 ...

  10. Flask+SQLAlchemy+alembic+Flask-RESTful使用

    前言 其实准备把这篇删掉,先写Flask-restful相关的,后来想想大体框架还是先写出来,这两天踩了很多坑,有的谷歌也没有答案.一直摸索也总算是开始了. 正文 SQLAlchemy/alembic ...