从零开始,学会上传,更新,维护github仓库

从零开始,学会上传,更新,维护github仓库

以下是一份从头到尾、覆盖安装、配置、创建仓库、上传项目到 GitHub 的完整教程。全程使用通用示例,不包含任何具体的仓库链接,仅供参考。


一、准备工作

1. 注册 GitHub 账号

  1. 打开浏览器,访问 GitHub 官网(输入 “GitHub” 即可找到)。
  2. 点击“Sign up”或“注册”按钮,按提示输入邮箱、用户名、密码,并完成邮箱验证。
  3. 登陆后,进入个人主页,即可进行后续操作。

二、安装并配置 Git

1. 在不同操作系统上安装 Git

  • Windows:
    1. 打开浏览器,搜索“Git Windows安装”并找到官网的下载页面。
    2. 下载最新版本的安装包(通常是以 .exe 结尾的文件),双击运行后一路“Next”完成安装。
    3. 安装过程中保持默认设置即可(除非你有特殊需求)。
  • macOS:

Linux(以 Ubuntu 为例):
打开终端,执行:

sudo apt update sudo apt install git -y 

可以通过包管理器安装(推荐 Homebrew)。在终端中执行:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew install git 

如果不想使用 Homebrew,也可以直接下载 macOS 安装包,按照提示安装。

安装完成后,在任意终端(Windows 下可打开 Git Bash)里输入:

git --version 

如果输出类似 git version 2.x.x,说明安装成功。

2. 全局配置 Git 用户信息

安装完成后,需要告诉 Git 是谁在提交代码。打开终端,依次执行:

git config --global user.name "你的用户名" git config --global user.email "你的邮箱@example.com" 
  • user.name:填写你在 GitHub 上注册的用户名或昵称。
  • user.email:填写与你 GitHub 帐号绑定的邮箱地址。

配置完毕后,可以用下面命令检查:

git config --global --list 

会看到类似:

user.name=你的用户名 user.email=你的邮箱@example.com 

三、为安全验证配置 SSH(可选,但推荐)

使用 SSH 方式推送/拉取代码,可以避免每次输入用户名和密码(Token)。下面介绍 SSH 公钥的生成与添加。

1. 生成 SSH 密钥对

    • 按提示一路回车即可,默认会在用户主目录下生成 .ssh/id_ed25519(私钥)和 .ssh/id_ed25519.pub(公钥)两个文件。
    • 如果提示 “文件已存在”,可选择覆盖或另存为其他文件名,也可以按提示输入一个新的名称。

生成完成后,执行以下命令查看公钥内容:

cat ~/.ssh/id_ed25519.pub 

终端会输出一串以 ssh-ed25519 开头的字符串,这就是公钥。

打开终端(或 Git Bash),执行:

ssh-keygen -t ed25519 -C "你的邮箱@example.com" 

2. 将 SSH 公钥添加到 GitHub

  1. 在浏览器中,登陆 GitHub,点击右上角头像,选择“Settings”(设置)。
  2. 在左侧栏中找到 SSH and GPG keys,点击进入。
  3. 点击 New SSH key(新增 SSH 密钥),在“Title”框里可以填写一个有意义的名字(例如 “My Laptop”),然后把刚才复制的公钥粘贴到下面的文本框中,最后点击 Add SSH key
  4. 如果 GitHub 要求你输入账号密码或两步验证码,按提示输入即可。

添加成功后,SSH 验证就设置完毕。可以测试连接:

ssh -T [email protected] 

如果提示类似 “Hi <用户名>! You've successfully authenticated...” 则说明 SSH 验证配置正确。


四、在 GitHub 上创建一个空仓库

  1. 登陆 GitHub 后,点击右上角的 “+” 按钮,选择 New repository(新建仓库)。
  2. 在 “Create a new repository” 页面填写:
    • Repository name:为你的项目起个名字,例如 my-project
    • Description(可选):添加简短描述。
    • PublicPrivate:根据需要选择公开或私有。
    • Initialize this repository with a README:通常不勾选,否则会自动生成一个 README 文件,后续需要先拉取再推送。
  3. 点击下方的 Create repository(创建仓库),稍等片刻后就会进入新仓库页面。页面上会提供 HTTPS 和 SSH 两种地址,如:
    • HTTPS: https://github.com/你的用户名/my-project.git
    • SSH: [email protected]:你的用户名/my-project.git
      记住这两个地址中的一种,后续用来关联本地仓库。

五、将本地项目与远程仓库关联并上传

下面以一个已存在本地项目的目录为例,演示如何上传到 GitHub。假设本地项目文件夹路径为 ~/projects/my-project,且目录下已有若干源代码或资源文件。

1. 在本地初始化 Git 仓库

  1. 你可以运行 ls -Agit status 来确认目录下已有普通文件,但 Git 还没追踪它们。

在该目录下执行:

git init 

这会创建一个隐藏的 .git/ 文件夹,使该目录成为一个 Git 仓库。

打开终端,切换到项目根目录:

cd ~/projects/my-project 

2. 将文件添加到暂存区并提交

创建第一次提交

git commit -m "首次提交:项目初始化" 

以上操作会在本地生成一个提交记录(commit),大多数情况下会默认在 master 分支上。如果想直接把主分支命名为 main,可以执行:

git branch -M main 

这样以后本地仓库的主分支就是 main(与 GitHub 通用约定保持一致)。

把所有文件添加到暂存区

git add . 

这样做会把当前目录(及子目录)下所有未被忽略的文件都纳入暂存区。

查看当前状态(可选):

git status 

这时 Git 会告诉你哪些文件是 “Untracked files”(未跟踪文件)。

3. 将本地仓库与远程仓库关联

  1. 在本地执行下面命令,将远程仓库地址添加为名为 origin 的远程源:注意:命令开头务必是小写的 git,不要带任何隐藏字符或破折号。

添加成功后,可用下面命令确认:

git remote -v 

你会看到类似:

origin https://github.com/你的用户名/my-project.git (fetch) origin https://github.com/你的用户名/my-project.git (push) 

或者如果用的是 SSH,则显示:

origin [email protected]:你的用户名/my-project.git (fetch) origin [email protected]:你的用户名/my-project.git (push) 

使用 SSH(已配置 SSH 密钥则无需输入密码):

git remote add origin [email protected]:你的用户名/my-project.git 

使用 HTTPS(需要每次输入用户名/密码或 Token):

git remote add origin https://github.com/你的用户名/my-project.git 

4. 推送本地提交到远程仓库

    • -u origin main 的含义是:把本地 main 分支推送到远程 origin,并建立跟踪关系。以后只需直接执行 git push 即可。
  1. 在推送过程中,如果使用 HTTPS,需要输入 GitHub 用户名和密码(如果启用了两步验证,则输入 Personal Access Token);如果使用 SSH,且 SSH key 已配置好,则不会再提示输入密码。
  2. 刷新浏览器,打开 GitHub 上该仓库页面,就能看到你刚才上传的所有文件。

推送成功后,终端会显示类似:

Enumerating objects: 10, done. Counting objects: 100% (10/10), done. Compressing objects: 100% (7/7), done. Writing objects: 100% (10/10), 1.23 KiB | 1.23 MiB/s, done. Total 10 (delta 0), reused 0 (delta 0) To https://github.com/你的用户名/my-project.git * [new branch] main -> main branch 'main' set up to track 'origin/main'. 

如果当前分支是 main

git push -u origin main 

如果当前分支是 master(没有重命名为 main),则:

git push -u origin master 

六、后续开发与同步

项目上传成功后,后续只需按照下面步骤更新远程仓库即可。

1. 修改/新增文件后上传

  1. 在本地对文件进行修改或新增文件。
  2. 添加改动到暂存区:

推送到远程:

git push 

由于第一次已经用 -u origin main-u origin master 与远程分支建立了跟踪关系,后续直接 git push 即可。

提交改动:

git commit -m "本次更新:简要说明修改内容" 

如果只想添加某个文件:

git add path/to/yourfile.ext 

如要一次添加所有改动:

git add . 

查看项目状态:

git status 

可以看到哪些文件被修改、哪些是新文件。

2. 如果远程仓库有了新的提交(多人协作时常见)

    • --rebase 可以保持提交历史线性;不带则会自动创建一个合并提交(Merge commit)。

如果出现冲突(Conflict),按提示打开冲突文件,手动保留、删除冲突标记(<<<<<<<=======>>>>>>>),然后执行:

git add 冲突已解决的文件 git rebase --continue # 如果使用了 --rebase 

或者如果是普通 git pull

git add 冲突已解决的文件 git commit 

冲突解决完成后再执行 git push,即可把本地改动与远程最新内容同步。

在推送之前,可以先拉取远程更新:

git pull --rebase origin main 

或者:

git pull origin main 

七、常见问题与注意事项

  1. 命令前不要出现隐藏字符
    • 如果复制粘贴时前面多了不可见破折号(如 “–”)或空格,Git 会识别为非法命令,从而提示 “command not found”。遇到这种情况,请按几次退格键把前导的隐藏字符清除,然后再手动输入 git initgit add 等命令。
  2. .gitignore 文件
    • 这样做可以避免把编译生成的临时文件、IDE 配置、依赖包等无关文件上传到仓库。
  3. 分支管理
    • 合并完成后,再执行 git push 即可把合并后的结果推到远程。
  4. SSH 与 HTTPS
    • 如果长时间需要频繁推送,推荐使用 SSH 方式,只需在本地生成过一次 SSH 密钥,并把公钥添加到 GitHub,就不需要每次输入用户名/密码或 Token。
    • 如果安全要求较高或不方便配置 SSH,也可以继续使用 HTTPS,但每次推送时都可能需要输入 Token。
  5. Token 和安全
    • GitHub 已逐步弃用直接使用密码进行 HTTPS 验证,强制使用个人访问令牌(Personal Access Token)。
    • 在终端推送时,如果提示要求用户名和密码,你可以把用户名填为 GitHub 用户名,然后把个人访问令牌粘贴到密码处。访问令牌可以在 GitHub 个人设置里新建。
  6. 远程仓库已初始化 README 情况

如果你在新建仓库时勾选了“初始化 README”,远程仓库就会自带一个提交记录。这时本地一开始是空的,如果你直接执行 git push 会被拒绝(提示需要先拉取远程更改)。解决方法是先执行:

git pull --rebase origin main 

把远程的那次提交拉下来并合并到本地,然后再 git push

完成开发并测试通过后,切回 main 分支并合并:

git checkout main git merge feature/新功能名称 git branch -d feature/新功能名称 

默认情况下,你会在 main(或 master)分支上工作。如果想开发新功能、修复 Bug,通常会新建分支:

git checkout -b feature/新功能名称 

在项目根目录创建一个名为 .gitignore 的文件,写入你不想跟踪(即不想上传到远程)的文件或文件夹规则。常见示例:

node_modules/ *.log .env .DS_Store build/ *.pyc 

八、小结

  1. 安装 Git 并配置 user.nameuser.email
  2. (可选)配置 SSH 密钥,将公钥添加到 GitHub。
  3. 在 GitHub 上创建一个空仓库(不勾选初始化 README)。
  4. 在本地项目目录执行 git init,将项目转为 Git 仓库。
  5. 执行 git add .git commit -m "描述",完成首次提交。
  6. 使用 git remote add origin <远程仓库地址> 关联远程。
  7. 执行 git push -u origin main(或 master)将本地提交推送到 GitHub。
  8. 后续开发:用 git addgit commitgit push 完成更新。若需合并远程改动,先 git pull --rebasegit push

以上步骤涵盖了从安装软件到首次上传,再到后续代码同步的完整流程。只要每一步都按照说明并自己手动输入命令,就能顺利把项目上传并保持与 GitHub 的同步。

Read more

Llama-3.2-3B实战:用Ollama生成营销文案

Llama-3.2-3B实战:用Ollama生成营销文案 电商商家每天需要制作大量商品营销文案,人工撰写不仅耗时耗力,还难以保证创意和质量。本文将展示如何用Llama-3.2-3B模型快速生成高质量营销文案,让你的产品描述瞬间变得吸引人。 1. 快速上手:3分钟部署Llama-3.2-3B 不需要复杂的环境配置,不需要写代码,只需要简单几步就能开始使用这个强大的文案生成工具。 1.1 找到Ollama模型入口 打开你的Ollama界面,在模型选择区域找到入口。通常这里会显示当前可用的模型列表,如果还没有Llama-3.2-3B,需要先下载。 1.2 选择Llama-3.2-3B模型 在模型选择下拉菜单中,找到并选择【llama3.2:3b】。这个3B版本的模型在生成质量和运行速度之间取得了很好的平衡,特别适合营销文案生成任务。 1.3 开始使用模型 选择模型后,页面下方的输入框就会激活,你可以直接在这里输入你的需求,模型会立即生成相应的文案。 2. 营销文案生成实战案例 下面通过几个真实场景,展示Llama-3.2-3B在营销文案生成方面的强大能力。 2.1

By Ne0inhk
从 Copilot 到工程化 Agent 执行框架:基于OpenCode + OpenSpec 的企业级 AI Coding 落地实践

从 Copilot 到工程化 Agent 执行框架:基于OpenCode + OpenSpec 的企业级 AI Coding 落地实践

引言:AI Coding 进入规范驱动自动化时代         当前,许多开发者在使用 AI 编程助手时正普遍面临—个痛点:在处理大型项目时, AI 似乎会“遗忘”上下文,导致代码回归、引入新 Bug 或生成不符合项目规范的混乱代码。正如研发同学反复出现的挫败感:  “代码库越大, AI 弄得越乱”。         这种被称为“Vibe Coding”的模式,是 AI 辅助工程必要的、但也是原始的第—步。它更像—种不可预测的艺术,而非可重复、可扩展的科学。要真正释放 AI 的生产力,我们必须迎来—次范式的进化:从凭感觉的“Vibe Coding” ,转向由规范驱动的(Spec-Driven Development)专业化 AI 工程新范式。         本文将深入探讨如何将强大的

By Ne0inhk
我用Openclaw + Claude搭了一套自动写作系统,每天省3小时

我用Openclaw + Claude搭了一套自动写作系统,每天省3小时

这是我目前最重要的一套AI工作流。从信息获取到发布,几乎不用手动完成。 一、为什么我要搭建这套系统? 信息过载的困境 如果你也在持续关注AI,应该会有同样的感受: 信息太多了。 每天打开 X、公众号、GitHub、技术社区,都会冒出大量新内容。 AI模型更新、工具更新、Agent框架、自动化方案…… 想跟上这些信息,本身就已经是一项工作。 手动写作的低效循环 更别说: * 整理信息 * 找选题 * 写文章 * 配图 * 发布到各个平台 如果全部手动完成,写作就会变成一件非常消耗精力的事。 我一度也在这种状态里: 想持续输出,但写作本身占用了太多时间。 一个关键问题 后来我开始思考一个问题: 如果写作这件事可以被"系统化",会发生什么? 于是,我不再把AI当成写作工具。 而是开始搭一套完整的 AI写作工作流。 二、思路转变:从优化写作到优化流程 大多数人的AI写作方式 大多数人使用AI写作,是这样:

By Ne0inhk

Llama-factory 详细学习笔记:第六章:DPO (直接偏好优化) 实战 (难点)

第六章:DPO (直接偏好优化) 实战 (难点) 在SFT之后,我们的模型学会了“说话”,但它的回答可能仍然是“正确的废话”,或者在面对开放性问题时,其回答的安全性、有用性和真实性仍有待提高。传统的解决方案是强化学习(RLHF),即先训练一个奖励模型(RM),再用这个RM作为环境,通过复杂的强化学习算法(如PPO)来优化语言模型。然而,RLHF流程复杂、训练不稳定、且对计算资源要求极高,令许多开发者望而却步。 直接偏好优化 (Direct Preference Optimization, DPO) 的出现,如同一道曙光,彻底改变了这一局面。它以一种极其优雅和高效的方式,实现了与RLHF相媲美甚至更好的对齐效果,但训练成本和复杂度却大大降低。本章将深入剖析DPO的核心思想、重难点配置,并通过详尽的实战步骤,带你完整地跑通一个DPO训练流程,真正让你的模型“更懂人心”。 6.1 为什么需要 DPO? (轻理论:替代 PPO,

By Ne0inhk