文章目录
前言
在开发过程中,我们经常需要将本地代码上传到 GitHub,以便进行版本管理、备份或协作。本文将介绍如何使用 Git 命令行将本地项目上传到 GitHub。
一、问题描述
在本地开发完成后,如何使用 Git 命令将项目上传到 GitHub?
- 目标:将本地项目上传到 GitHub
- 需要执行 Git 的一系列命令来完成这个操作
二、具体方法
1. 初始化 Git 仓库
如果项目目录还未被 Git 管理,需要先初始化 Git 仓库:
// 在项目根目录执行
git init
该命令会在当前目录创建一个 .git
文件夹,表示该目录已被 Git 版本控制。
2. 关联远程 GitHub 仓库
如果尚未创建 GitHub 仓库,先去 GitHub 上创建一个新的仓库。
然后在本地执行以下命令,将本地仓库与 GitHub 远程仓库关联:
git remote add origin <你的GitHub仓库地址>
例如:
git remote add origin https://github.com/your-username/your-repo.git
如果想检查是否成功绑定:
git remote -v
3. 添加文件并提交
git add .
. 代表添加当前目录下的所有文件。
git commit -m "First Commit"
-m 后面的内容是提交说明,写清楚提交的内容。
4. 推送代码到 GitHub
第一次推送时,需要先设置默认分支(GitHub 现在默认是 main
,但本地可能是 master
):
git branch -M main
然后执行推送命令:
$ git push -u origin main
如果是 SSH 方式,可能会要求输入 SSH 密钥。如果是 HTTPS 方式,可能会让你输入 GitHub 账号和密码(现在 GitHub 需要使用个人访问令牌而不是密码)。
5.以后更新代码
git add .
git commit -m "更新内容"
git push origin main
6.忽略一些文件或文件夹
a.创建 .gitignore
文件
在你的项目根目录下创建一个 .gitignore
文件(如果不存在)。可以使用命令:
touch .gitignore
或者直接用文本编辑器创建。
b. 编辑 .gitignore
文件
在 .gitignore
中写入你想要忽略的文件或文件夹。例如:
# 忽略编译生成的文件
*.o
*.exe
*.out
# 忽略日志文件
*.log
# 忽略 Python 相关
__pycache__/
*.pyc
*.pyo
# 忽略 IDE 配置文件(VSCode、JetBrains、Eclipse等)
.vscode/
.idea/
*.iml
# 忽略 node_modules(如果是前端项目)
node_modules/
# 忽略环境变量文件
.env
你可以根据你的项目需求修改忽略规则。
c.确保 .gitignore
生效
如果你已经提交了某些文件到 Git 但后来才添加 .gitignore
,你需要让 Git 重新识别它们:
git rm -r --cached .
git add .
git commit -m "更新 .gitignore 规则"
然后再推送到 GitHub:
git push origin main
这样,.gitignore
文件会生效,被忽略的文件将不会上传到 GitHub。
d.可能遇到的报错
注意,这一步可能会遇到问题,例如报错:
fatal: unable to access 'https://github.com/xxx/xxx.git/': Failed to connect to github.com port 443 after 21070 ms: Couldn't connect to server
原因如下:
1.由于网络原因导致的,但是尝试了好几次也没有成功,后面关闭了魔法
,重启了魔法
又成功了;
如果从https
换到了ssh
,然后推送的话,会遇到如下的错误:
To https://github.com/JesonLeee/Code_Debug_Tricks.git
! [rejected] main -> main (fetch first)
error: failed to push some refs to 'https://github.com/xxx/xxx.git'
hint: Updates were rejected because the remote contains work that you do not
hint: have locally. This is usually caused by another repository pushing to
hint: the same ref. If you want to integrate the remote changes, use
hint: 'git pull' before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
这个错误是因为 远程仓库的 main 分支比你的本地 main 分支更新,Git 拒绝了推送。一般来说,这可能是因为:
- 远程仓库有新的提交,但你的本地代码没有同步;
- 其他人或你自己在另一台设备上提交了代码;
- 你重新初始化了 Git 仓库,但远程仓库已有内容。
e.解决方案
- 如果你希望保留远程的更新,并在此基础上推送本地修改,使用:
git pull origin main --rebase
git push origin main
- 如果你确认本地代码才是最终版本,并要覆盖远程代码,使用:
git push origin main --force
7.在 Git 仓库中 删除某个文件
只从 Git 仓库删除,但保留本地文件
首先,使用 git rm 命令删除文件:
git rm --cached 文件名
例如:
git rm --cached myfile.txt
然后提交更改:
git commit -m "从 Git 仓库移除 myfile.txt,但保留本地文件"
最后推送到远程仓库:
git push origin main
适用于: 误提交了某个文件,想让它不被 Git 跟踪,但仍然保留在本地
从 Git 仓库删除,不保留本地文件
首先,使用 git rm 命令删除文件:
git rm 文件名
例如:
git rm myfile.txt
然后提交更改:
git commit -m "删除 myfile.txt"
最后推送到远程仓库:
git push origin main
8.其他常用命令
a.查看当前 Git 状态
git status
b.查看提交历史
git log --oneline --graph --all
c.克隆已有的 GitHub 仓库
git clone <仓库地址>
三、验证与总结
在 GitHub 仓库页面检查是否成功上传。通过以上步骤,我们可以顺利地将本地项目上传到 GitHub,便于版本管理和协作开发。