【C 语言】初识 Git:用 Git 上传项目到远端

从零开始上传GitHub项目:完整流程、报错排查与工程化规范 版本控制是软件工程的基础能力,它让代码的每一次变更都有迹可循。作为基于Git的代码托管平台,GitHub不仅提供远程备份与多人协作能力,更是开发者展示作品、参与开源的重要阵地。将本地项目安全、规范地推送到GitHub,需要理解Git原理、仓库结构、忽略规则(.gitignore)以及README等元信息的作用。在实际操作中,开发者常遇到网络链路不稳定、认证方式变更(如Personal Access Token取代密码)、远程历史冲突等高频问题。掌握网络诊断思路与多远程仓库同步策略,既能提高推送成功率,也能保 阅读详情

这篇文章只完成一件事:在 Windows、Linux 或 macOS 上,把电脑里的 C 语言项目上传到 GitHub 或 Gitee,修改代码后再同步一次。

!把 C 语言项目上传到 GitHub 的路线图

一、安装工具

Windows

安装 Git for Windows。安装完成后,在文件夹空白处右键,如果能看到 Git Bash Here,说明基本安装成功。

Windows 还可以安装 TortoiseGit,用右键菜单完成 Add、Commit 和 Push;后文会同时给出命令行写法。

macOS

打开“终端”,执行:

xcode-select --install

按提示安装 Apple 的命令行工具,其中包含 Git。安装完成后执行 git --version 检查。如果你已经使用 Homebrew,也可以执行 brew install git。

Linux

在终端中按发行版安装 Git。Ubuntu 或 Debian 使用:

sudo apt update
sudo apt install git

Fedora 使用:

sudo dnf install git

安装完成后执行 git --version 检查。

TortoiseGit(仅 Windows)

TortoiseGit 为 Git 提供右键菜单和图形界面。下载地址:

<https://tortoisegit.org/download/>

先安装 Git for Windows,再安装 TortoiseGit。安装 TortoiseGit 时,如果要求指定 git.exe,选择 Git for Windows 的默认安装路径即可。安装完成后重启文件资源管理器或电脑。

设置提交者信息

Windows 可以打开任意文件夹的右键菜单:

TortoiseGit → Settings

在 Git 配置页面填写姓名和邮箱:

Name:你的名字或 GitHub、Gitee 用户名
Email:GitHub 或 Gitee 账号绑定的邮箱

这两项信息会写入提交记录,不是 GitHub 或 Gitee 的登录密码。

Linux 和 macOS 可以在终端执行同样的配置:

git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

三种系统的 Git 提交格式相同,区别主要是安装方式、文件路径和操作界面。

二、在 GitHub 或 Gitee 创建仓库

打开 GitHub 或 Gitee,注册并登录账号,完成邮箱验证。

在 GitHub 中点击右上角的 +,选择 New repository;在 Gitee 中点击右上角的 +,选择新建仓库。仓库名称可以写成:

hello-git

练习时可以选择 Public。第一次操作可以不勾选自动创建 README、.gitignore 和许可证,先用一个空仓库完成克隆和上传。

点击创建仓库,然后点击 Code,选择 HTTPS,复制仓库地址。地址通常是:

<https://github.com/用户名/hello-git.git>
<https://gitee.com/用户名/hello-git.git>

三、把 GitHub 或 Gitee 仓库克隆到电脑

Clone 是把 GitHub 或 Gitee 上的仓库下载到本地。

Windows 假设项目准备放在 D:\Code。打开这个文件夹,在空白处右键,选择 Git Clone,填写:

URL:
<https://github.com/用户名/hello-git.git>

或:
<https://gitee.com/用户名/hello-git.git>

Directory:
D:\Code\hello-git

点击 OK,等待克隆完成。之后得到的 D:\Code\hello-git 就是本地 Git 仓库。

Linux 和 macOS 使用终端克隆。先进入希望保存项目的目录,再执行:

cd ~/Code
git clone <https://github.com/用户名/hello-git.git>
# 或:
git clone <https://gitee.com/用户名/hello-git.git>

克隆完成后,hello-git 目录就是本地 Git 仓库。Linux 和 macOS 使用 /Users/用户名/... 或 /home/用户名/... 这样的路径,不使用 Windows 的 D:\Code 写法。

四、把 C 代码放入仓库

在 Windows 的 D:\Code\hello-git,或 Linux/macOS 的 ~/Code/hello-git 中新建 main.c:

#include <stdio.h>

int main(void)
{
    printf("Hello, Git!\n");
    return 0;
}

也可以用 Visual Studio 等工具,在这个目录中创建 C 语言工程;已有项目则直接复制到这里。

设置 .gitignore

.gitignore 是 Git 的忽略规则文件。它只能阻止“还没有被 Git 跟踪”的文件进入下一次提交,不能删除已经提交到仓库的文件。

编译产生的 .exe、.obj、Debug 等文件通常不需要上传。在仓库根目录创建 .gitignore。文件名必须是 .gitignore,不要变成 .gitignore.txt:

*.exe
*.obj
*.o
.vs/
Debug/
Release/

常见写法可以这样理解:

# 忽略所有目录下的 .exe 文件
*.exe
# 忽略名为 Debug 的目录及其内容
Debug/
# 只忽略仓库根目录下的 temp 目录
/temp/
# 忽略名为 config.local 的本地配置文件
config.local
# 例外:不要忽略 keep.exe
!keep.exe

规则从上到下匹配,后面的规则可以覆盖前面的规则。个人电脑专用的临时规则可以放在 Git 的全局忽略文件中,但项目成员都应该遵守的规则要写进项目根目录的 .gitignore,并把 .gitignore 本身提交到 GitHub 或 Gitee。

检查忽略规则是否生效

在仓库目录打开 Git Bash、PowerShell 或 Linux/macOS 终端,执行:

git check-ignore -v Debug/main.obj

如果规则生效,Git 会显示是哪一行 .gitignore 忽略了这个文件。也可以查看当前仓库的状态:

git status

被忽略的临时文件不再出现在待提交列表中,说明规则已经生效。

已经提交过的文件怎么办

如果 .exe 或 Debug/ 已经被提交,后来才补写 .gitignore,它们仍会继续出现在 Git 的变更列表中。这时要先从 Git 的跟踪记录中移除,再提交一次:

git rm --cached -r Debug
git commit -m "停止跟踪编译目录"
  • -cached 只移除 Git 的跟踪,不会删除电脑上的 Debug 文件夹。Windows 下也可以在 TortoiseGit 的提交窗口中对这些文件执行“删除并保留本地文件”一类的操作,具体名称可能随版本略有不同。

五、第一次上传代码

!Add、Commit、Push 的区别

1. Add:将文件加入暂存区

Windows 用户在 hello-git 文件夹中右键,选择:

TortoiseGit → Add

勾选 main.c 和 .gitignore 等需要提交的文件,点击 OK。这一步只是告诉 Git 哪些文件要参加下一次提交,代码还没有上传到 GitHub 或 Gitee。

2. Commit:保存本地版本

Windows 用户在仓库目录中右键,选择 TortoiseGit → Commit。有些版本会显示为 Git Commit → main 或 Git Commit → master,这是分支名称的不同。

检查文件,填写提交说明:

完成第一个 C 程序

点击 Commit。这一步只在本地保存版本,GitHub 或 Gitee 页面还不会变化。

3. Push:上传到 GitHub 或 Gitee

Windows 用户右键选择:

TortoiseGit → Push

使用默认设置确认推送。第一次推送需要进行 GitHub 或 Gitee 身份验证。GitHub 不支持在 HTTPS Git 操作中直接使用账号密码;Gitee 也建议使用 Personal Access Token 或 SSH。按页面提示完成授权即可。

推送完成后刷新 GitHub 或 Gitee 仓库页面,就能看到 main.c、.gitignore 和提交说明。

Linux 和 macOS 没有 TortoiseGit,可以直接在仓库目录的终端执行同样的流程:

git add main.c .gitignore
git commit -m "完成第一个 C 程序"
git push origin main

如果仓库使用的默认分支不是 main,先执行 git branch --show-current 查看当前分支,再把命令中的 main 换成实际分支名。Windows 用户也可以在 Git Bash 中使用这组命令。

六、修改代码后再次上传

把 main.c 改成:

#include <stdio.h>

int main(void)
{
    printf("Hello, Git and GitHub or Gitee!\n");
    return 0;
}

保存后再次执行:

Add(只有新增文件时需要)→ Commit → Push

已经被 Git 跟踪的 main.c 会直接出现在提交窗口中;使用终端时,直接执行 git add main.c。提交说明可以写:

修改程序输出内容

推送完成后刷新 GitHub 或 Gitee 页面,就能看到新代码和新的提交记录。

七、记住三个操作

Add:选择要提交的文件
Commit:在本地保存版本
Push:上传到 GitHub 或 Gitee

平时的流程就是:

修改代码 → Add 新文件(如有)→ Commit → Push

只执行 Commit 时,版本还在本地;执行 Push 后,远程的 GitHub 或 Gitee 仓库才会收到这个版本。

八、常见问题

右键找不到 TortoiseGit

检查 Git for Windows 和 TortoiseGit 是否都安装完成。Windows 11 中可以先点击“显示更多选项”。

Git 找不到代码

代码必须放在仓库目录或它的子目录中。例如仓库是 D:\Code\hello-git,代码就不能放在旁边的 D:\MyProject。

GitHub 或 Gitee 页面没有更新

Commit 只保存本地版本,还需要执行 TortoiseGit → Push,然后刷新 GitHub 或 Gitee 网页。

上传了大量编译文件

检查 .gitignore 是否位于仓库根目录,并确认文件名不是 .gitignore.txt。

九、完成检查

  • 能创建 GitHub 或 Gitee 仓库,并在 Windows、Linux 或 macOS 上完成克隆。
  • 能把 C 语言项目放到正确目录。
  • 能完成 Add、Commit、Push。
  • 修改代码后能再次提交并推送。
  • 能在 GitHub 或 Gitee 中查看代码和提交记录。
《第二十二篇》Cross-Attention:注意力机制详解-代码实现和公式详解《二》 本文详细介绍了Cross-Attention的原理、公式和实现。Cross-Attention用于Transformer解码器和Encoder-Decoder结构,通过查询向量(Q)与键、值向量(K、V)的交互实现序列对齐。核心公式为softmax(QK^T/√d_k)V,其中Q来自Decoder,K、V来自Encoder。文章还给出了多头注意力机制公式和PyTorch实现代码,包括投影计算、注意力分数计算和输出处理。代码示例展示了如何构建一个完整的Cross-Attention模块,并演示了其在解码器查询 阅读详情

相关推荐

踩坑ubuntu24.04 编译vtk9.3.1的安卓版本

NDK官方明确废弃了旧版 armeabi ABI,强制使用armeabi-v7a或arm64-v8a。错误信息显示你的构建系统仍在使用超级构建(superbuild)模式,并且内部引用了已不再支持的。生成的合并库: $(pwd)/libvtk_combined.a"超级构建过程可能内部未充分考虑现代NDK变化导致内部配置ARM老ABI,重复失败。echo "正在提取所有.o文件..."echo "合并前所有库的总大小:"# 提取所有.a文件中的.o文件。echo "创建合并库..."

zhangyihu321的专栏 1891

【Gitee】上传本地项目到 Gitee 仓库(入门篇)

上传本地项目Gitee的步骤详解

liuwanqing233333的博客 2万+

AnyGrasp实战指南:从环境配置到抓取检测与跟踪

本文详细介绍了AnyGrasp从环境配置到抓取检测与跟踪的实战指南。涵盖硬件要求、关键依赖安装避坑、抓取检测与跟踪的实战技巧,以及常见问题解决方案和性能优化建议,帮助开发者快速掌握这一高精度物体抓取检测与跟踪技术。

weixin_33712987的博客 274

【Linux练习生】使用 git 命令行--在 Gitee上传项目,就是这么简单

D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**

2301_76190672的博客 1092

Eplan P8 API二次开发--插入符号(Symbol)功能(Function)并定义属性

1、目的 使用Eplan API在页中自动插入某个符号并按约定规则自动设置好属性 2. 步骤 一、基础信息 比如要在Eplan中自动插入一个电机的符号并定制属性,我们先要确定要插入的符号名,可以在Eplan中获取如下符号(Symbol)信息 可以知道我们待插入的符号名称为M3_1, 接下来,使用Visual Studio建立类库项目,并引用Eplan Api库 二、获取符号变量(SymbolVariant) 在Eplan中,当一个符号(Symbol)被插入到页中,这个符号的引用即变为一个(Function

如是道程序人生 4523

数据集分享 | IWR1642呼吸心跳数据集

雷达开源数据库 数据集

【调皮连续波】雷达技术领域知识博主 3204

【Linux】Git的简单使用

讲解在Xshell连接云服务器上,Git的简单使用,连接github,包括:一,什么是Git 二,创建远端仓库并克隆到本地 1. 远端建立仓库 2. 拉取远端仓库(git clone) 连接超时 三,上传本地仓库的文件 第一步:add 第二步:commit 第三部push 免密码提交 四,小插曲(重装系统后)

tan_run的博客 2573

ControlRig蓝图节点对应代码(自用)

用于通过python生成ControlRig蓝图节点,非完整

dicha9的博客 424

【Git实战】如何将本地仓库推送至Github(windows版)?

最近使用Go语言开发项目,想寻找位操作相关的工具包。找了一圈没有合适的,因此自己写了一个。又想将其推送到Github上,中间逢山开路,遇水搭桥,终于成功将本地Git仓库和Github进行了关联。现将我的方法公之于众,以期减少后来者的时间。Github是基于Git实现的在线代码仓库,国内外很多开源软件都选择在Github上存储,因此我也打算将自己的工具包推送到Github上。

weixin_42206314的博客 2469

【23】OpenCV C++实战篇——张正友相机标定【相机标定原理、相机标定流程、标定结果评价、图像畸变矫正】

R是3×3的正交单位矩阵(即旋转矩阵),t为平移向量,R、t与摄像机无关,所以称这两个参数为摄像机的外参数(extrinsicparameter),可以理解为两个坐标原点之间的距离,因其受x,y,z三个方向上的分量共同控制,所以其具有三个自由度。R是3×3的正交单位矩阵(即旋转矩阵),t为平移向量,R、t与摄像机无关,所以称这两个参数为摄像机的外参数(extrinsicparameter),可以理解为两个坐标原点之间的距离,因其受x,y,z三个方向上的分量共同控制,所以其具有三个自由度。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 4479

一次请求穿过的六道关卡:微服务基础组件的通信与IO、事件驱动、负载均衡、服务路由、API网关与配置协调

微服务的稳定性往往取决于看不见的基础组件。本文跟随一次下单请求,依次穿过API网关、服务路由、负载均衡与服务通信,再沿事件分支扇出,并从控制面审视配置中心。通信层剖析握手成本、连接复用、epoll与主从Reactor、心跳判活、退避抖动、截止时间与重试预算;事件层讲解编舞与编排、事务发件箱和幂等消费;均衡与路由对比静态与动态算法、路由链、全链路灰度与同区保底;网关讨论过滤器链与限流算法;配置部分给出四类配置、长轮询与共识协调,最后归纳五道防线。文中关键数据均来自可在Java8运行的演示程序。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 172万+

windows下通过命令使用git

首先需要安装git软件,地址 git下载地址。官方下载地址下载下来(默认选项)安装,如果没有用过git的话,电脑上是不会有密钥的,所以这里要配置、生成一下key,步骤如下:随便一个位置,打开安装好的 git bash,输入命令 git config –global user.name “lygttpod” git config –global user.email “lygttpod@163

Allen技术家园 5421

论文阅读 AIED 2024 Coding with AI: How Are Tools Like ChatGPT Being Used by Students in Foundational Pro

该论文题为《Coding with AI: How Are Tools Like ChatGPT Being Used by Students in Foundational Programming Courses》,由美国犹他州立大学的 Aashish Ghimire 与 John Edwards 共同撰写,发表于人工智能与教育领域顶级会议。

CSPhD-winston的博客 307

【Linux】Linux开发:GDB调试器与Git版本控制工具指南

在 Linux 开发中,GDB 调试器和 Git 版本控制工具是开发者必备的利器。GDB 帮助快速定位代码问题,Git 则提供高效的版本管理与协作支持。本指南将简明介绍两者的核心功能与使用技巧,助力提升开发效率。

专注于 C/C++ 后端开发,涵盖基础语法、Linux系统与网络、MySQL数据库、常见算法及项目经验。 4471

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【Linux】在Linux中如何使用Git

命令行形式的Git使用方法。

学了就忘是正常现象 2622

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【linux】Linux云服务器:多用户管理+Git仓库上传超详细步骤

Linux用户管理与Git操作指南 本文介绍了Linux用户管理及Git代码上传的完整流程: 用户管理:通过/etc/passwd查看用户,useradd添加用户,passwd设置密码,su切换用户。 Git操作:配置用户名/邮箱后,通过git clone获取仓库,git add→commit -m→push完成代码提交。同步更新可使用git pull解决冲突。 常见问题:远端仓库更新时需先执行git pull再推送,避免版本冲突。 (摘要含核心命令与解决方案,满足快速查阅需求)

欢迎来到我的博客,私信我可以一起交流技术 1328

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

2026最新git和github如何下载项目,如何相互协作,如何进行版本控制

因为在国外,需要你有,没有加速器可以选择Watt Toolkit或者其他的工具,这比配置一个魔法工具要简单多如果不想弄这些,也可以用git的下载csdn上有很多操作,这里不过多说明如何下载,直接讲解命令如何操作git命令进行操作。

2502_93771697的博客 363

C语言学习笔记 码云及git使用教程-05

码云是一个面向开源社区的代码托管平台,类似于GitHub。它提供了代码托管、版本管理、合作开发、代码审查、问题跟踪、文档编写等功能,旨在为开发者提供一个方便实用的协作开发平台。码云支持多种语言和版本控制系统,如Git和SVN。开发者可以在码云上创建公开的代码仓库,方便其他开发者浏览、克隆和贡献代码。同时,码云也支持私有仓库和团队协作功能,满足各种开发需求。除了代码托管功能,码云还提供了一系列的辅助工具和服务。例如,开发者可以在码云上创建项目页面、发布文档、发布博客等。

佐德将军的博客 1669

【Linux】git的使用

Linux环境下使用Git把代码上传到云端

Yui_的博客 3263

Linux使用git命令行教程

当我们执行git add的时候,其实是把本地变化的文本,从本地提交到git 的暂存区,并不是全部提交,而是把仓库里的变化(增删改查)提交。首先我们需要注册gitee或者github的账号,接下来我用我的github账号作示例,网络条件不行的推荐国内的gitee。这时候,LInux就将远端刚才新建的空仓库拉取到本地了,因为仓库是公开的(开源的),所以可以直接拉取,否则需要输入账号和密码。.git文件就是本地的git文件仓库,用户不可以直接修改它(很有可能出问题),比如增删改查,必须用git工具去更改,

2203_75397752的博客 1924

【Linux详解】进度条实现 && Linux下git 的远程上传

【Linux必备工具】自动化构建工具makefile的使用详解-优快云博客💢缓冲区是提高系统数据读写效率的重要机制。理解和有效利用缓冲区及其刷新策略,可以显著提升程序性能和资源利用效率。以上就是进度条实现 && Linux下git 的远程上传的全部内容啦!!!💞 💞 💞!!祝大家天天开心。

island1314的博客 6711

如何使用Git整理项目(一)

1.下载git 根据自己的电脑自行下载 http://git-scm.com/download/   2. 下载tortoiseGit以及语言汉化包 http://code.google.com/p/tortoisegit/                     &lt;=tortoiseGit https://tortoisegit.org/download/           ...

qq_34633111的博客 272

数据可视化2_git仓库的使用

文章目录版本控制----->CASE工具中非常重要的一个工具文本编辑神器:Shell 的常见命令:使用Git:初始配置别的命令远端仓库配置免密范围fatal: refusing to merge unrelated historiesfatal: refusing to merge unrelated histories 版本控制----->CASE工具中非常重要的一个工具 Computer Aided Software Engineering 1990s 锁定模式 锁定代码 CVS

niki__的博客 775

Git与GitHub远端协作全攻略:从remote关联、SSH配置到分支合并与报错排查

版本控制是软件工程的基础能力,Git作为最流行的分布式版本控制系统,其核心价值在于管理代码的每一次变更。理解本地仓库与远程仓库的关系是掌握Git的第一步:commit记录本地历史,push将本地提交同步到GitHub,pull则拉取远端更新。对于团队协作,SSH免密配置能大幅提升效率,而合理使用remote关联多个远端,例如fork场景下的upstream,能让同步上游更新变得轻松。分支合并是多人开发的日常操作,merge保留分叉历史,rebase使历史线性化,正确选择能避免混乱。当遇到push被拒、det

weixin_42557803的博客 206

Linux浅谈缓冲区和git的使用

Linux浅谈缓冲区和git的使用

m0_53005929的博客 1917

如何在Linux上使用git远程上传至gitee托管(add-commit-push指令详解)

如何在Liunx上使用git远程上传,git add commit push 指令详解

luhaoran814的博客 1372
上一篇: 【C 语言】调试:从断点、调用栈到定位越界
下一篇: 【JavaSE】初识 Java
周杰偷奶茶
博客等级 码龄5年 666粉丝 99原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周杰偷奶茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值