文章目录
- Git和Github的绑定方法与如何上传至代码仓库
- 一. 注册 GitHub 账号
- 二.如何创建自己的代码仓库:
- 三.Git绑定Github的方法
- 1. 将Git绑定到Github的作用
- 2. 下载Git并完成安装
- 3. 打开Git bash
- 4. 前往当前设备的密匙保存路径,比如``/c/Users/23370/.ssh`` , 打开生成的ssh key文件id_rsa.pub并复制key字符串
- 5.点击Github中的头像,点击侧边栏中的Settings,按照 GitHub → Settings → SSH and GPG keys → New SSH key(绿色按钮)的步骤操作
- 6. 在Git bash上验证是否绑定成功
- ✅ `git config --global` 设置**一次就永久生效**
- 🏅 小tip:**这种方式只适用于已经被 Git 管理的文件,新文件还是需要 `git add`。**
- 总结流程
- 查看所有远程仓库:
- 小结:
Git和Github的绑定方法与如何上传至代码仓库
一. 注册 GitHub 账号
- 所有团队成员都需要各自注册一个 GitHub 账号:https://github.com/join
- 注册完成后,建议:
- 配置好自己的头像、昵称
- 绑定常用邮箱
- 开启双因素认证(2FA,安全性更高)
二.如何创建自己的代码仓库:
1.登入Github账号,完成登入后会进入如下界面:
2.点击下图中红色框选的按钮中的下拉列表
3.选择New repostitory
4.进入创建界面后,按照下图所示操作,完成操作后点击绿色的Create repository按钮
✅ 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_Store
、Thumbs.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并完成安装
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字符串
5.点击Github中的头像,点击侧边栏中的Settings,按照 GitHub → Settings → SSH and GPG keys → New 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" 绿色小盾牌
这样别人一看,就知道这是你本人提交的,不是别人伪造的。
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.name
和 user.email
!
如果以后你想检查自己当前的 user.name
和 user.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 repository | Git告诉你:“仓库已经创建好了,当前是空的。” |
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 系统中使用的行结束符。
- LF (
- Git 的默认行为是根据你的操作系统来管理文件的行结束符。在 Windows 上,Git 会将文件中的 LF(Unix 样式行结束符)转换为 CRLF(Windows 样式行结束符),当 Git 操作这些文件时,会自动进行转换。
- 警告信息提醒你,下次 Git 在处理这个文件时,会把文件中的 LF 转换成 CRLF。
为什么会出现这个警告:
- 你的文件在本地工作区(working directory)中使用了 LF 作为行结束符。
- 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 "提交所有修改"
总结流程
步骤 | 命令 | 解释 |
---|---|---|
1 | git init | 把这个文件夹变成 Git仓库(开始版本管理) |
2 | git add 文件名 或 git add ./ | 把文件放入"准备提交"的暂存区 |
3 | git 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 仓库 repo1
和 repo2
,你可以这样设置:
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>
<远程名>
:给这个远程仓库起的一个本地“别名”,方便后面引用。例如origin
、repo1
、backup
、upstream
……<仓库URL>
:你在 GitHub(或其他托管平台)上创建的那个仓库的地址。
3.2 origin vs 自定义远程名
-
origin
- 这是 Git 默认的远程名,几乎所有教程里把主仓库都叫
origin
。 - 当你
git clone
一个仓库时,Git 会自动把源 주소 设为origin
。
- 这是 Git 默认的远程名,几乎所有教程里把主仓库都叫
-
自定义(repo1、repo2、backup……)
-
如果你还想推送到第二个、第三个仓库,就可以再
git remote add
一个新的远程名:git remote add repo1 https://github.com/你的用户名/repo1.git git remote add repo2 https://github.com/你的用户名/repo2.git
-
这里的
repo1
、repo2
只是一种示例命名,完全可以换成任何你能一眼看出用途的名字,比如origin
、mirror
、backup
。
-
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:
-
首先添加 GitHub 仓库(作为
origin
):git remote add origin https://github.com/你的用户名/your-repo.git
这里的
origin
是默认的远程仓库名。 -
再添加 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
。- 你可以为同一个本地仓库添加多个远程仓库,只要它们的名字不同(例如
origin
、repo1
、repo2
等)。 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