Git笔记

2023-11-18

一、安装Git(Win10)

直接到Git官网下载安装程序,按照默认选项安装即可

安装完成后,在开始菜单里找到Git——>Git Bash,打开弹出类似命令行的窗口,则说明Git安装成功。

安装完成后还需要对Git进一步设置,在命令行输入:

git config --global user.name "Your Name"
git config --global user.email "Your Email"

二、创建版本库

在任意地方新建一个文件夹(learngit),然后通过Git Bash进入这个文件夹

cd e:       #进入新建的learngit文件夹所在的盘符
cd learngit #进入learngit文件夹
pwd				 #显示但当前所在文件目录

通过git init命令将这个目录变成Git可管理的仓库
仓库建好之后可以看到原本新建的learngit空文件夹中多出了一个.git文件夹(隐藏文件夹)

1.添加文件到Git仓库

步骤:
1、git add <file> 告诉Git把文件添加到仓库,可将learngit文件夹中的文件添加到Git仓库
2、git commiit -m "message" 告诉Git把文件提交到仓库,message内容即为本次提交说明,可以写入此次提交的版本修改更新的内容

$ git add readme.txt
$ git commit -m "创建了一个新的txt文档readme.txt"

[master 4e8796c] 创建了一个新的txt文档readme.txt
 1 file changed, 3 insertions(+)
 create mode 100644 readme.txt

2.查看仓库状态以及修改记录

git status 可以查看文件是否被修改,以及修改后的文件是否添加并提交到仓库
git diff 可以查看文件的修改记录,输出当前文件与上一版本的文件所做的修改,即不同之处

$ git status

On branch master
nothing to commit, working tree clean

readme.txt做一些修改,在第一行添加“Git笔记CSDN博客网址”,并在网址后添加一个回车,与后面两句话之间形成一个空行

$ git diff

diff --git a/readme.txt b/readme.txt
index a1ac352..402f968 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,3 +1,5 @@
+Git笔记CSDN博客网址:
 https://csdn.com/
+
 Git is a distributed version control system.
 Git is free software distributed under the GPL.
\ No newline at end of file

重新提交到仓库

$ git add readme.txt

$ git commit -m "在第一行添加了新的一行:‘Git笔记CSDN博客网址’"

[master d4e8fdb] 在第一行添加了新的一行:‘Git笔记CSDN博客网址’
 1 file changed, 2 insertions(+)

三、版本回退

git log 查看针对此文件的所有修改,以及每次修改添加的说明和每个版本对应的版本号

$ git log

commit d4e8fdb96f3ceb4eddec1b7dd781a9a8e8f3af3a (HEAD -> master)
Author: YourName <YourEmail>
Date:   Sat Oct 9 16:13:12 2021 +0800

    在第一行添加了新的一行:‘Git笔记CSDN博客网址’

commit 4e8796c03dc28bf65b43cf17887f5c32ccc48818
Author: YourName <YourEmail>
Date:   Sat Oct 9 15:58:47 2021 +0800

    创建了一个新的txt文档readme.txt

当文件夹中有多个文件的时候,上述输出完不会自动退出到命令行界面,需要手动退出,按键盘Q键即可退出到命令行输入界面。

上面输出的信息很多,若想输出较为简洁的版本信息,可在上述命令后加--pretty oneline

$ git log --pretty=oneline

d4e8fdb96f3ceb4eddec1b7dd781a9a8e8f3af3a (HEAD -> master) 在第一行添加了新的一行:‘Git笔记CSDN博客网址’
4e8796c03dc28bf65b43cf17887f5c32ccc48818 创建了一个新的txt文档readme.txt

每个版本修改记录前面的那一大串数字是当时版本的版本号

git reset --hard HEAD^ 即为回退到当前版本的上一个版本

$ git reset --hard HEAD^

HEAD is now at 4e8796c 创建了一个新的txt文档readme.txt

上述语句中的HEAD^ 就是指定回退到哪个版本的指针,HEAD^即为当前版本的上一个版本,HEAD^^为当前版本的上上个版本,当需要回退版本过早时,不便于用^标记,可用HEAD~100的形式来表示回退到往上第100个版本

当然也可以直接用每个版本的版本号来指定回退到哪个版本,或者返回到未来已被回退的版本
用法:

$ git reset --hard d4e8fdb

HEAD is now at d4e8fdb 在第一行添加了新的一行:‘Git笔记CSDN博客网址’

版本号不需要输入全部,输入前几位即可,Git可以自动寻找
这样就又回到了之前修改过后的版本

如果忘记版本号也没事,Git提供了git reflog语句可用来查看你的每一次命令,并记录下了每次修改后的版本号。(历史命令查看)


四、工作区和暂存区

建立的learngit文件夹即为工作区

上述将文件添加到仓库的两个步骤中
第一步git add <file>是将文件修改添加到暂存区
第二部git commit -m "message"是把暂存区的内容提交到当前分支(Git自动建立的master分支)


五、远程仓库(GitHub)

1.GitHub设置

第一步:Git Bash上创建SSH Key,输入$ ssh-keygen -t rsa -C "YourEmail"
一切顺利的话,Windows用户会在C盘User文件夹下找到.ssh文件夹,在文件夹中会有id_rsaid_rsa.pub两个文件

第二步: 登录GitHub,打开“Settings”,在里面的“Account settings”列点击“SSH and GPG keys”,然后点击“New SSH key”;填上任意Title,在Key文本框里粘贴id_rsa.pub文件里的内容;最后再点击“Add Key”

第三步: 返回GitHub主页,点击“New”,新建一个Repository,填写Repository name,其它选项全部按照默认选项,创建一个新的Git仓库

2.本地文件上传

第一步: 在本地的Git仓库(learngit文件夹)下运行命令

$ git remote add origin git@github.com:yourname/learngit.git

yourname即为用户的GitHub账户名,这样就把本地仓库关联到了建立好的GitHub远程仓库

第二步: 把本地库内容推送到远程库上

$ git push -u origin master

git push命令实际上是把当前分支master推送到远程库。
第一次推送时需要加上-u,可以把本地master分支和远程的master分支关联起来
在以后再次进行推送时,就可以使用简化命令git push origin master把本地master分支的最新修改推送至GitHub。

3.Clone到本地

进入想要将GitHub仓库clone到的目录,输入指令

git clone git@github.com:yourname/learngit.git

就可以将GitHub上的远程库clone到本地

git clone支持sshhttps协议,而GitHub也同时支持并会同时给出这两个协议对应的地址,但ssh协议最快,而且操作最方便

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

Git笔记 的相关文章

  • Git 子模块在 Windows 上更新缓慢

    Git 子模块在 Windows 上似乎非常慢 为了测试性能 我创建了 3 个裸存储库并向它们提交了 3 条独立消息 未存储文件 然后 我将每个裸存储库作为子模块添加到新的 git 存储库中 并执行子模块更新 花费了 5 秒多的时间 当使用
  • git push origin 分支名总是推送到 master

    我搜索了一下 但似乎找不到答案 在我可以访问的两个盒子上 当我执行 git push dry run origin mytestbranch 时 我得到以下结果 To email protected cdn cgi l email prot
  • 如何列出 Git 1.7+ 中的所有远程分支?

    我试过了git branch r 但这仅列出我在本地跟踪的远程分支 如何找到我没有的列表 命令是否列出对我来说并不重要all远程分支或仅那些未跟踪的分支 For the vast majority 1 of visitors here th
  • 是否可以在一次 git 调用中取消设置多个 git 配置值,而不是逐一取消设置?

    我需要自动取消全局 git 配置文件中的许多别名 diff difftool merge mergetool 设置 现在我正在打电话git config global unset对于他们每个人来说 这有点慢 嗯 相对而言 大约需要 3 秒
  • Git 拉回 master 中的提交?

    一位同事 我们称之为亚伦 被指派翻新网站的一部分作为长期项目 他创建了一个新的 Git 分支 名为aaron 他所有的改变都是在这个分支上进行的 当他工作时 我继续维护整个网站 将我的更改提交给master 最终 Aaron 将他的分支合并
  • 如果文件已在服务器上,请避免使用 git-ftp 上传

    假设我有应用程序的本地副本 我将其推送到 github 然后使用 git ftp 将任何更改上传到我的服务器 我首先会使用 git ftp init u
  • Git:结帐而不运行结帐后挂钩

    我有一个我喜欢的结帐后挂钩 大多数时候 但有时我知道运行它会浪费时间 或者 因为它会删除并重建我的开发数据库 所以我不希望它去做它的事情 有没有跳过钩子的 git 选项 公平地说 我已经开始寻找一个了 我认为没有命令行选项可以完成您想要的操
  • Git:如何使外部存储库和嵌入式存储库作为通用/独立存储库工作?

    我有一个大项目 比方说A repo 其中有一个子文件夹来自B repo 当我提交时 我会遇到如下警告A repo warning adding embedded git repository extractor annotator serv
  • git在Windows和Linux之间切换后强制刷新索引

    我有一个Windows和Linux共享的磁盘分区 格式 NTFS 它包含一个 git 存储库 约 6 7 GB 如果我只使用Windows or 只使用Linux操作 git 存储库一切正常 但是每次切换系统的时候git status命令将
  • Windows 版 GitKraken 中的文件名太长

    正如建议的Q22575737 https stackoverflow com a 22575737 6623589 我已经更新了我的注册表并设置了git config system core longpaths true在处理长路径时 问题
  • 交互式变基后,本地 Git 分支已偏离原始分支

    我有一个本地分行 CRM ayrshireminis 其中有一些我已推送到原点的提交 origin CRM ayrshireminis 这个分支是从创建的develop大约一周前的一个分支 其他合作者已经在该分支上完成了一周的工作 我想做的
  • 有没有办法缓存 https 凭据以推送提交?

    我最近转而将我的存储库同步到 GitHub 上的 https 由于防火墙问题 并且每次都要求输入密码 有没有办法缓存凭据 而不是每次都进行身份验证git push 自 Git 1 7 9 2012 年发布 以来 Git 中有一个巧妙的机制可
  • vscode通过SSH连接gitlab的问题

    我在尝试通过 SSH 连接到 GitLab 远程存储库时遇到问题 这里是迄今为止完成的步骤 成功生成 SSH 密钥 管理人员将密钥添加到存储库中 因此当我访问 GitLab 网站时 我可以提交和发布分支 我无法从 VSCODE 发布分支并收
  • Jenkins git 插件 - 有时太慢

    以下内容摘自 Jenkins 日志 00 00 03 135 gt git fetch tags progress email protected cdn cgi l email protection some org some repo
  • SSH 到 Openshift 服务器失败

    我正在 openshift 服务器上使用 jboss catridge 我希望与其他人共享此实例并添加其他用户的公钥 id rsa pub 当其他人尝试访问该实例时 他会收到以下错误 我在他的实例中尝试了同样的方法 但看到了同样的错误 与
  • 如何从 android.googlesource.com 或 github.com 下载单个目录?

    我想下载 https android googlesource com platform frameworks base git master tools aapt https android googlesource com platfo
  • 远程测试时如何搭建git开发环境

    这似乎是一个愚蠢的问题 但我觉得我对 GIT 相当了解 但我似乎无法按照我的意愿设置我的开发环境 我要么错过了一些非常简单的东西 要么我做错了 我在我的服务器上初始化了一个裸 git 存储库 将其克隆到我的本地计算机 提交我的文件并推送到原
  • 如何 git grep 仅一组文件扩展名

    如何执行 git grep 并将检查的文件限制为一组文件 我希望能够 grep cpp 和 h 文件的内容来查找 MyFunc 例如 git grep MyFunc hc 但是 这也匹配 c 文件和 cs 文件 Use git grep M
  • 有没有办法让 git flow 显示它在幕后执行的命令?

    有什么方法可以让 git flow 提前告诉我当我执行 flow 命令时它将执行的确切 git 命令吗 或者告诉我它是东吗 我只能看到输出和摘要吗 你可以使用Git的GIT TRACE 环境变量 http git scm com docs
  • git Push over sshfs 失败,并显示“关闭 sha1 文件时出错:错误的文件描述符”

    我们使用 sshfs 通过 SSH 安装文件系统 并将其用作 git 存储库协作的远程存储 Mac OSX 10 6 6 到 RHEL 3 服务器 SSHFS 版本 2 2 MacFUSE SSHFS 2 2 0 MacFUSE 库版本 F

随机推荐

  • 通达信接口怎么样抓取股票实时数据?

    通达信接口怎么样抓取股票实时数据 股票爬取接口在股票交易中常常使用到的一些辅助工具 股票爬取接口主要是利用l1和l2接口来执行获取股票实时行情数据的原理 将自己需要查询的需求就可以在接口软件上搜索就可以很快的获取数据了 那么 在获取的过程中
  • 聊聊java高并发系统之异步非阻塞

    聊聊java高并发系统之异步非阻塞 几种调用方式 同步阻塞调用 即串行调用 响应时间为所有服务的响应时间总和 半异步 异步Future 线程池 异步Future 使用场景 并发请求多服务 总耗时为最长响应时间 提升总响应时间 但是阻塞主请求
  • 【点云格式互转】ply转bin、任意点云格式转ply

    本文为博主原创文章 未经博主允许不得转载 本文为专栏 python三维点云从基础到深度学习 系列文章 地址为 https blog csdn net suiyingy article details 124017716 3D点云存储方式的种
  • 08_STM32的存储结构

    STM32的存储器结构 存储器是单片机结构的重要组成部分 存储器是用来存储编译好的程序代码和数据的 有了存储器单片机系统才具有记忆功能 按照存储介质的特性 可以分 易失性存储器 和 非易失性存储器 两类 易失性存储器断电后 里面存储的内容会
  • 802.11K/V/R协议介绍

    802 11K V R协议介绍 1 传统无线漫游介绍 1 1 什么是无线漫游 一台无线终端备 STA 通过连接Wi Fi获取上网体验 Wi Fi名称 又称为SSID 是由无线接入网 AP 提供的 因为一台AP设备的覆盖范围有限 所以无线网络
  • 解决同时多个请求的处理问题,和定时任务

    应用场景 发布系统 让他晚上2点执行发布的一串任务 定时任务 更新访问量 晚上2点定时将数据从redis更新到mysql中去 商城类的抢购工作 大批量的用户涌入 承载不了一次性处理这么多的活儿 用这个方式也可以 目录结构 1 让woker运
  • maven项目debug查看依赖包源代码办法

    默认的maven工程 好像很难加载依赖的源代码 办法如下 maven调试时 无法进入源码 办法一 在debug配置里面 找到source 把带source的jar包 放进去 添加的时候 选add 再选external archive 这里要
  • jQuery——前端技术栈

    1 jQuery说明 jQuery 是一个 JavaScript 函数库 是一个轻量级的 写的少 做的多 的 JavaScript 库 jQuery 库包含以下功能 HTML 元素选取 HTML 元素操作 CSS 操作 HTML 事件函数
  • gin框架07--PureJSON

    gin框架07 PureJSON 介绍 案例 说明 介绍 通常 JSON 使用 unicode 替换特殊 HTML 字符 例如 lt 变为 u003c 如果要按字面对这些字符进行编码 则可以使用 PureJSON Go 1 6 及更低版本无
  • DataFrame入门丨Pandas数据分析基础(4)

    个人主页 互联网阿星 格言 选择有时候会大于努力 但你不努力就没得选 作者简介 大家好我是互联网阿星 和我一起合理使用Python 努力做时间的主人 如果觉得博主的文章还不错的话 请点赞 收藏 留言 支持一下博主哦 行业资料 PPT模板 简
  • Qt 6.x中Qt Quick简介及示例

    Qt Quick首次在Qt 4 7和Qt Creator 2 1中引入 是一种高级UI技术 Qt Quick模块是用于编写QML Qt Meta Object Language Qt元对象语言 应用程序的标准库 Qt QML模块提供了QML
  • Linux获取本机的IP的几种方式

    共计五条命令 使用的方式都不同 但原理相同充分利用LInux管道技术 root vagrant centos65 ifconfig eth0 grep Bcast cut d f2 cut d f1 192 168 191 2 root v
  • 西门子PLC的编程工具是什么?

    西门子PLC编程工具主要有下面这几个 1 STEP 7 Simatic Manager STEP 7或者Simatic Manager是西门子PLC编程最常用的软件开发环境 它是一款强大的集成开发环境 可以用来编写 调试PLC编程代码 还可
  • 《基础篇第4章:vue2基础》:使用vue脚手架创建项目

    文章目录 4 1初始化脚手架 4 1 1说明 4 1 2具体步骤 4 1 3模板项目的结构 4 1 4 创建第一个vue项目分析index html组成部分 4 1 5render函数 4 1 6修改默认配置 本人其他相关文章链接 4 1初
  • ubuntu wget ERROR 403: Forbidden 错误

    解决办法 临时变更wget的UA wget U 浏览器的useragent 下载地址 永久变更Wget 未测试 修改配置文件 etc wgetrc 添加下面这一行 header User Agent 浏览器的useragent 上面这个配置
  • 【vue】vue history和hash用法和区别

    vue中模式选择 router gt index js const router new VueRouter mode history base process env BASE URL routes hash和history区别 1 ha
  • 彷徨

    1 什么是hbase HBASE是一个高可靠性 高性能 面向列 可伸缩的分布式存储系统 利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群 HBASE的目标是存储并处理大型的数据 更具体来说是仅需使用普通的硬件配置 就
  • 相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了。

    题目描述 相传韩信才智过人 从不直接清点自己军队的人数 只要让士兵先后以三人一排 五人一排 七人一排地变换队形 而他每次只掠一眼队伍的排尾就知道总人数了 输入3个非负整数a b c 表示每种队形排尾的人数 a lt 3 b lt 5 c l
  • 贝叶斯优化优化参数,以Kmeans为例

    文章目录 步骤一 构造黑盒目标函数 步骤二 确定取值空间 步骤三 构造贝叶斯优化器 全部代码 贝叶斯优化有几个步骤 构造黑盒目标函数 确定取值空间 构造贝叶斯优化器 下面以kmeans为例 步骤一 构造黑盒目标函数 这个函数主要是运行需要的
  • Git笔记

    一 安装Git Win10 直接到Git官网下载安装程序 按照默认选项安装即可 安装完成后 在开始菜单里找到Git gt Git Bash 打开弹出类似命令行的窗口 则说明Git安装成功 安装完成后还需要对Git进一步设置 在命令行输入 g