首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >github page 和 github & git的工作流程

github page 和 github & git的工作流程

原创
作者头像
我有两个账号吗
发布2026-01-02 22:38:31
发布2026-01-02 22:38:31
450
举报

1.github访问受限

dns污染-域名解析错误/网络限制/防火墙拦截

修改dns服务器/

代理软件clash 订阅

ping 127.0.0.1 测试本地网卡 网卡驱动

ping 网关ip 测试到路由器连通性 网线/wifi

ping 8.8.8.8 dns服务器 外网连通性 运营商

ipconfig 无限局域网 本地连接 虚拟网卡 虚拟机 代理

wlan 物理网卡 wifi

无ip 设置dhcp重启

ping github.com

ping 基于icmp 协议

0-30 局域网 30-100 国内跨城 100-200 跨国 200 延迟拥堵

每经过一个路由器,TTL 减 1,减到 0 时数据包被丢弃。

近似跳数 = 初始TTL值 - 收到的TTL值

系统类型

初始 TTL 值

Windows

128

Linux/macOS

64

路由器 / 服务器

255

示例:收到 TTL=119,目标是 Windows 主机 → 跳数≈128-119=9 跳。

若收到TTL≈128→ 对面大概率是 Windows 系统;TTL≈64→ 大概率是 Linux/macOS 系统。

服务器禁用icmp应答,ping不成功,但实际可以访问https/ftp

curl xxx.com

设置了代理但是ping不走代理,而是本机到目标ip

curl走代理

  1. ping 8.8.8.8 → 通 → 外网基础连通;
  2. ping github.com → 超时 → 尝试 nslookup github.com → 若能解析到 IP → 说明 GitHub 禁用了 ICMP;
  3. curl xxx

测试dns返回

nslookup github.com

nslookup github.com 8.8.8.8 google dns

nslookup github.com 223.5.5.5 阿里云dns

ipconfig /flushdns 清除dns本地缓存

/etc/hosts 绑定dns

网络路由跟踪,找到中断路由器 /运营商路由/防火墙拦截/地区限制

tracert github.com linux traceroute

tracert(Windows 命令)的核心是发送递增 TTL 的 ICMP 数据包,通过每个跃点(路由器)的响应 / 超时,来追踪从本地主机到目标服务器的路由路径。

跃点序号

节点 IP / 域名

响应时间

节点类型与状态分析

1

192.168.2.1

<1ms

本地局域网网关(你的路由器内网 IP),响应极快,说明本地局域网连接正常,无延迟 / 丢包

2

10.60.83.254

5-7ms

运营商内网网关(10.x.x.x 属于 A 类私网 IP 段),响应时间正常,说明本地路由器到运营商内网的转发无问题

3

*

请求超时

运营商内部中转路由器,禁用了 ICMP 响应,属于常规操作

4

10.0.1.6

1-4ms

运营商内网的另一中转节点,响应快,运营商内部转发链路通畅

5

202.103.243.97

3-8ms

国内公网骨干网节点(可通过 IP 库查询归属电信 / 联通等运营商),成功进入公网,延迟低

6

218.65.145.153

8ms

国内公网骨干网的二级中转节点,转发正常

7-10

*

请求超时

国内骨干网到国际出口的过渡节点,这类节点通常会严格屏蔽 ICMP 请求,避免被扫描,属于正常现象

11

202.97.116.210

72-75ms

运营商国际出口节点,延迟明显升高(从几 ms 跃升至 70+ ms),说明数据开始进入国际链路

12

203.215.237.42

72-90ms

国际链路的一级中转节点,延迟符合国际传输的正常水平

13

ae28-0.icr01.tyo30.ntwk.msn.net104.44.235.92

75-87ms

从域名 tyo30 可判断是日本东京的微软网络中转节点,说明你的访问流量经过日本节点转发

14-16

*

请求超时

国际链路中的核心中转节点,均禁用 ICMP 响应

17

51.10.10.86

104-132ms

靠近 GitHub 服务器的国际中转节点,延迟进一步增加

18-21

*

请求超时

GitHub 服务器所在网络的边缘节点,禁用 ICMP 响应

22

20.205.243.166

105-107ms

GitHub 目标服务器 IP,响应正常,说明最终成功连通目标服务器

跟踪到第 22 跃点成功到达 GitHub 的目标 IP(20.205.243.166),说明你的网络可以正常访问 GitHub 服务器。

访问依旧无法打开,而是 DNS 解析或国际链路临时拥塞导致

端口扫描

tracert 用 ICMP 协议 运营商可能放行 ICMP 但拦截 HTTPS 流量。

telnet github.com 80 http

telnet github.com 443 端口https

telnet github.com 22 ssh

模拟协议

修改hosts

最新github解析

自动配置代理

关闭 Windows 防火墙

2.git的使用

3.github page

4.github工作流程

个人独立开发:

「不直接在 main 分支写代码」,避免主线混入未完成功能;

创建仓库,初始化远程仓库,克隆到本地

github网页new repository

git clone

避免修改主线main,创建功能分支

git checkout -b feature/xxx 创建并切换分支

修改代码

git add. 缓存区,跟踪变化

git commit -m "" 本地仓库,记录快照

推送到远程分支,同步远程github仓库

git push -u origin feature/xxx

合并到主线

git checkout main

git pull origin main 拉取

git merge feature/xxx 合并分支

git push origin main 推送主线

清理分支,删除无用的分支

本地删除

git brench -d feature/xxx

远程删除

git push origin --delete feature/xxx

① 查看提交记录:git log(找要回滚的 commit-id);

② 软回滚(保留代码):git reset --soft commit-id

③ 硬回滚(删除代码):git reset --hard commit-id(谨慎使用)

团队内部协作(不影响主线,分支化开发)

核心目标

多人协作同一仓库,保证主线(main/develop)稳定,通过「功能分支 + PR 审核」合并代码,避免直接修改主线。

完整工作流 + 对应命令

步骤

操作目的

Git/GitHub 命令 / 操作

1. 克隆团队仓库

获取团队远程仓库到本地

git clone https://github.com/团队账号/团队仓库名.git

2. 同步上游主线(关键)

保持本地主线和团队最新同步

① 绑定团队上游仓库(首次):git remote add upstream https://github.com/团队账号/团队仓库名.git;② 拉取上游最新主线:git fetch upstream;③ 切回本地 main:git checkout main;④ 合并上游更新:git merge upstream/main

3. 新建功能分支

基于最新主线创建分支

git checkout -b feature/xxx-你的名字(如 feature/pay-zhangsan,区分开发者)

4. 开发 & 提交

同个人开发(add→commit)

git add . && git commit -m "feat: 新增支付接口"

5. 推送分支到远程

同步到团队仓库的远程分支

git push origin feature/xxx-你的名字

6. 提 PR(合并请求)

申请合并到团队主线

GitHub 网页端:进入团队仓库→「Pull requests」→「New pull request」→ 选择「base: main」+「compare: feature/xxx - 你的名字」→ 填写 PR 描述(做了什么、测试情况)→ 提交 PR

7. 代码审核 & 合并

经团队审核后合并

① 审核通过:GitHub 网页端点击「Merge pull request」(可选「Squash and merge」压缩提交);② 审核不通过:本地修改代码→git add . && git commit && git push(PR 会自动更新)

8. 同步 & 清理分支

合并后清理

① 切回 main:git checkout main;② 拉取合并后的主线:git pull origin main;③ 删除本地分支:git branch -d feature/xxx-你的名字;④ 远程分支(可选):git push origin --delete feature/xxx-你的名字

贡献开源项目(克隆别人仓库,提 PR 不影响原主线)

核心目标

给别人的仓库贡献代码,不直接修改原仓库,通过「Fork(仓库副本)+ PR」完成贡献,核心是「你的副本独立开发,原仓库维护者审核后合并」。

完整工作流 + 对应命令

步骤

操作目的

Git/GitHub 命令 / 操作

1. Fork 原仓库

复制原仓库到自己的 GitHub 账号(仓库级副本)

GitHub 网页端:打开原仓库→点击右上角「Fork」→ 选择自己的账号,生成「你的账号 / 原仓库名」副本

2. 克隆自己的 Fork 仓库

把副本拉到本地开发

git clone https://github.com/你的账号/原仓库名.git

3. 绑定原仓库为上游

同步原仓库的最新更新(避免开发时原仓库已更新)

git remote add upstream https://github.com/原作者账号/原仓库名.git

4. 新建功能分支

基于原仓库主线创建分支(不修改自己的 main)

① 拉取原仓库最新主线:git fetch upstream;② 切回自己的 main:git checkout main;③ 合并上游主线:git merge upstream/main;④ 新建分支:git checkout -b fix/xxx(如 fix/修复文档错别字)

5. 开发 & 提交

同前(add→commit)

git add . && git commit -m "docs: 修复README中的错别字"

6. 推送到自己的 Fork 仓库

同步到你账号下的远程分支

git push origin fix/xxx

7. 提 PR 到原仓库

请求原作者合并你的代码

GitHub 网页端:① 打开你的 Fork 仓库→「Pull requests」→「New pull request」;② 选择「base repository: 原作者 / 原仓库」+「base: main」,「head repository: 你 / 原仓库」+「compare: fix/xxx」;③ 填写 PR 描述(说明修复内容、测试方式)→ 提交 PR

8. 等待审核 & 反馈

原作者审核后处理

① 审核通过:原作者合并到他的主线,你的贡献生效;② 审核要求修改:本地修改→git commit && git push(PR 自动更新);③ 审核拒绝:可关闭 PR,不影响原仓库

关键注意

  • Fork 是「仓库级别的副本」,属于你的 GitHub 账号,完全独立于原仓库,开发时不会影响原仓库任何代码;
  • 提 PR 前必须同步上游主线:避免你的代码和原仓库最新代码冲突,减少审核拒绝概率。

  • feat:新功能;
  • fix:bug 修复;
  • docs:文档修改;
  • style:代码格式(不影响逻辑);
  • refactor:代码重构;
  • test:测试代码;
  • chore:构建 / 工具配置修改。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 团队内部协作(不影响主线,分支化开发)
    • 核心目标
    • 完整工作流 + 对应命令
  • 贡献开源项目(克隆别人仓库,提 PR 不影响原主线)
    • 核心目标
    • 完整工作流 + 对应命令
    • 关键注意
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档