Git基本介绍

2023-10-31

一.Git简介

Git是一个版本控制的工具,我们可以把每天的工作代码放到Git上,同时Git的特点是分布式的,可以搭建集群,以保证一个Git宕机,导致数据丢失,可以实现本地提交,避免网络问题造成不可使用的状况

SVN和Git的区别

1.SVN是集中式的版本控制,

2.Git是分布式的版本控制系统,每个人的电脑就是一个完整的版本库

版本控制工具分类

1.集中式版本控制工具

CVS,SVN等,这类工具是大家在修改代码的时候先更新最新的代码.然后将自己的代码添加进去.提交更新    这种思想的核心就是所有程序员修改的都是放在中央服务器上的同一套代码..

缺点:单点故障,如果中央服务器宕机,那么所有人都无法提交代码.代码系统就崩坏了

2.分布式版本控制

Git ,每个人本地都有一套完整代码,可以在本地做版本控制.  避免了单点故障影响开发

Git的工作机制

工作区就是本地磁盘上存储代码的位置.暂存区是写好代码通过git add 存放的地方(可以删除),本地库是通过git commit提交.会产生历史版本

Git代码托管中心:基于网络服务器的远程代码中心,一般称为远程库

局域网:Gitlab

互联网:GitHub .Gitee

Git的安装

下载地址:https://git-scm.com/download/win

默认设置,无脑下一步,详情见GitLab-尚硅谷教程

Git常用命令

git rm --cached  hello.txt                  删除暂存区的代码

git commit -m "提交信息"                 提交代码

 在最初要设置用户名和邮箱,作用是在后续代码提交知道是谁更改了代码

查看历史版本

1)基本语法

先查看历史版本信息 git reflog

回退版本:复制对应的版本号,执行命令git reset --hard 版本号 

Git分支

概念:在不影响代码运行的情况下,独立进行开发,不影响其他分支.

分支的操作

分支合并

1.正常合并,添加代码:直接先切换到master分支,然后在调用git merge 分支名

2.冲突合并:master和别的分支都对同一文件进行操作,合并时不知道文件该保存哪个分支的,所以出现冲突. 

这时候需要对文件进行手动修改,将修改后的文件进行add,commit,这时候commit不要跟文件名

Git的结构 

Head指向分支,分支指向版本

Git代码托管中心

1.GitHub

官网:GitHub: Let’s build from here · GitHub

创建新的远程库

GitBash上的远程库相关操作

查看远程库的别名

git remote -v

修改远程库的别名

git remote  add git-demo1(别名)   https://github.com/bozai110/Git-demo1.git(远程库链接) 

推送代码

git push 远程库名(链接或者别名) master(分支)

代码拉取

git pull  远程库名(链接或者别名) master(分支)

克隆代码

git clone https://github.com/bozai110/Git-demo1.git

克隆代码作用:1.拉取代码2.初始化本地仓库 3.取好别名origin

GitHub团队开发

团队开发需要将开发人员加入到一个组里才能协同开发,进行代码推送pull

跨团队协作开发

查找到别人的代码,然后fork到本地  

将代码克隆到本地后,进行修改,之后需要pull request,相当于把自己改的代码发送给它的团队

SSH免密登录

 在gitBash下执行该命令,然后敲击三次回车键,就会生成一个目录

在这个文件下面生成公钥和私钥,将公钥复制到gitHub上的ssh设置,

公钥添加成功

IDEA集成Git

1.环境配置

除掉无用的文件

.例如.idea下的xml ,这些文件和项目部署无关

怎么忽略这些文件

创建忽略文件git.ignore

在用户目录下创建git.ignore

然后在git.config文件中引用此文件

IDEA设置定位git

 IDEA继承Git主要操作依旧是add,commit,push,pull主要是图形化界面使得操作更加便捷

IDEA集成GitHub

通过口令登录 (需要在GitHub上设置口令)

然后在gitHub上设置口令

push之前一定要先pull!!!!因为一定要在最新版本的代码基础上才能推送本地现有的代码,这样才有意义,不然把别人新更新的代码给覆盖了

国内代码托管中心 Gitee--码云

Gitee操作基本与GitHub相同,而且速度很快.同时Gitee支持通过http连接直接从gitHub仓库中导过来

企业代码托管中心---GitLab

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git基本介绍 的相关文章

  • 将 git dcommits 切换到 svn 分支

    I had master dcommit到 和rebase来自 颠覆trunk 我创建了一个中间 Subversion 分支tc 合并来自 2 个不同分支的更改 使用 git branch master git svn branch tc
  • Xcode - 使用 SSH 身份验证添加存储库时出现身份验证失败错误

    我正在尝试通过 Xcode gt 设置 gt 帐户添加存储库 但我被困在正确的地址上 我们的存储库地址非常简单 my domain com port project name 通过 SSH 密钥进行身份验证 有人可以帮助我了解这里发生了什么
  • git 忽略行结尾

    我知道已经有人问过类似的问题 但我仍然无法让它发挥作用 我的项目在使用不同操作系统的人之间共享 而我使用的是 OSX 另外 并不是每个人都使用 git 有时我最终不得不提交其他人的更改 有时 git 会突然说有待处理的更改 查看文件 它们看
  • 回购:找不到命令?

    我是 git 和 repo 的新手 我使用的是window 7 所以我使用cygwin 我已经从 cygwin 安装程序安装了 git 之后我尝试在 cygwin 中使用以下命令进行存储 repo init u git android gi
  • 将各种提交合并为一而不合并

    是否可以加入各种提交 这是我的情况 我的应用程序在 OSX 10 6 和 10 7 中运行 我已经修复了 10 6 的一些内容 然后提交了 更改为 10 7 并再次修复修复程序 以便它们兼容 然后再次提交 然后返回到 10 6 并再次检查并
  • git 查找胖提交

    是否可以获取有关每次提交中的更改浪费了多少空间的信息 以便我可以找到添加了大文件或大量文件的提交 这一切都是为了尝试减少 git repo 的大小 变基并可能过滤提交 你可以这样做 git ls tree r t l full name H
  • 包括来自raw.github.com的js

    我有一个 github com 演示页面 链接到https raw github com master file js https raw github com master file js这样我就不需要总是复制 js文件转移到gh pag
  • Git 日志历史记录

    对于版本控制来说 重要的一件事是知道谁做了什么更改 如果某些内容发生了变化 而我不知道为什么要进行更改 我会查看历史并询问进行更改的人 当我探索 git 时 让我对这个功能有点紧张的一件事是它似乎很容易伪造 是什么阻止我将同事姓名 电子邮件
  • 将更改从通用差异导入 git 存储库

    我正在尝试将更改从一个源代码控制系统 专有且复杂 导入到 git 存储库中 我目前正在通过运行一个脚本来执行此操作 该脚本只是按顺序同步到每个修订版并将其提交到 git 存储库 但由于各种原因 这已变得不可行 对于每个修订版 我都可以获得描
  • 如何保持 git 存储库的公共和私有版本同步?

    我正在 Github 上发布一个开源 Rails 应用程序 可能是 MIT 许可证 我还想维护一个项目的私人分支 分支 我们将使用它作为付费服务的一部分 在这种情况下组织存储库的最佳方式是什么 而且 当我有两个项目的更新时 如何保持项目同步
  • 在单独的终端屏幕上显示 git diff 和 git log 输出

    设置新的开发环境后 我遇到了一个奇怪的 git 行为 我不记得过去见过 我习惯于git diff and git log在终端中创建一个新屏幕并在其中显示其输出 什么less默认情况下 我用它作为我的寻呼机 然后我可以退出并返回到之前的终端
  • git apply 不对文件进行任何更改

    我必须对我的存储库应用补丁并正在运行 git apply directory PWD xxxxx patch 由于我不会详细讨论的原因 我无法使用git am在这种情况下 我需要使用目录标志 吉特告诉我 gt git apply direc
  • 中止 `git stash apply` [重复]

    这个问题在这里已经有答案了 我很遗憾应用了存储 错误的分支 我如何撤消此操作并将我的存储返回到我的存储列表 以便稍后将其应用到正确的分支 如果你还没有承诺 你应该能够git stash再次 可能与git reset HEAD first A
  • Git Add - 致命:添加文件失败

    我的 git cmd exe 窗口如下所示 git add NextFolder error unable to create temporary file No such file or directory error NextFolde
  • git log 不按时间顺序排列

    我在一个公共项目 B2G 又名 FirefosOS 上意外发现 git log 输出不是按时间顺序排列的 git clone https git mozilla org releases gecko git git log graph fo
  • Git 身份验证 - 以新用户身份拉取

    以下命令集可以正常工作 mkdir carboncake cd carboncake git init git remote add origin email protected cdn cgi l email protection rep
  • 如何从 github 安装需要构建步骤的 npm 包,例如什么时候分叉一个库?

    假设您使用类似的库vue3 datepicker https www npmjs com package vue3 datepicker 您意识到您需要自定义某些内容 并且作为第一步 您想要使用它的自定义分支 问题是 当包被推送到 npm
  • Windows 上的 git 忽略文件名大小写更改 [重复]

    这个问题在这里已经有答案了 我有一个reactjs应用程序 我正在将所有文件名标准化为小写以符合Nodejs 最佳实践 https devcenter heroku com articles node best practices stic
  • 运行 flutter doctor 吐出错误:标准错误:致命:坏对象 HEAD

    我已经从官方网站安装了 Flutter 和 Android Studio 我是 Git GitHub 移动开发和 Android 开发的新手 我试图在命令提示符 Windows 10 中运行 flutter doctor 命令 但是 它会以
  • 如何列出未推送的 Git 提交(本地但不在源上)

    如何查看我所做的 尚未推送到远程存储库的任何本地提交 偶尔 git status将打印出我的分支是X提交之前origin master 但不总是 这是我安装的 Git 的错误 还是我遗漏了什么 这给出了 origin master 和 HE

随机推荐

  • Quartus II 操作入门

    使用Quartus设计FPGA 简单包括以下流程 新建工程 写代码 编译工程 找错误 分配引脚 重编译 下载配置 到硬件 为保证设计的正确性 在编译后 一般还需要做仿真验证 然后下载至硬件 有两种仿真方式 功能仿真 时序仿真 新建工程 写代
  • (数学)GCD总结

    目录 简介 算法实现 代码 应用 简介 GCD即Greatest Common Divisor 例如 12和30的公约数有 1 2 3 6 其中6就是12和30的最大公约数 两个整数的最大公约数主要有两种寻找方法 两数各分解质因子 然后取出
  • Python + Selenium 练习篇 - 获取页面所有邮箱

    代码如下 coding utf 8import re python中利用正则 需要导入re模块from selenium import webdriverdriver webdriver Chrome driver maximize win
  • [python爬虫] BeautifulSoup和Selenium对比爬取豆瓣Top250电影信息

    这篇文章主要对比BeautifulSoup和Selenium爬取豆瓣Top250电影信息 两种方法从本质上都是一样的 都是通过分析网页的DOM树结构进行元素定位 再定向爬取具体的电影信息 通过代码的对比 你可以进一步加深Python爬虫的印
  • Spring boot 注册过滤器的方式

    方式一 import jakarta servlet import jakarta servlet annotation WebFilter import java io IOException WebFilter public class
  • mysql 多线程查询全部数据_python使用多线程查询数据库的实现示例

    一 背景 当数据量过大时 一个程序的执行时间就会主要花费在等待单次查询返回结果 在这个过程中cpu无疑是处于等待io的空闲状态的 这样既浪费了cpu资源 又花费了大量时间 当然这里主要说多线程 批量查询不在考虑范围 总会存在不能批量查询的情
  • 使用Windows的cmd命令打包java项目为jar文件

    在操作前请确保你的电脑已配置java环境 即在环境变量中添加jdk的bin的路径 首先运行java文件检查源码是否有误 生成 class后在当前目录下打开cmd窗口 输入jar help检查环境是否配置好 如出现 无法将 jar help
  • 为什么使用$.ajax()中的data传参到后台取值为null

    注意 在调试时可以使用FF浏览器 因为他可以在调试时查看到请求中的内容和详情 场景如下 ajax url business RuleDef getKylinChartData 请求地址 type POST 请求类型 cache false
  • deepfake-faceswap第一篇论文-2016摘要

    核心目标 给定一个人的单张图片A 另一个人的单张图片B 在保持姿势 面部表情 视线方向 发型和光照不变的条件下 将A图片中的人物换成B图片中的人物 2016年 文章 1 实现了这个目标 德国的蒂宾根大学L A Gatys小组实现了对图片艺术
  • 2023华为od机试B卷【计算误码率】

    题目描述 误码率是最常用的数据通信传输质量指标 它可以理解为 在多少位数据中出现一位差错 移动通信 网络中的误码率主要是指比特误码率 其计算公式如下 比特误码率 错误比特数 传输总比特数 为了简单 我们使用字符串来标识通信的信息 一个字符错
  • 计算机组成原理大题简答题,常见问题总结(必背)

    计算机中采用二进制主要原因 技术实现简单 计算机由逻辑电路组成 逻辑电路通常只有两个状态 开关的接通与断开 这两种状态正好可以用 1 和 0 表示 简化运算规则 两个二进制数和 积运算组合各有三种 运算规则简单 有利于简化计算机内部结果 提
  • 环球新材国际:新业务增长点不断凸显 未来业绩增长稳定可期

    11月13日 环球新材国际 6616 HK 发布自愿性公告 披露了业务发展最新情况 从公告内容不难发现 未来公司有几大强力增长点 首先 在新能源电池业务方面年内已实现重大突破 尤其是在中期业绩报告中已有初具规模的收入体现 且具有十分乐观的未
  • base64编码上传图片java后台接收实例

    思路 前台传以data image jpeg base64 开头的base64编码的String字符串 后台接收字符串以后先进行base64解码 decodeBuffer 转换成二进制编码 然后使用字节输出流FileOutputStream
  • 杂记——记录一次参加华为OD研发岗位的面试过程

    流程 一 在线机试 二 性格测试 三 技术一面 四 技术二面 五 技术三面 六 资格面试 七 综合面试 关于od 自己去论坛上面看吧 褒贬不一 自个儿衡量 一 在线机试 1 在 牛客网 上完成三道题目 多是字符串和排列相关的题目 总分在15
  • GRIDVIEW多行多列合并单元格(合并列)

    GitHub项目地址 https github com mingceng merge gridviewcell 去年的时候 我写了两篇文章 GridView多行多列合并单元格 完整代码和例子 和 GridView多行多列合并单元格 指定列合
  • 13.Linux下sbt编译打包Spark程序 和 Maven编译打包Scala程序

    本案例软件包 链接 https pan baidu com s 1zABhjj2umontXe2CYBW DQ 提取码 1123 若链接失效在下面评论 我会及时更新 目录 1 sbt编译打包 1 创建文件夹 2 在 sparkapp src
  • 无法将“gulp”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 gulp报错

    最近在项目中使用到Gulp 官网https www gulpjs com cn docs getting started 在用vscode去打包项目过程中 执行在gulpfile文件中定义的指令 gulp clean 报错如下 gulp 无
  • LeetCode-在O(1)时间删除链表结点

    本题没有给出前驱节点 所以不能采用让前驱节点的next指针指向当前节点的next指针这种方法 因为当前节点不是最后一个节点 所以下一个节点一定不是空节点 我们可以采用 用下一个节点的值把当前节点的覆盖掉 并且把下一个节点删掉 效果与删除当前
  • (一)图像的表示与通道数问题、读取并展示图片

    图像的表示与通道数问题 数字图像的基本概念 对于一幅的数字图像 我们看到的是 肉眼可见的一幅真正的图片 但是计算机看来 这副图像只是一堆亮度各异的点 一副尺寸为 M N 的图像可以用一个 M N 的矩阵来表示 矩阵元素的值表示这个位置上的像
  • Git基本介绍

    一 Git简介 Git是一个版本控制的工具 我们可以把每天的工作代码放到Git上 同时Git的特点是分布式的 可以搭建集群 以保证一个Git宕机 导致数据丢失 可以实现本地提交 避免网络问题造成不可使用的状况 SVN和Git的区别 1 SV