GitHub是最先进的分布式版本控制工具,下面是我学习中总结的操作流程,仅供参考

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Git安装

下载git的windows版本并安装,不予详述(直接打开安装包,按默认的流程一步步进行即可,任意位置点击鼠标右键弹出git 字样的选项时即为安装成功)

安装成功后输入下面命令进行设置

$ git config --global user.name "你的git账号"

$ git config --global user.email "你注册git账号的邮箱"

Git操作:

创建版本库

  1. 选择一个地方创建空目录(所有目录名必须是英文的,中文的会出bug)
  2. 输入下列命令

$ mkdir learngit //learngit为仓库名,可以自己命名

$ cd learngit

$ pwd      //显示当前目录

$ git init  //将目录变为git管理的仓库

  1. 添加文件,在learngit文件夹下创建文件,输入下列命令

$ git add 文件名      //文件名是创建文件的名字

$ git commit -m "注释"//-m后面提交的是文档说明,这个必须要有,否则报错

修改版本库:

  1. 查看仓库状态:

$ git status

  1. 查看修改内容:

$ git diff 文件名

  1. 查看历次版本历史纪录

$ git log

  1. 回退上次版本

$ git reset --hard HEAD^

  1. 回退到任意一个版本

$ git reset --hard num //num 为要回退到某个版本的版本号,部分即可

  1. 查询历史命令

$ git reflog

  1. 查询工作区和版本库里面的最新版本的区别

$ git diff HEAD -- 文件名 //要查询文件的名字

  1. 放弃工作区文件的修改(此命令中的两个横杠很重要,不能少写)

$ git checkout -- 文件名 //放弃修改的文件名称

  1. 撤销暂存区文件的修改

$ git reset HEAD 文件名

Git工作时候实际上是工作区->暂存区(stage)->分支(master为git自动创建的分支),HEAD为指向master 的一个指针。Git add实际上是将文件提交到了暂存区。Git commit是将暂存区的所有内容都提交到分支,可以先执行多个add,

再使用一个commit提交。

如果直接将文件管理器中的文件删除或者使用rm命令删除,工作区和版本库的内容就会不一致,此时:

  1. 可以选择直接从版本库中删除文件

$ git rm 文件名

$ git commit

  1. 文件删除错误,这时可以从版本库里还原文件

$ git checkout -- 文件名

连接git网站:

  1. 创建SSH Key,在user目录下(用户主目录),查看是否有.SSH文件,并且查看其下面有无id_rsa(私钥,不能告诉别人)和id_rsa.pub(公钥,可以告诉别人)文件,如果没有可以运行命令创建

$ ssh-keygen -t rsa -C "邮箱名"

  1. 登陆GitHub网站,打开“SSH Key”页面,点击“new SSH”,输入任意名,粘贴公钥内容

有本地库后创建远程库:

  1. 登陆网站,点击“create a new repository”,创建新库,设置名称learngit,点击创建
  2. 将本地内容关联到远程库里面去

$ git remote add origin git@github.com:账户名/learngit.git

  1. 把本地库的内容推送到远程库上,

$ git push -u origin master

第一次推送时使用-u参数关联,后面推送时候就可以简化命令$ git push origin master

从远程库克隆库

  1. 登陆网站,假设已经创建了一个库gitskill
  2. 克隆库到本地

$ git clone git@github.com:账户名gitskill.git

$cd gitskill       //创建本地文件夹

$ls

创建与删除分支:

  1. 创建另一个分支dev,并将指针HEAD切换到另一个分支上去

$git checkout -b dev  //dev为另一个分支名,记住中间是一个横杠

-b表示创建并切换

  1. 查看所有分支

$ git brach

  1. 切换分支

$ git checkout master//切换回master分支

  1. 合并分支

$ git merge dev  //将dev分支合并到当前分支上来

  1. 删除分支

$ git branch -d dev  //删除dev分支

分支冲突:

当创建一个新分支并且做出修改后回到原分支再次修改文件,此时git无法将两个修改的文件进行快速合并,必须将某一个文件修改后或使其完全一致方可。查看分支合并情况:

$ git log --graph --pretty=oneline --abbrev-commit  //查看冲突分支的合并情况

No-ff模式(禁用fast forward模式)

Fast forward模式下合并分支会丢失分支信息,禁止后在执行合并分支操作时能从分支历史上看到分支信息。 禁用模式下执行合并命令:

$ git merge  --no-ff -m "注释"

储存工作状态:

在处理bug等必须暂时离开时,可以保存现在的工作状态

  1. 储存当前工作状态:

$ git stash   //存储当前分支

  1. 修复bug(假如在master中修复bug)

$ git checkout master    // 转到master分支

$ git checkout –b issue-101   //创建新的分支issue-101来修复bug

  1. 修复完成后:

$ git checkout master   //切换回master

$ git merge –no-ff –m “注释” issue-101 //修改完bug的分支合并到master中去,并保留痕迹

$ git branch –d issue-101   //删除临时分支

4.切换回原来的工作状态

$ git checkout dev

此时工作区是没有东西的,原来的stash内容被存在别的地方,可以用$ git stash list来查看。此时工作现场还在,此时可以执行:

$ git stash apply   // 恢复存储内容

$ git stash drop    // 删除储存的工作状态文件

或者一次恢复并删除工作状态文件:

$git stash pop

删除分支:

当分支创建完毕即将合并时,突然不使用这个分支了,要将其删除。此时使用强行删除命令(此时没有合并,不能使用git branch来删除分支):

$ git branch –D feature   //feature 是要删除的分支名字

多人协作:

  1. 查看远程库的信息

$ git remote

或者使用命令

$ git remove –v    //查看远程库更详细的内容

  1. 推送分支到公共库

$ git push origin 分支名   // origin是远程库的默认名称

注意:

l  Master 是主分支,需要时刻与远程库同步

l  Dev为开发分支,也需要同步

l  Bug 分支只用于本地修复bug,没必要推送

l  Feature 是新功能开发分支,这个取决于是否与他人合作开发

  1. 抓取分支,当开发者同时更新dev分支时,可以先抓取这个分支到本地,解决冲突后再上传

$ git branch –set-upstream dev origin/dev  //指定本地和远程库dev文件的链接

$ git pull                  //抓取网上的dev文件

创建标签:

为每一个分支创建一个版本号:

$ git branch    //查看分支

$ git checkout master   //转到需要加版本号的标签

$ git tag v1.0    //为分支创建版本号标签,v1.0为版本号

$ git tag      //查看所有版本号标签

$ git show tag    //查看所有版本号标签的详细信息

创建带有说明的标签:

$ git tag –a 版本号  -m “说明文字“

看版本号的说明文字

$ git show 版本号

操作标签:

删除标签:

$ git tag –d 版本号

推送标签到远程:

$ git push origin 版本号

推送所有标签名到远程:

$ git push origin –tags

如果标签已经推送到远程,可以先删除本地的,再 删除远程的

$ git tag –d 版本号  //  删除本地的

$ git push origin :refs/tags/版本号

转载于:https://www.cnblogs.com/wuheng1991/p/5443001.html

Github基本操作的学习与温习相关推荐

  1. Github|类别不平衡学习资源(下)

    点击上方"算法猿的成长",关注公众号,选择加"星标"或"置顶" 总第 139 篇文章,本文大约 3600 字,阅读大约需要 10 分钟 继续 ...

  2. 2018年Github上值得学习的十个热门项目

    关注「实验楼」,每天分享一个项目教程 2018年Github上值得学习的十个热门项目,了解一下- 正文共:1065 字 预计阅读时间:3 分钟 项目一 julia(语言) 简介:julia是一种新的. ...

  3. GitHub mall项目学习(二) mall-admin

    GitHub mall项目学习(二) mall-admin 本文主要介绍mall-admin后台系统 mall ├── mall-common -- 工具类及通用代码 ├── mall-mbg -- ...

  4. Git与github基本操作

    一.  git安装与简单配置 1.      git的安装 首先进入git的官方网站git-scm.com 下载自己电脑对应的git版本,然后点击安装即可 点击上图的红色部分进行下载 安装的时候直接默 ...

  5. github 和git_学习编码时如何学习Git和GitHub

    github 和git by Iago Rodrigues 通过Iago Rodrigues 学习编码时如何学习Git和GitHub (How you can learn Git and GitHub ...

  6. Github|类别不平衡学习资源(上)

    点击上方"算法猿的成长",关注公众号,选择加"星标"或"置顶" 总第 138 篇文章,本文大约 5400 字,阅读大约需要 15 分钟 今天 ...

  7. github 开源 代码 学习 集合(转载)

    一个支持多种item类型的recycleView依赖注入库 1.通过注解的方式方便的把ViewHolder注入到recycleView中. 2.去除findViewByID等冗余操作. 3.去除编写a ...

  8. Github:深度学习文本检测识别(OCR)精选资源汇总

    点击我爱计算机视觉标星,更快获取CVML新技术 今天跟大家推荐一个Github项目,来自NAVER Clova AI Research的hwalsuklee同学汇总了近几年的基于深度学习进行文本检测. ...

  9. 1.2w 星!火爆 GitHub 的 Python 学习 100 天

    试问,怎样学Python,才不会入门即放弃? 有位名叫骆昊 (jackfrued) 的资深程序员,为大家规划了一条从"从新手到大师"的百天之路. 从全方位熟悉语言,到Python的 ...

最新文章

  1. 干货 | YOLOV5 训练自动驾驶数据集,并转Tensorrt,收藏!
  2. 学习《送东阳马生序》
  3. 华为交换机在Telnet登录下自动显示接口信息
  4. 日志服务Dashboard加速
  5. (转)petshop4.0中的Profile理解(匿名用户身份)
  6. 全国大学生电子设计竞赛综合测评硬件调试经验
  7. java读取Excel2016
  8. vos3000_v7.x版本的快速安装方法
  9. matlab小波分析
  10. 灰色系统理论概论(个人总结)
  11. SCCM配置PXE启动
  12. 谈谈三次握手四次挥手
  13. ERP软件选型经常遇到的四大情况
  14. windows cmd curl 中文乱码
  15. recurdyn和matlab联合仿真,recurdyn与simulink机电联合仿真,求助
  16. “摧龙八式——成功销售的八个步骤”笔记(上)
  17. /var/run/yum.pid 已被锁定 解决办法
  18. 摄像头显示与服务器通讯失败,家装摄像头有宽带合手机连接失败是什么原因,手机显示离线前几天还正常?...
  19. WPF关于Command绑定
  20. 【观察】“无影”云电脑:让澎湃算力触手可及,重新诠释云时代办公新物种...

热门文章

  1. 【CodeForces - 735B】Urbanization (找规律,思维)
  2. 机器学习笔记(六):正则化
  3. java 监听本地端口_Java-在本地端口上侦听RTP数据包
  4. 消息测试服务器,测试统一消息服务器功能
  5. python 升级所有库_自动更新Python所有第三方库
  6. 打印1-400以内 能同时被5和9 整数的数将这些数放入一个列表中,再输出这个列表
  7. SuperMap iDesktop 9D中实现地图配准
  8. python慢为什么用的人还很多_为什么是所有人比python标准慢得多吗?
  9. 游戏中DDA算法和Bresenham算法的应用
  10. NLP复习资料(2)-三~五章:形式语言、语料库、语言模型