git 基本使用

2023-11-05

git和svn的区别

svn的特点是集中式,工程文件全部放在中央服务器的一个唯一库上,管理员对开发者的权限有掌控,每个人都只能拉取和开发属于自己的模块,且提交按照文件进行存储,有网络要求

git的特点是分布式,每个开发者都能把全部工程文件拉取下来,每一台开发者电脑都是一个完整的库,可以等开发全部完成后再全部推送至远程

git 相比svn的优势是:

  1. 资源安全性,当某个开发者的文件资源损坏时,可以从别的地方再拉取一份

  2. 提交不受网络限制,当工作完成后可以等有网络时再提交

git 相比svn的劣势是:

  1. 数据安全性,每一个开发者都有一个完整的库,难以做到权限分配

  2. 使用难度相对svn更难

git 使用

首先第一步当然是下载并安装git

打开下载好的安装程序 一路默认选项安装即可

当右键任意地方 出现这两个选项的时候,说明git就安装成功了

进行全局配置

打开git bash 执行

git config --global user.name "username" 

 git config --global user.email "useremail"

配置用户名和邮箱(双引号里就是你自己github上面的账号,如果没有需要去注册一个)

本地操作

git大致可分为本地操作跟远程操作,首先来讲本地操作

初始化工作区

右键打开git bash 输入 git init 会生成一个.git 文件 说明初始化成功

提交到本地仓库

添加到暂存区

在git bash中执行 git add .或者git add 需要添加的文件名

添加到本地库

在git bash中执行 git commit -m "备注" . 把暂存区中的文件提交到本地库 至此文件就被成功的提交到了本地库

查看及修改工作区状态

查看工作区文件状态

执行git status 即可查看当前文件夹的文件状态

出现以下信息时,说明当前工作区处于master分支,且文件已全部被提交至本地库

查看历史记录

执行git log可查看到所有的提交记录,及提交信息

但是这种显示方式显示的信息太多太臃肿,对阅读体验不友好,我们可以换一种显示方式

执行git reflog 查看

这时我们就能清晰的看到我们想要的信息

版本回退

当出现了不可修改的bug 或者需要找回本地库中被删除的文件时,可以进行版本回退,例如我想要回到 第一个版本的状态 则执行 git reset --hard d316950

--hard 参数 当本地库发生版本变动的时候 工作区和暂存区也会改变 --mixed参数 当本地库发生版本变动的时候 暂存区也会改变 但是工作区不会变化(不常用) --soft参数 当本地库发生版本变动的时候 暂存区和工作区不会变化(不常用)

后面那串数字就是历史版本对应的索引值

分支操作

查看当前分支 git branch -v 创建分支 git branch 分支名 切换至指定分支 git checkout 分支名 当需要合并分支时,需要先切换到master主分支,随后执行 git merge 分支名

如果有冲突时,需要手动解决冲突,然后提交

远程操作

创建GitHub仓库并复制https地址

在本地为此仓库添加别名

执行 git remote add 别名 地址

查看已添加的别名,确保别名成功添加进去

执行 git remote -v

这时就可以将本地库推送至远程库了

执行 git push 别名 远程库分支名

克隆GitHub

当我们需要克隆大佬写的东西时 可执行 git clone https地址

免密操作

当我们往远程库推送时,会需要你输入账号密码,这样每次都输入就会很麻烦,我们可以生成ssh来一劳永逸

执行 ssh-keygen -t rsa -C 你的GitHub邮箱

会在你的 c盘/用户/用户名/.ssh 文件夹下 生成 id_rsaid_rsa.pub两个文件

将生成的密钥信息添加至GitHub

在GitHub设置页中新添 ssh密钥

将id_rsa.pub中的密钥复制进去即可

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

git 基本使用 的相关文章

  • 代表 Git 存储库的数学结构是什么

    我正在学习 Git 如果我能描述一下代表 Git 存储库的数学结构 那就太好了 例如 它是一个有向无环图 它的节点代表提交 它的节点有代表分支等的标签 每个节点最多一个标签 没有标签使用两次 我知道这个描述不正确 我只是想解释我正在寻找的内
  • 为什么我无法创建/签出该分支?

    我正在尝试创建本地 Git 分支 但它不起作用 以下是我正在使用的命令 tablet edit11 git checkout b edit 11 Switched to a new branch edit 11 tablet edit11
  • 如何正确使用“mvn release:prepare”?

    我尝试了这个命令 用dryrun在我的 Maven 项目上进行测试 mvn release clean release prepare DdryRun true DgenerateBackupPoms false Dtag solocal
  • Git:发送电子邮件而不提交

    我有一个项目 我做了更改 并想使用 git send email 功能将它们发送给另一个用户 我发现它可以通过发送补丁来工作 由git format patch每次提交 是否可以只发送diff的 我不想先提交 然后发送补丁 是否有gitfo
  • Composer 用于下载私有 GitHub 存储库

    我无法使用 Composer 下载 github 私人存储库 php composer phar update 我收到以下错误 The https api github com repos company private1 https ap
  • git 别名中的 AWK 语句

    我正在尝试创建一个 git 别名来以特定格式打印日志中的所有拉取请求 但是 我在使用 AWK 删除双空格时遇到问题 这是使用以下命令的 git log 的输出 git log merges grep pull request pretty
  • Git - 创建拉取请求而不分叉

    使用 git 已经有一段时间了 关于 git pull request 有很多教程和解释 其动机是什么等等 我遇到两种情况 1 分叉 git 仓库 我查看了一些公共 git 存储库并决定我想要做出贡献 所以我 通过以下方式创建重复的存储库F
  • Ansible bitbucket 克隆存储库配置 ssh 错误

    我之前发布过这个问题 但那里的答案不再有效 总之 当使用 Ansible 配置我的 vagrant box 时 在尝试使用 ssh 克隆我的 bitbucket 私有存储库时 我遇到了一个神秘的错误 该错误指出 权限被拒绝 公钥 然而 如果
  • 我可以直接从我的谷歌云端硬盘在线推送/拉取吗?

    有一些方法可以通过谷歌驱动器同步 Windows 应用程序将我的本地 git 存储库同步到我的谷歌驱动器 但我想知道我是否可以完全绕过它的需要 Fro eg git remote add origin https drive google
  • 无法从 Sourcetree 拉取 Git 远程存储库

    我生成了 ssh 密钥并配置了我的 git 和 SourceTree 我可以 git pull 并从 Git bash 执行其他操作 注意 我在 bashrc 中添加了以下内容以使其正常工作 eval ssh agent ssh add 然
  • git 日志历史记录图,每次提交一行,彩色,带有日期

    我需要的格式如下 git log decorate graph oneline date order 但我也需要它 包含日期 短 具有相同的颜色 I tried git log decorate graph oneline date ord
  • Git 在哪里存储标签?

    Git 在哪里存储标签 我执行 git tag v0 1 0 v0 10 0 v0 11 0 但目录 git refs tags是空的 Git 将这些标签存储在哪里 谢谢 它们也可以存储在 git packed refs
  • Git - 如何将整个目录恢复到特定提交(删除任何添加的文件)

    我想恢复 git 中的目录 恢复其中的所有文件 并删除自该提交以来添加的所有文件 进行结账似乎只能满足我的第一个要求 但不会删除任何文件 我想出了最简单的解决方案 git rm path to dir git checkout
  • 仅使用 Git grep 的文件名

    我只想查看文本中包含特定单词的不同文件 current directory git grep word 显示文件中具有匹配单词的每一行 所以我尝试了这个 current directory git grep word files with
  • 将更改从一个分支复制到另一个分支

    我有一个分支名为BranchA from master 我有一些改变BranchA 我不会合并来自BranchA to master 现在我创建了另一个分支master named BranchB 我如何复制更改BranchA to Bra
  • Eclipse Git 关键字扩展

    每次我检查 git hub 服务器的源代码时 我都需要更新源代码修订关键字 version date 等 你可能知道 Git 中的主要问题是你无法使用以下命令修改文件 提交后有关提交的信息 因为 Git 首先对文件进行校验 基本上我想要实现
  • git 是否有任何静态接口?

    我一直在寻找一个宁静的 git api 但似乎没有找到 我得到的最接近的是 Github 的 api 来访问一些存储库信息 还有其他的实施吗 Orion Git API http wiki eclipse org Orion Server
  • 部分共享git仓库

    我是 git 新手 我想知道是否支持以下场景 如果支持的话如何支持 即用于设置和更新的 git 命令 可以从三个不同的地方获取存储库 本地 镜像 和 github mirror 完全镜像 local github 镜像 local 但 受版
  • git merge 冲突的不同场景

    我试图了解 git 合并后可能发生 git 冲突的情况以及如何避免它们 我创建了一个 git 存储库并向其中添加了一个文本文件 我已将 1 添加到文本文件中并将其提交给 master 我已经从 master 创建了一个新分支 分支 2 并将
  • 有没有一个简单的命令可以将分支转换为标签?

    我即将完成将 哑快照 转换为 git 的繁琐过程 这个过程进展得非常顺利 感谢这个重命名过程 https stackoverflow com questions 6628539 how to tell git that its the sa

随机推荐

  • Vue安装less报错

    使用npm安装less 指定版本为5 npm install save less less loader 5 报错 npm ERR code ERESOLVE npm ERR ERESOLVE unable to resolve depen
  • 渗透测试面试题--日更(1-9day)

    day one 1 拿到一个待检测的web站 渗透测试思路 答 1 信息收集 获取域名的whois信息 获取注册者的邮箱姓名电话等 查服务器的旁站以及子域名站点 因为主站一般比较难 所以可以先看看旁站有没有通用cms或者其他漏洞 查看服务器
  • 华为OD机试真题-单词接龙-2023年OD统一考试(B卷)

    题目描述 单词接龙的规则是 可用于接龙的单词首字母必须要前一个单词的尾字母相同 当存在多个首字母相同的单词时 取长度最长的单词 如果长度也相等 则取字典序最小的单词 已经参与接龙的单词不能重复使用 现给定一组全部由小写字母组成单词数组 并指
  • 基于高德地图API — 绘制热力图初尝试

    初次了解高德地图 并尝试在地图的基础上绘制热力图 官方传送链接高德开放平台 前提准备 点击注册开发者账号 登录成功后 点击左侧菜单栏 应用管理 如图所示 点击 添加 获取API 服务平台 一项请选择 Web 端 JSAPI 回到页面 引入文
  • 基于DAC0832的信号发生器设计与实现(源码+原理图+PCB)

    摘要 本课题设计了一个基于DAC0832的信号发生器 使之输出不同频率的正弦波 三角波 锯齿波和方波 并通过按键切换不同的波形 也可以改变频率以及频率变化的步进 本方案选择了DAC0832作为核心芯片 并与51单片机结合 设计出一款建议的高
  • 共识算法1--工作量证明机制简介及算法实现

    共识算法1 工作量证明机制简介及算法实现 所谓 共识机制 是通过特殊节点的投票 在很短的时间内完成对交易的验证和确认 对一笔交易 如果利益不相干的若干个节点能够达成共识 我们就可以认为全网对此也能够达成共识 1 当前 已有多种常见的共识机制
  • 【GO】详解GOROOT和GOPATH

    GOROOT 其实就是golang 的安装路径 当你安装好golang之后其实这个就已经有了 GOPATH 作用 存放sdk以外的第三方类库 自己收藏的可复用的代码 目录结构 GOPATH目录约定有三个子目录 3 src存放源代码 比如 g
  • 蚀刻后残留物和光刻胶去除技术

    摘要 在未来几代器件中 去除光刻胶和残留物变得非常关键 在前端线后离子注入 源极 漏极 扩展 使用PR来阻断部分电路导致PR基本上硬化并且难以去除 在后端线 BEOL 蚀刻中 除低k材料的情况下去除抗蚀剂和残留物的选择性非常具有挑战性 介绍
  • uniapp select 多选选择器封装

    前言 作者想实现的功能类似一个uniapp选择器 但是可以选择多个值 同时又可以单选和全选 在uniapp 的UI框架去找 发现没有类似的 最后在uniapp 的插件市场找到了这个multiple select 里面的功能比较全实现了单选全
  • MySQL 多表连接查询

    交叉连接 特点 又称 笛卡尔乘积 将多张表中的数据行一 一对应连接在一起 结果集的数据行数相当于多张表数据行数 相乘 后的结果 语法格式 select 字段列表 from 表1 表2 表3 where 连接条件1 and 连接条件2 注释
  • Windows7下安装Caffe(GPU):试了很久的失败版本(可参考)

    这是个失败的版本 既然记录下来了 就保留下来 总体来说没错 只是可能CUDA版本不合适 可以参考下 一 安装CUDA 1 下载 https developer nvidia com cuda downloads 2 正常安装 出现这个问题
  • Ant Design学习1——概述

    2021SC SDUSC 介绍 Ant Design of React antd 是基于 Ant Design 设计体系的 React UI 组件库 主要用于研发企业级中后台产品 官方简介 蚂蚁集团的企业级产品是一个庞大且复杂的系统 数量多
  • MyEclipse提示过期,MyEclipse Subscription Expired激活方案

    一 错误描述 紧接上文 虽然解决了MyEclipse提示过期问题 但是你会发现出现一行红色提示如下 1 错误日志 Product activation must be completed within 5 days 2 错误说明 产品激活必
  • Windows多显示器编程--VC

    一 Windows中接入多个显示器时 可设置为复制和扩展屏 1 设置为复制屏幕时 多个显示器的分辨率是一样的 位置为0 分辨率值 2 设置为扩展屏幕时 显示器之间的关系比较复杂些 首先Windows系统会识别一个主显示器 这个可以在屏幕分辨
  • 问题总结!常用插件Pytest的测试用例的一些问题

    目录 前言 失败重跑 Pytest rerunfailures 用例执行顺序 Pytest ordering 重复执行 Pytest repeat 多重断言 Pytest assume 前言 Pytest是Python中的一个流行的测试框架
  • Linux经典书籍推荐

    Linux经典书籍推荐 入门篇 LINUX权威指南 书不错 写的很全面也比较广 涉及的不深 做为入门书籍不错 可以比较全面的了解linux 另外比较热门的也可以看看 鸟哥的私房菜 等书 偏管理类的书 如果想做server方向的可以找来看看
  • 如何使用 WSL 在 Windows 上安装 Linux-官方流程

    前提条件 安装 WSL 命令 更改默认安装的 Linux 发行版 设置 Linux 用户信息 设置和最佳实践 检查你正在运行的 WSL 版本 从 WSL 1 升级到 WSL 2 使用 WSL 运行多个 Linux 发行版的方法 想体验最新的
  • 刷脸支付服务商推广进程已逐渐深入

    2019年是刷脸支付的商用元年 刷脸支付推广进程已逐渐深入 移动支付领域巨头间的竞争越发激烈 在支付宝与微信支付之后 银联也正式加入 近日 中国银联旗下云闪付APP正式推出刷脸支付服务 目前已经在宁波 长沙 杭州 嘉兴 合肥 广州 武汉七个
  • docker容器里设置中文时区

    本文讨论docker容器里中文时区的问题 总所周知docker hub上的镜像默认都是英文时区的 在国人使用过程当中需要将时区设置成中文 我原来光配置 etc localtime了date显示的时间也对 但是tomcat日志里输出的时间还是
  • git 基本使用

    git和svn的区别 svn的特点是集中式 工程文件全部放在中央服务器的一个唯一库上 管理员对开发者的权限有掌控 每个人都只能拉取和开发属于自己的模块 且提交按照文件进行存储 有网络要求 git的特点是分布式 每个开发者都能把全部工程文件拉