• 【小沐学C++】git和github常见问题汇总


    1、简介

    Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。

    Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

    Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
    在这里插入图片描述

    2、下载和安装

    2.1 Git

    http://git-scm.com/downloads

    Git 是一个流行的软件开发版本控制系统。它允许您在存储库(repo)中管理代码的不同版本。

    在这里插入图片描述

    2.2 TortoiseGit

    https://tortoisegit.org/
    https://tortoisegit.org/download/

    TortoiseGit 简称 tgit, 中文名海龟Git。TortoiseGit是一个开放的GIT版本控制系统的源客户端。

    在这里插入图片描述
    在这里插入图片描述

    3、相关功能

    3.1 基本命令

    • 新建本地仓库
    git init    // 在当前目录新建一个Git代码库
    echo "# hello world" >> README.md   //在当前目录下新建README.md,且文件内容为'myblog';如果目录下已经有文件,请省略这一步
    
    git add README.md                //将README.md文件提交到问题暂存区
    // git add . # 添加目录下的所有文件到暂存区
    
    git commit -m "first commit"     //将暂存区文件提交到本地仓库,且本次提交记录为'first commit'
    git status -sb      //显示当前所有文件的状态
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 提交仓库
    git remote add origin https://github.com/microsoft/TypeScript.git
    // git remote add origin 远程仓库地址 # origin是你的远程仓库的代称,可以改为别的
    
    git add .
    git commit -m "git init"
    git push -u origin master # master为分支名,本地分支与GitHub上的远程仓库中的分支对应
    
    git add .
    git commit -m ""
    git push origin master
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 复制远程仓库
    git clone https://github.com/microsoft/TypeScript.git
    // git clone git@github.com:microsoft/TypeScript.git
    git pull      //将远程库修改的内容下载到本地库
    
    • 1
    • 2
    • 3
    • 删除远程仓库中的文件
    // git clone your_url
    git add .
    git rm [-r] 文件/文件夹 # 这种方式也会同步删除本地文件,-r为可选参数,添加后删除文件夹
    git rm [-r] --cache 文件/文件夹 # 不会删除本地文件
    git commit -m "删除了某个文件"
    git push -u origin master
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3.2 更新子模块命令

    git submodule init
    git submodule update
    或:
    git submodule update --init --recursive
    git submodule update --recursive --remote
    git submodule update --init
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4、常见问题

    4.1 GitHub访问慢或者无法访问

    4.1.1 修改本地hosts映射

    域名解析直接指向GitHub的IP地址,以此来绕过DNS解析

    在 ip地址查询网站中查询GitHub相关的网站对应的最新IP地址:
    https://myssl.com/dns_check.html
    https://whatismyipaddress.com/hostname-ip

    • Windows系统:
    1. 修改C:\Windows\System32\drivers\etc\hosts文件的权限,指定可写入:
      右击->hosts->属性->安全->编辑->点击Users->在Users的权限“写入”后面打勾。然后点击确定。

    在这里插入图片描述
    在这里插入图片描述
    或者将当前文件复制到别的盘中,修改文件后复制回来覆盖原来文件。

    1. 右击->hosts->打开方式->选定记事本(或者你喜欢的编辑器)->在末尾处添加以下内容,再保存:

    在这里插入图片描述
    3. 刷新DNS缓存来访问新的映射。
    hosts文件内容更新成功后,还需要刷新windows系统的DNS才可以生效。
    使用 win+R ,打开cmd命令行,输入 ipconfig/flushdns 刷新DNS缓存即可。

    ipconfig/flushdns
    
    • 1

    在这里插入图片描述

    4.1.2 通过Gitee中转fork仓库下载

    GitHub 仓库快速导入 Gitee 及同步更新
    在这里插入图片描述

    4.2 OpenSSL SSL_read: Connection was reset, errno 10054

    • 问题描述
      fatal: unable to access ‘https://github.com/xxx/autowrite.git/’:
      OpenSSL SSL_read: Connection was reset, errno 10054
      又或者:
      fatal: unable to access ‘https://github.com/xxx/autowrite.git/’:
      Failed to connect to github.com port 443: Timed out

    • 解决方法:

    //取消http代理
    git config --global --unset http.proxy
    //取消https代理 
    git config --global --unset https.proxy
    
    //解除验证
    git config --global http.sslVerify "false"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    结语

    如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭
    如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
    如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
    感谢各位大佬童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

  • 相关阅读:
    K8S中的网络
    01-Spring底层核心原理解析
    【冒泡排序设计】
    【docker】网络模式管理
    安装Go语言开发工具
    NL6621 实现获取天气情况
    云和恩墨大讲堂 x openGauss Meetup x 鲲鹏生态孵化营(上海站)圆满落幕
    网络安全(黑客)自学
    leetcode-11. 盛最多水的容器(双指针)
    以单颗CMOS摄像头重构三维场景,维悟光子发布单目红外3D成像模组
  • 原文地址:https://blog.csdn.net/hhy321/article/details/129763887