廖雪峰大神 Git 教程
Git-flow 包教不包会
阮一峰-常用 Git 命令清单
1、Git 简介
1.1 Git 是什么
目前世界上最先进的分布式版本控制系统
1.2 版本控制
链接
1.3 集中式 vs 分布式
• 集中式版本控制工具:
CVS、SVN、VSS、…
• 分布式版本控制工具:
Git、Mercurial、Bazaar、Darcs、…
1.4 Git 简史
1.5 Git 工作区、暂存区、版本库
工作区:写代码 --> git add --> 暂存区 --> git commit --> 版本库
1.6 Git和他的好基友(GitHub、Gitee、GitLab)
git 版本控制工具
github、gitee、gitlab 远程的代码托管平台
gitlab 一般是公司内部通过这玩意去在公司内部搭建一个代码托管平台。
1.7 GIt 安装
官网下载地址
国内淘宝镜像下载地址
2. Git 命令行操作
zhangsan 项目老大
lisi 项目新成员
2.1 本地库初始化

  1. git init
    会生成一个 .git 隐藏文件夹,不要对这个文件夹进行操作,不然本地库就坏了。
    如果我们想要把一个项目的版本库给去掉从新初始化的时候,就直接删除这个 .git 文件夹。重新 git init 操作
    2.2 配置用户信息 !!!!
    问题:提交代码时会出现下面的问题
    原因:没有配置用户信息
    配置作用:区分不同开发人员的身份
    配置方式:
    a. 项目级别/仓库级别
    git config user.name “你的名字”
    git config user.email “你的邮箱”

配置信息在当前项目的 .git/config 文件中

b. 系统用户级别
git config --global user.name “你的名字”
git config --global user.email “你的邮箱”

配置信息存放在 系统的用户目录下 C:\Users<当前系统的用户名> .gitconfig 文件

优先级:项目级别 > 系统级别
2.3 基本命令操作

  1. 状态查看 git status
  2. 添加
    git add
    将单个文件添加到暂存区
    git add .
    将当前目录下所有修改或新增的文件全部添加到暂存区
  3. 提交
    git commit
    回车之后会进入到 vim 编辑器中,需要输入这次提交的日志
    git commit -m “这次提交的日志”
    回车之后直接提交了,不会进入 vim 中
  4. 查看历史记录
    git log
    列出从当前版本为止全部的提交日志,
    如果一屏展示不下,可以使用键盘操作翻页。这时使用 Ctrl + C 退出不了。可以使用 q 来退出
    git log --pretty=oneline
    以一行的方式来列出
    git log --oneline
    以一行的方式来列出,commitId 比上一个更简短
    git log -
    列出最近的 num 条提交日志
    git reflog
    列出最近git的所有相关操作日志。版本前进时可以参考
  5. 版本回退与前进
    版本回退的本质:
    就是一个 HEAD 指针的操作
    基于Commit Id操作 (推荐)
    git reset --hard
    使用 ^ 符号操作
    git reset --hard HEAD^ 回退到当前版本的上一个版本
    只能回退
    使用 ~ 符号操作
    git reset --hard HEAD~ 回退到当前版本的上 num 个版本
    只能回退
  6. 撤销修改
    工作区的修改: git checkout –
    暂存区的修改:
    1 git reset HEAD 撤销暂存区的修改
    2 git checkout – 撤销工作区的修改
    工作区的新增: 直接删除新增的文件即可
  7. 删除文件并找回
    找回文件有个前提条件:要找回的文件以及被git管理起来了
    使用版本回退相关的处理
    2.4 分支管理
  8. 什么是分支
    在版本控制过程中,使用多条线同时推进多个任务。
  9. 分支的好处
    同时并行推进多个功能迭代,提高开发效率
    并行的多个分支之间不会互相冲突
  10. 查看分支
    查看本地仓库的分支情况
    git branch
    查看远程仓库的分支情况
    git branch -r
    查看本地与远程的所有分支情况
    git branch -a
  11. 创建分支
    git branch <分支名字> 只是创建分支
    git checkout -b <分支名字> 创建分支,并切换到新创建的这个分支上
  12. 切换分支
    git checkout <分支名字>
    注意:本地如果不存在这个分支,则会把远程的给弄下来,如果远程也没有,就报错
  13. 合并分支
    先切换被合并的分支上。
    使用 git merge <需要合并的分支>
  14. 合并时解决冲突
    原因:两个分支在同一个代码上的某一个位置做了修改,这些 git 合并时不知道该听那个分支的。
    1 找到有冲突的文件
    2 删除这个文件中的特殊标记
    3 找到相应的开发人员去商量到底如何处理这个情况,用你的,还是用我的,或者两个都保留
    4 git add
    5 git commit
  15. 删除分支
    git branch -d <分支名字> 以及合并过的分支可以这样去删除
    git branch -D <分支名字> 没有合并过的分支,但是里面有代码修改,使用 -d 删除,是删除不了的。确定要删除,就是用 -D
    2.5 远程库(使用代码托管平台)
    三个人
    张三 (项目经理)
    qf-zhangsan@yopmail.com
    李四 (普通开发人员)
    qf-lisi@yopmail.com
    王五 (普通开发人员)
    qf-wangwu@yopmail.com
  16. 创建远程库
  17. 远程库与本地库关联
    https
    ssh
    git remote add <远程连接别名,一般默认使用origin> <远程仓库的https地址或ssh地址>
  18. 查看本地库与远程库的关联信息
    git remote -v
  19. 克隆远程库
    李四加入到张三的公司,李四需要将Apple项目克隆到本地
    张三给李四一个远程仓库的地址
    李四使用 git clone <远程仓库的地址> 克隆项目到本地
  20. 推送 push
    李四已经克隆了代码,张三让李四做一个登陆的功能。
    不要直接在master上写代码,询问张三(老大)我基于那个分支做开发。
    一个功能一天做不完,也需要每天下班之前提交推送一下。(有些公司老大要看看工作饱和度)
    推送时权限错误:
    需要加入到项目
  21. 抓取 fetch
    git fetch <远程仓库连接别名> <远程仓库的分支名>
  22. 合并 merge
    处理问题之后,做merge
  23. 拉取 pull
    pull = fetch + merge
    2.6 团队间协作开发
    2.7 跨团队协作开发
    一、对某个开源代码感兴趣
    1 将这个开源的项目 fork 一份到我的远程仓库
    2 clone 我 fork 的这个项目到本地
    3 写好代码推送到自己的远程
    4 创建 pull request
    2.8 ssh免登录
    1 需要先查看本地电脑是否有 ssh 相关的东西 (用户目录下是否有 .ssh 的文件夹)。有就先删除吧。
    2 创建 ssh key
    ssh-keygen -t rsa -C “邮箱地址”
    3 接着在 用户目录下找到 .ssh 文件夹中的 id_rsa.pub 这个文件
    4 复制 id_rsa.pub 中的内容
    5 去远程托管平台上添加 ssh
    1 这时克隆项目时就可以直接选择使用 ssh 的方式
    2 先将本地的https的连接方式给删除,换成 ssh 的连接方式
  24. Git 工作流
    1 集中式 大家全部都在一个分支上写代码master
    2 git flow 不同分支用来干不同的操作
    3 forking fork pull request 这套操作

【 Git 操作 】相关推荐

  1. git操作手册_基本的Git手册

    git操作手册 介绍 (Introduction) Hi! I am Sanjula, and in this guide I hope to teach you a little bit about ...

  2. 手把手教你熟悉Git操作

    文章目录 Git 一.版本控制 二.Windows安装Git 1. Git 安装 2. Git 一次性配置 三.理解Git文件的三种状态与工作模式 四.创建版本库并提交文件 1. 初始化git 2. ...

  3. GitHub防黑客新措施:弃用账密验证Git操作,改用token或SSH密钥,今晚0点执行

    萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 还在用账户+密码对GitHub上的Git操作进行身份验证? 赶紧整个token(令牌)或SSH密钥吧! 8月14号0点(8月13日9:00 ...

  4. Git操作手册|命令速查表

    Git操作手册|命令速查表 这篇文章主要介绍Git分布式版本管理与集中式管理的一些差异,总结下Git常用命令作为日后的速查表,最后介绍Git进阶的一些案例. 本文分为以下几个部分: Git与SVN差异 ...

  5. 【Tools】git操作总结

    git操作总结 下载的工程带有子工程submodule: 当使用git clone下来的工程中带有submodule时,初始的时候,submodule的内容并不会自动下载下来的,此时,只需执行如下命令 ...

  6. Git操作常用的命令都在这里了

    转载自 Git操作常用的命令都在这里了 创建仓库 git init 在当前目录执行,会生成 .git目录文件,这个和SVN一致. 提交到仓库 git commit -m "first com ...

  7. git 修改分支名字_基础Git操作与GitHub协作吐血整理,收好!| 原力计划

    作者 | 光子俊来源 | CSDN博客出品 | CSDN(ID:CSDNnews) Git介绍 Git是目前世界上最先进的分布式版本控制系统,可以为我们管理项目.构建工程.多人协作提供便利,作为一个爱 ...

  8. Git操作失败并提示Another git process seems to be running in this......

    问题: Git操作的过程中突然显示Another git process semms to be running in this repository, e.g. an editor opened b ...

  9. Intellij 中的git操作 转!

    http://blog.csdn.net/lovesummerforever/article/details/50032937 Git原理以后会分章节介绍,本次主要说一下intellij怎样操作git ...

  10. eclipse git 取远程代码_IDEA中的Git操作,看这一篇就够了!

    大家在使用Git时,都会选择一种Git客户端,在IDEA中内置了这种客户端,可以让你不需要使用Git命令就可以方便地进行操作,本文将讲述IDEA中的一些常用Git操作. SpringBoot实战电商项 ...

最新文章

  1. java.util.concurrent.locks.Lock文档说明
  2. 认识oracle监听器配置文件
  3. 我的docker随笔9:docker在centos上的安装
  4. word文字铺满页面_这5个Word问题,你会解决几个?
  5. OKExChain主网支持EVM,OKB、OKT都将成为“铲子”
  6. 使用MybatisPlus在实体中添加数据库表中不存在的字段
  7. b站学python_Python爬虫学习教程 bilibili网站视频爬取!【附源码】
  8. Security log is full,only administrator can log on to fix the problem(安全日志满了)
  9. 精选| 2019年2月R新包推荐
  10. 了解更多关于11gR2 diskmon
  11. 邮件服务器运维,什么是邮件服务器,邮件服务器详解
  12. esp8266使用BME280实时上传温湿度气压
  13. 华为策略路由,实现双线选路上网
  14. 破解百度云限速下载教程
  15. 小澳的葫芦(最短路)
  16. 2021年计算机视觉工程师学习路线
  17. Dynamics 365 多租户?多实例?
  18. carla学习笔记(七)
  19. 软件开发委托协议(个人)
  20. 区块链应用(去中心化应用)是什么样的?

热门文章

  1. APICloud数据云3.0使用教程
  2. FPGA之VGA转HDMI之编码模块的编写
  3. 基于微信小程序房屋出租民宿预定app设计
  4. c语言程序小猪佩奇,使用canvas 代码画小猪佩奇(示例代码)
  5. icewm+rox-filer美化过程(转)
  6. 电脑连接打印机并共享及其他打印机连接
  7. dbc批量插入、批量删除、批量更新
  8. 你的春节放假通知邮件发送了吗?邮件自动回复设置
  9. 人工智能作业 - A*算法程序求解八数码
  10. Python进阶【第一篇】socket