【小沐学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      //显示当前所有文件的状态
  • 提交仓库
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
  • 复制远程仓库
git clone https://github.com/microsoft/TypeScript.git
// git clone [email protected]:microsoft/TypeScript.git
git pull      //将远程库修改的内容下载到本地库
  • 删除远程仓库中的文件
// git clone your_url
git add .
git rm [-r] 文件/文件夹 # 这种方式也会同步删除本地文件,-r为可选参数,添加后删除文件夹
git rm [-r] --cache 文件/文件夹 # 不会删除本地文件
git commit -m "删除了某个文件"
git push -u origin master

3.2 更新子模块命令

git submodule init
git submodule update
或:
git submodule update --init --recursive

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

在这里插入图片描述

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"

结语

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

猜你喜欢

转载自blog.csdn.net/hhy321/article/details/129763887