2025年最新版 Git和Github的绑定方法,以及通过Git提交文件至Github的具体流程(详细版)

文章目录

Git和Github的绑定方法与如何上传至代码仓库

一. 注册 GitHub 账号

  • 所有团队成员都需要各自注册一个 GitHub 账号:https://github.com/join
  • 注册完成后,建议:
    • 配置好自己的头像、昵称
    • 绑定常用邮箱
    • 开启双因素认证(2FA,安全性更高)

二.如何创建自己的代码仓库:

1.登入Github账号,完成登入后会进入如下界面:

在这里插入图片描述

图1.1 Github官网界面

2.点击下图中红色框选的按钮中的下拉列表

在这里插入图片描述

图1.2 创建代码仓库的按钮所在位置

3.选择New repostitory

在这里插入图片描述

图1.3 选择新建仓库的选项(New repostitory)

4.进入创建界面后,按照下图所示操作,完成操作后点击绿色的Create repository按钮

在这里插入图片描述

图1.4 填写新建仓库的各项具体信息

✅ 1. Initialize this repository with a README

💡作用:创建一个初始的 README.md 文件,用来介绍这个项目

具体作用:
  • 项目说明的门面,通常包括:
    • 项目简介
    • 安装/运行方法
    • 使用示例
    • 作者和联系方式
  • 一旦有这个文件,仓库就不是“空仓库”,可以直接 clone 或 pull(不然初始仓库 clone 会报错)
  • 会在 GitHub 页面上直接显示内容,美观又实用
几乎所有项目都应有一个 README,可以当成项目的名片+使用手册

✅ 2. .gitignore 文件

💡作用:告诉 Git 哪些文件不应该提交到版本库

具体作用:
  • 忽略本地临时文件、不必要的环境文件、防止“脏数据”污染仓库
  • 通常用于排除:
    • 编译生成的中间文件(如 .pyc, dist/
    • 编辑器配置(如 .vscode/, .idea/
    • 依赖库(如 node_modules/, .venv/
    • 系统文件(如 .DS_StoreThumbs.db
示例(Python 项目):
gitignore复制编辑__pycache__/
*.pyc
*.pyo
*.pyd
.venv/
.env
.idea/
.vscode/
推荐不设置 .gitignore,很容易把一些不该提交的文件误上传,引发冲突或体积变大。GitHub 提供了各种语言的模板,一键搞定,建议勾选!

✅ 3. License(许可证)

💡作用:告诉别人你这个代码允许别人怎么用

具体作用:
  • 没有许可证 = 默认 保留所有权利,别人不能合法地复制、修改、使用你的代码
  • 加上许可证 = 明确允许他人使用、修改、转载,但可能有条件
常见许可证类型:
许可证开源?可商用?要注明作者?要开源修改?特点
MIT非常宽松,适合开源又希望推广
Apache 2.0保护专利权,适合商业项目
GPL必须开源修改后的代码
无许可证默认“版权保留”,不能用
推荐理由:
  • 如果你是开源项目:建议选 MIT 或 Apache 2.0
  • 如果你不希望别人随便用,就不要加 license 或声明专有协议
  • 如果是私有仓库,license 可选,但加一个也有规范感

📌 总结建议:

选项是否建议勾选说明
README.md✅ 必勾选项目说明文件,增强可读性,避免空仓库
.gitignore✅ 必勾选忽略无用文件,保持仓库整洁
License✅ 可视情况勾选建议开源项目选择 MIT/Apache,私有项目可略过

三.Git绑定Github的方法

1. 将Git绑定到Github的作用

本地 Git 仓库可以同步到 GitHub。

其他成员可以 clone、pull、push 同一个远程仓库,一起协作开发

GitHub 上还能:

  • 创建 issue(任务追踪)
  • 提交 Pull Request(代码审核)
  • 做 CI/CD(自动测试部署)
  • 备份代码,防止丢失
  • 显示项目进度和文档(README、Wiki)

2. 下载Git并完成安装

git安装教程

3. 打开Git bash

在这里插入图片描述

输入指令:
ssh-keygen -t rsa -C "xxxx@xxx.com"
引号中需要为Github账号所绑定邮箱

会有如下显示:

Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/23370/.ssh/id_rsa):
Enter passphrase for "/c/Users/23370/.ssh/id_rsa" (empty for no passphrase):
Enter same passphrase again:
A. Generating public/private rsa key pair.

🔹 系统正在帮你生成一对新的密钥(RSA算法,安全性很高)。

B. Enter file in which to save the key (/c/Users/23370/.ssh/id_rsa):

🔹 让你指定密钥文件保存的位置,默认存到:

/c/Users/23370/.ssh/id_rsa

​ 通常直接回车就行,用默认路径没问题

C. Enter passphrase for “/c/Users/23370/.ssh/id_rsa” (empty for no passphrase): 请输入登入密码

🔹 让你为私钥文件设置一个密码(叫做 passphrase)。

  • 如果你输入密码,以后用这个 SSH 密钥连接时,每次需要输入这个密码。
  • 如果你直接回车(留空),就不用密码,连接会更快(但稍微没那么安全)。
D. Enter same passphrase again:请你确定登入密码(再次输入)
E. 最终生成的文件:
文件内容用途
id_rsa私钥自己保存,绝不能泄露
id_rsa.pub公钥上传到 GitHub 等服务器

4. 前往当前设备的密匙保存路径,比如/c/Users/23370/.ssh , 打开生成的ssh key文件id_rsa.pub并复制key字符串

在这里插入图片描述

图 1.5 保存当前密匙的文件界面

5.点击Github中的头像,点击侧边栏中的Settings,按照 GitHub → Settings → SSH and GPG keys → New SSH key(绿色按钮)的步骤操作

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

图 1.6 将`id_rsa.pub` 的内容复制进去,再点击Add SSH key绿色按钮进行创建
🛠️ Authentication Key vs Signing Key 的区别
项目Authentication Key(认证密钥)Signing Key(签名密钥)
主要用途用来登录 GitHub,比如 git push用来给提交(commit)做签名,证明是你本人提交
Git 操作影响✅ git push、pull、clone 必须靠它🚫 不影响推拉,只管提交签名
是否必需✅ 必须有一把🔸 可选(签名是提升可信度用的)
配置位置(GitHub)Settings → SSH and GPG keys → “Authentication Key”Settings → SSH and GPG keys → “Signing Key”
本地配置额外操作?否,只关联 remote 就好是,需要告诉 Git 用哪把 Key 来签名提交
使用感受连接 GitHub必需,最基础提交更专业/可信,但新手可暂时不管

🎯 最简单理解:
  • Authentication Key:登录 GitHub 的门禁卡 🛂
  • Signing Key:每次提交(commit)的时候,在提交记录上盖一个你的私人印章 🪪
📌 小例子
不设置 Signing Key 时:
git commit -m "Fix bug"
#提交成功,但是 commit 记录上没有认证标识
配置了 Signing Key 后:
git commit -m "Fix bug"
#提交成功,GitHub上显示 "Verified" 绿色小盾牌

这样别人一看,就知道这是你本人提交的,不是别人伪造的。

在这里插入图片描述

图 1.7 成功创建的效果图(配置成功的SSH key)

6. 在Git bash上验证是否绑定成功

(1)输入指令: ssh -T git@github.com,回车后输入刚才设置的密匙密码(注意密码是看不见的)

在这里插入图片描述

PS: 第一次输入的时候会遇到如下显示:(请输入yes)

ssh -T git@github.com The authenticity of host 'github.com (20.205.243.166)' can't be established. ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])?

第一次连接某个服务器(这里是 GitHub)时,SSH 客户端不知道对方的身份,所以它提醒你:

⚠️ “我第一次遇到 github.com,这台机器的指纹是这个(SHA256:xxx),你要不要信任它?”

​ 这相当于确认“你信得过 GitHub 的服务器”

​ 如果你输入 yes,SSH 会把 GitHub 的身份保存下来(记录在你的 known_hosts 文件里),以后再连 GitHub,就不会再问你了。

随后会有如下显示:

Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
Enter passphrase for key '/c/Users/23370/.ssh/id_rsa': 
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.

🔹 系统告诉你:

  • 已经把 GitHub 的服务器信息(它的身份指纹)记录到本地了。
  • 下次连接 GitHub 时,不需要再问你了。
  • 存在文件里:~/.ssh/known_hosts

(✅ 正常现象,没任何问题。)


Enter passphrase for key '/c/Users/23370/.ssh/id_rsa':

🔹 这里问你要SSH私钥的密码(passphrase)。

这是因为:

  • 你在一开始生成 SSH 密钥的时候,设置了passphrase(私钥保护密码)。
  • 现在要用这把私钥去连接 GitHub,所以系统要你输入密码来解锁私钥

👉 只要输入你当时设置的密码就行(输入的时候不会显示星号 *,正常的)。

显示 Hi Ac157OL! You’ve successfully authenticated, but GitHub does not provide shell access.即为连接成功

Hi Ac157OL!:GitHub 跟你打招呼,确认你的账号(Ac157OL)已经通过了身份验证。

You’ve successfully authenticated:你的 SSH 密钥验证通过了,已经可以正常连 GitHub。

but GitHub does not provide shell access:GitHub 只是用来托管代码的,它不会给你一个远程终端(shell),所以你不能像登录服务器一样直接操作。

(2)设置username和email,输入如下指令:
git config --global user.name “xxx”
git config --global user.email “xxxx@xxx.com”

即使已经在Github完成了SSH key的绑定,但是依旧需要设置username和email这两个参数,原因如下:

项目说明
SSH连GitHub只是让你的电脑可以连上GitHub服务器,身份验证通过了。
git config --global user.name/user.email是告诉 Git:以后每次你提交(commit)代码时,署名用哪个名字和邮箱。
  • SSH连接 = “门禁卡”
    → 你刷卡进公司了
  • git config 设 username/email = “在文件上签名”
    → 你在公司提交的每一份文件上,都要签上你的名字和邮箱,告诉别人这是谁写的

👉 不设 username/email,git commit 也能做,但提交记录上就没有明确署名或者是默认的,很乱很丑。

**这里需要注意一点:因为 GitHub 上每一条提交记录(commit)都和邮箱绑定。**所以在git config --global user.email "xxxx@xxx.com"中填写的必须是Github绑定的邮箱
  • 如果你设置了正确的邮箱(和 GitHub 账号里的邮箱对应),GitHub 提交记录上会显示你的头像和链接到你的 GitHub 账号。
  • 如果乱填一个邮箱(比如打错了),GitHub会显示一个小问号 ❓,无法正确关联到你的账号。

邮箱才是 GitHub 识别身份的关键不是靠 SSH名字

设置项要求说明
git config --global user.name随便填(当然建议和GitHub用户名一样,看起来正规一点)只是一个“提交署名”的显示名字,不影响 GitHub 识别身份。
git config --global user.email必须和你 GitHub 账户绑定的邮箱一致GitHub靠邮箱来识别你的提交归属,邮箱错了,GitHub认不出来。

git config --global 设置一次就永久生效

  • --global 代表:这个配置是全局配置只要在你电脑上,用Git提交,都会默认用这个name和email
  • 只需要执行一次,以后不用每次提交都再写。
如何检查一下你现在的 git 配置是否正确,直接输入如下指令:
git config --global --list

就能看到现在生效的 user.nameuser.email

如果以后你想检查自己当前的 user.nameuser.email 配置,可以用:
git config --global user.name
git config --global user.email

Git会直接告诉你现在生效的是哪一组设置。

(3)设置git的本地仓库
1、直接在需要上传的文件目录下右键点击打开git bash

在这里插入图片描述

2、 创建本地git仓库的方法:在git bash终端输入指令git init

在这里插入图片描述

内容意思
git init你执行了初始化命令
Initialized empty Git repositoryGit告诉你:“仓库已经创建好了,当前是空的。”

Git 就会在这个文件夹下,悄悄建一个隐藏目录 .git,用来记录所有的版本变化、提交记录、分支信息

  • 🔹 没有 git init,Git 是不会管你文件怎么改的。
  • 🔹 一旦 git init,这里所有变化 Git 都能追踪、记录。

如果你想验证一下 .git 真的在,可以在 Git Bash 里敲:

ls -a

它会列出所有文件(包括隐藏文件),你应该能看到一个 .git/ 文件夹。

3、 上传文件到Github的方式

Git是分两步提交的

3.1 将文件添加到 Git 暂存区:用 git add 把你指定的文件,标记为"准备好要提交",放到 Git 的“暂存区(staging area)”。

git add README.md
git add ./*
  • git add README.md 是只添加 README.md 一个文件。
  • git add ./ 是把当前目录下所有文件都添加进去(相当于:全都准备好要提交了)。

3.2 正式提交到本地仓库

git commit -m "本次提示信息" (这里的提示信息填写什么都可以,可以说明修改的部分)

把刚刚 git add 过的文件,真正记录到 Git 仓库历史中
并且用 -m "提示信息" 给这次提交写一个小备注,告诉自己和别人:“这次提交是干了啥”。

  • 例子:git commit -m "初始化项目"
  • 例子:git commit -m "添加了登录模块"

commit是一次"快照"保存,给未来版本回滚提供依据

git add:把文件添加到暂存区

git commit:将暂存区的文件提交到本地 Git 仓库,并生成一条提交记录。

PS:如果文件名中有空格,你可以将整个文件名用引号包裹起来(单引号或双引号都可以),这样 Git 就能正确识别路径。

例如:

git add 'AI Agent-V10'

或者:

git add "AI Agent-V10"

如果你不想使用引号,也可以使用反斜杠 \ 来转义空格。这样可以确保空格不会被分开:

git add AI\ Agent-V10

如果出现如下信息

$ git add 'AI Agent-V10'
warning: in the working copy of 'AI Agent-V10/AI Agent/test_model.py.code-workspace', LF will be replaced by CRLF the next time Git touches it
解释:
  • LF (Line Feed)CRLF (Carriage Return + Line Feed) 都是行结束符,用来标识一行的结束。
    • LF (\n) 是 Unix 和 Linux 系统中使用的行结束符。
    • CRLF (\r\n) 是 Windows 系统中使用的行结束符。
  • Git 的默认行为是根据你的操作系统来管理文件的行结束符。在 Windows 上,Git 会将文件中的 LF(Unix 样式行结束符)转换为 CRLF(Windows 样式行结束符),当 Git 操作这些文件时,会自动进行转换。
  • 警告信息提醒你,下次 Git 在处理这个文件时,会把文件中的 LF 转换成 CRLF
为什么会出现这个警告:
  1. 你的文件在本地工作区(working directory)中使用了 LF 作为行结束符。
  2. Git 会在下次操作这个文件时将其转换为 CRLF,以符合 Windows 系统的行结束符标准。
解决方法:

这个警告本身并不会导致提交失败。它只是告诉你,Git 会在下一次触摸这个文件时,自动将行结束符转换成 CRLF。

如果你不想看到这个警告或希望 Git 以特定方式处理行结束符,可以调整 Git 的配置。

如果你希望 Git 始终保持一致的行结束符

你可以使用以下命令来配置 Git 处理行结束符:

git config --global core.autocrlf true

这个设置会让 Git 在提交时自动将 LF 转换为 CRLF,而在检出(checkout)时自动将 CRLF 转换回 LF,适用于 Windows 系统。

记住重要的一点:

没有 git add,提交会失败,因为 Git 不知道你想提交哪些文件。

git commit 是在提交之前对暂存区的文件进行确认和打包(这时才会把你之前用 git add 加入的文件提交)。

git commit 不会“重新”添加文件,它仅仅是提交暂存区的内容,并且会生成一条提交记录。如果没有使用 git add,则没有任何文件被加入提交

🏅 小tip:这种方式只适用于已经被 Git 管理的文件,新文件还是需要 git add

如果忘记加 git add,提交时可以加 git commit -a,它会自动把所有已经跟踪的文件(已被 Git 管理的文件)加到暂存区,再提交:

git commit -a -m "提交所有修改"

总结流程

步骤命令解释
1git init把这个文件夹变成 Git仓库(开始版本管理)
2git add 文件名git add ./把文件放入"准备提交"的暂存区
3git commit -m "备注"真正提交到本地仓库,写一条变更记录

你可以用下面的命令查看提交记录(验证成功了没):

git log

可以看到每一次 commit 的 ID、作者、提交时间和备注。

(4)本地仓库与github远程仓库关联
1、查看Github代码仓库地址

在这里插入图片描述

2、 在Git bash上执行关联操作,输入如下指令(引号为代码仓库的地址信息)
git remote add origin “git@github.com:xxxx"
为什么需要绑定仓库?
  • 本地仓库只是你的代码保存在本地的地方,而**远程仓库(如 GitHub)**才是真正托管你的代码的地方。
  • 当你提交(git commit)时,Git 只会保存在本地仓库,它并不会自动上传到 GitHub。
  • 为了将提交推送到远程 GitHub 仓库,你需要明确告诉 Git 要推送到哪个远程仓库

需要使用 git remote add 命令将本地仓库与 GitHub 上的仓库进行绑定,具体步骤如下:

在 GitHub 上创建一个新的仓库(假设你已经在 GitHub 上创建了一个名为 my-repo 的仓库)
  • 假设进入 GitHub,点击“New repository”按钮,创建一个新的仓库,命名为 my-repo
将远程 GitHub 仓库绑定到本地仓库**

在本地仓库的 Git Bash 中,使用以下命令绑定 GitHub 仓库:

git remote add origin https://github.com/你的用户名/my-repo.git
  • origin 是 Git 默认的远程仓库名称。
  • https://github.com/你的用户名/my-repo.git 是你 GitHub 仓库的 URL,你可以在 GitHub 仓库页面找到它。
验证远程仓库是否绑定成功

你可以使用以下命令检查绑定情况:

git remote -v

如果绑定成功,会显示类似:

origin  https://github.com/你的用户名/my-repo.git (fetch)
origin  https://github.com/你的用户名/my-repo.git (push)
3、 🎯 在多个 GitHub 仓库中选择目标仓库

如果你有多个远程仓库,你可以使用 不同的名字 来区分这些远程仓库。例如,如果你有两个 GitHub 仓库 repo1repo2,你可以这样设置:

git remote add repo1 https://github.com/你的用户名/repo1.git
git remote add repo2 https://github.com/你的用户名/repo2.git

然后,推送到指定的远程仓库

git push repo1 master  # 推送到 repo1
git push repo2 master  # 推送到 repo2
切换远程仓库

你还可以随时查看、删除或修改绑定的远程仓库:

  • 查看远程仓库:git remote -v
  • 删除远程仓库:git remote remove origin
  • 修改远程仓库 URL:git remote set-url origin 新的仓库地址

绑定本地仓库和 GitHub 仓库:必须通过 git remote add origin <GitHub仓库URL> 来绑定。

推送到指定仓库:如果有多个仓库,可以在 git push 时明确指定仓库名,如 git push repo1 master

查看远程仓库:使用 git remote -v 查看已经绑定的远程仓库。

3.1 git remote add 的作用
git remote add <远程名> <仓库URL>
  • <远程名>:给这个远程仓库起的一个本地“别名”,方便后面引用。例如 originrepo1backupupstream……
  • <仓库URL>:你在 GitHub(或其他托管平台)上创建的那个仓库的地址。

3.2 origin vs 自定义远程名
  • origin

    • 这是 Git 默认的远程名,几乎所有教程里把主仓库都叫 origin
    • 当你 git clone 一个仓库时,Git 会自动把源 주소 设为 origin
  • 自定义(repo1、repo2、backup……)

    • 如果你还想推送到第二个、第三个仓库,就可以再 git remote add 一个新的远程名:

      git remote add repo1 https://github.com/你的用户名/repo1.git
      git remote add repo2 https://github.com/你的用户名/repo2.git
      
    • 这里的 repo1repo2 只是一种示例命名,完全可以换成任何你能一眼看出用途的名字,比如 originmirrorbackup


3.3 推送到不同的远程
  • 如果你只有一个远程(origin),那就:

    git push origin master
    
  • 如果你绑定了两个远程:

    push repo1 master   # 把 master 分支推到 repo1
    git push repo2 master   # 把 master 分支推到 repo2
    
  • 这样,同一份代码、同一个分支,可以同步推送到多个远程仓库。

3.4 如何查看和管理已有远程
  • 查看

    git remote -v
    
  • 修改 URL

    git remote set-url repo1 新的地址
    
  • 删除

    git remote remove repo2
    

**注意:git remote add origin 只能为 本地仓库 添加 一个主远程仓库

而这个 origin 通常是你最初推送或克隆时默认绑定的仓库。

具体解释:
  • origin 是 Git 中的一个默认远程仓库名,当你克隆一个仓库时,Git 会自动将这个远程仓库命名为 origin,并将其作为默认的推送和拉取源。
  • 每个本地仓库只能有 一个 origin,但是你可以通过 git remote add 命令为一个本地仓库添加 多个其他远程仓库,这些远程仓库的名字可以是自定义的(如 repo1, repo2, backup, staging 等)。
例子:

假设你有一个本地仓库,你想同时推送到 GitHub 和 GitLab:

  1. 首先添加 GitHub 仓库(作为 origin

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

    这里的 origin 是默认的远程仓库名。

  2. 再添加 GitLab 仓库(可以使用自定义名字)

    git remote add gitlab https://gitlab.com/你的用户名/your-repo.git
    

查看所有远程仓库:

git remote -v

输出会类似于:

origin    https://github.com/你的用户名/your-repo.git (fetch)
origin    https://github.com/你的用户名/your-repo.git (push)
gitlab    https://gitlab.com/你的用户名/your-repo.git (fetch)
gitlab    https://gitlab.com/你的用户名/your-repo.git (push)

小结:

  • origin 是默认的远程仓库名,且每个本地仓库只能有一个 origin
  • 你可以为同一个本地仓库添加多个远程仓库,只要它们的名字不同(例如 originrepo1repo2 等)。
  • origin 并不限制你只能添加一个仓库,其他自定义的远程仓库名没有限制
4、 在Git bash上输入如下指令,将文件从本地上传到Github

当你在本地仓库里执行这条指令:

git push -u origin master

它做了两件事情:


1. 把本地的 master 分支推送到远程的 origin 仓库上
  • origin 是你本地设置的远程仓库名(通常指向 GitHub 上那个仓库地址)。
  • master 是你要推送的本地分支名字(现在有些仓库默认是 main,但如果你本地分支叫 master,就写 master)。
  • 这一步会真正把你的代码文件上传到 GitHub 仓库上,GitHub 页面上也能看到文件了。

2. 建立本地分支和远程分支的关联(Tracking)
  • -u--set-upstream 的简写。
  • 它的作用是告诉 Git:“以后这个本地分支(master)默认关联到远程的 origin/master 分支”。
  • 好处是以后就可以直接用更短的指令推送或者拉取,比如:
    • 推送:git push
    • 拉取:git pull
  • 不需要每次都敲一大串 git push origin master

总结一句话:

git push -u origin master 会把代码传到 GitHub,并且帮你把本地分支和远程分支自动关联好,以后操作就方便很多了


小补充一下:
  • 如果是第一次推送(第一次建立远程仓库的连接),一定要用 -u
  • 之后继续更新代码,只需要在本地改完 ➔ git add .git commit -m "描述"git push,就可以了,不用再加 origin master,很省事!
(4)在Github上查看提交信息:

点击如下按钮,选择分支(该分支名称和提交时指令git push -u origin master中的master有关系)

在这里插入图片描述

(5)克隆Github代码仓库到本地(git@github.com:xxx此处使用的是代码仓库的地址)
git clone git@github.com:xxx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值