【 Git 操作 】
廖雪峰大神 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 本地库初始化
- 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 基本命令操作
- 状态查看 git status
- 添加
git add
将单个文件添加到暂存区
git add .
将当前目录下所有修改或新增的文件全部添加到暂存区 - 提交
git commit
回车之后会进入到 vim 编辑器中,需要输入这次提交的日志
git commit -m “这次提交的日志”
回车之后直接提交了,不会进入 vim 中 - 查看历史记录
git log
列出从当前版本为止全部的提交日志,
如果一屏展示不下,可以使用键盘操作翻页。这时使用 Ctrl + C 退出不了。可以使用 q 来退出
git log --pretty=oneline
以一行的方式来列出
git log --oneline
以一行的方式来列出,commitId 比上一个更简短
git log -
列出最近的 num 条提交日志
git reflog
列出最近git的所有相关操作日志。版本前进时可以参考 - 版本回退与前进
版本回退的本质:
就是一个 HEAD 指针的操作
基于Commit Id操作 (推荐)
git reset --hard
使用 ^ 符号操作
git reset --hard HEAD^ 回退到当前版本的上一个版本
只能回退
使用 ~ 符号操作
git reset --hard HEAD~ 回退到当前版本的上 num 个版本
只能回退 - 撤销修改
工作区的修改: git checkout –
暂存区的修改:
1 git reset HEAD 撤销暂存区的修改
2 git checkout – 撤销工作区的修改
工作区的新增: 直接删除新增的文件即可 - 删除文件并找回
找回文件有个前提条件:要找回的文件以及被git管理起来了
使用版本回退相关的处理
2.4 分支管理 - 什么是分支
在版本控制过程中,使用多条线同时推进多个任务。 - 分支的好处
同时并行推进多个功能迭代,提高开发效率
并行的多个分支之间不会互相冲突 - 查看分支
查看本地仓库的分支情况
git branch
查看远程仓库的分支情况
git branch -r
查看本地与远程的所有分支情况
git branch -a - 创建分支
git branch <分支名字> 只是创建分支
git checkout -b <分支名字> 创建分支,并切换到新创建的这个分支上 - 切换分支
git checkout <分支名字>
注意:本地如果不存在这个分支,则会把远程的给弄下来,如果远程也没有,就报错 - 合并分支
先切换被合并的分支上。
使用 git merge <需要合并的分支> - 合并时解决冲突
原因:两个分支在同一个代码上的某一个位置做了修改,这些 git 合并时不知道该听那个分支的。
1 找到有冲突的文件
2 删除这个文件中的特殊标记
3 找到相应的开发人员去商量到底如何处理这个情况,用你的,还是用我的,或者两个都保留
4 git add
5 git commit - 删除分支
git branch -d <分支名字> 以及合并过的分支可以这样去删除
git branch -D <分支名字> 没有合并过的分支,但是里面有代码修改,使用 -d 删除,是删除不了的。确定要删除,就是用 -D
2.5 远程库(使用代码托管平台)
三个人
张三 (项目经理)
qf-zhangsan@yopmail.com
李四 (普通开发人员)
qf-lisi@yopmail.com
王五 (普通开发人员)
qf-wangwu@yopmail.com - 创建远程库
- 远程库与本地库关联
https
ssh
git remote add <远程连接别名,一般默认使用origin> <远程仓库的https地址或ssh地址> - 查看本地库与远程库的关联信息
git remote -v - 克隆远程库
李四加入到张三的公司,李四需要将Apple项目克隆到本地
张三给李四一个远程仓库的地址
李四使用 git clone <远程仓库的地址> 克隆项目到本地 - 推送 push
李四已经克隆了代码,张三让李四做一个登陆的功能。
不要直接在master上写代码,询问张三(老大)我基于那个分支做开发。
一个功能一天做不完,也需要每天下班之前提交推送一下。(有些公司老大要看看工作饱和度)
推送时权限错误:
需要加入到项目 - 抓取 fetch
git fetch <远程仓库连接别名> <远程仓库的分支名> - 合并 merge
处理问题之后,做merge - 拉取 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 的连接方式 - Git 工作流
1 集中式 大家全部都在一个分支上写代码master
2 git flow 不同分支用来干不同的操作
3 forking fork pull request 这套操作
【 Git 操作 】相关推荐
- git操作手册_基本的Git手册
git操作手册 介绍 (Introduction) Hi! I am Sanjula, and in this guide I hope to teach you a little bit about ...
- 手把手教你熟悉Git操作
文章目录 Git 一.版本控制 二.Windows安装Git 1. Git 安装 2. Git 一次性配置 三.理解Git文件的三种状态与工作模式 四.创建版本库并提交文件 1. 初始化git 2. ...
- GitHub防黑客新措施:弃用账密验证Git操作,改用token或SSH密钥,今晚0点执行
萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 还在用账户+密码对GitHub上的Git操作进行身份验证? 赶紧整个token(令牌)或SSH密钥吧! 8月14号0点(8月13日9:00 ...
- Git操作手册|命令速查表
Git操作手册|命令速查表 这篇文章主要介绍Git分布式版本管理与集中式管理的一些差异,总结下Git常用命令作为日后的速查表,最后介绍Git进阶的一些案例. 本文分为以下几个部分: Git与SVN差异 ...
- 【Tools】git操作总结
git操作总结 下载的工程带有子工程submodule: 当使用git clone下来的工程中带有submodule时,初始的时候,submodule的内容并不会自动下载下来的,此时,只需执行如下命令 ...
- Git操作常用的命令都在这里了
转载自 Git操作常用的命令都在这里了 创建仓库 git init 在当前目录执行,会生成 .git目录文件,这个和SVN一致. 提交到仓库 git commit -m "first com ...
- git 修改分支名字_基础Git操作与GitHub协作吐血整理,收好!| 原力计划
作者 | 光子俊来源 | CSDN博客出品 | CSDN(ID:CSDNnews) Git介绍 Git是目前世界上最先进的分布式版本控制系统,可以为我们管理项目.构建工程.多人协作提供便利,作为一个爱 ...
- 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 ...
- Intellij 中的git操作 转!
http://blog.csdn.net/lovesummerforever/article/details/50032937 Git原理以后会分章节介绍,本次主要说一下intellij怎样操作git ...
- eclipse git 取远程代码_IDEA中的Git操作,看这一篇就够了!
大家在使用Git时,都会选择一种Git客户端,在IDEA中内置了这种客户端,可以让你不需要使用Git命令就可以方便地进行操作,本文将讲述IDEA中的一些常用Git操作. SpringBoot实战电商项 ...
最新文章
- java.util.concurrent.locks.Lock文档说明
- 认识oracle监听器配置文件
- 我的docker随笔9:docker在centos上的安装
- word文字铺满页面_这5个Word问题,你会解决几个?
- OKExChain主网支持EVM,OKB、OKT都将成为“铲子”
- 使用MybatisPlus在实体中添加数据库表中不存在的字段
- b站学python_Python爬虫学习教程 bilibili网站视频爬取!【附源码】
- Security log is full,only administrator can log on to fix the problem(安全日志满了)
- 精选| 2019年2月R新包推荐
- 了解更多关于11gR2 diskmon
- 邮件服务器运维,什么是邮件服务器,邮件服务器详解
- esp8266使用BME280实时上传温湿度气压
- 华为策略路由,实现双线选路上网
- 破解百度云限速下载教程
- 小澳的葫芦(最短路)
- 2021年计算机视觉工程师学习路线
- Dynamics 365 多租户?多实例?
- carla学习笔记(七)
- 软件开发委托协议(个人)
- 区块链应用(去中心化应用)是什么样的?