Git 将本地文件push到GitHub仓库
一、具体流程
1.打开git bash
在需要push的文件目录下使用git bush,如下图所示:


LFS(Git Large File Storage)(可选)
安装LFS以用于push大型文件,Windows下载地址为Git Large File Storage (LFS)),其原理为:
Git LFS 通过将大文件替换为小型文本指针(Pointer)来避免直接提交大文件到仓库。但这个替换过程需要手动指定追踪规则:
- 未被追踪的文件:仍会作为普通文件直接提交到 Git 仓库,导致仓库膨胀。
- 被追踪的文件:Git 会自动将其转换为指针文件,并将实际内容存储到 LFS 服务器。
指定追踪的文件
git lfs track "*.zip"
2.查看全局配置
此命令会显示用户主目录下.gitconfig
文件中的配置,影响所有 Git 仓库。
git config --global --list //查看username和email
git config --global user.name 'ABC' //设置新的username
git config --global user.email ABC@qq.com //设置新的email
3.创建版本库(仅用于第一次)
git init
4.写入缓存
git add . //添加当前目录所有修改到缓存
git add ./filename //指定将某个文件写入缓存
git status //查看已经添加到缓存区的文件
//输出中以 Changes to be committed: 开头的文件即为已添加到暂存区的文件
5.检查并配置远程转态
git remote -v // 查看已配置的远程仓库
git remote add origin https://github.com/AA/leisure.git //这个链接是你远程仓库的地址
git remote set-url origin <新github仓库地址> //如果要修改成新的仓库地址
6.提交写入缓存的文件到仓库
git commit -m 'describe' //describe:具体说明提交了什么,只是一个描述
7.查看本地分支和远程分支,并进行推送
git branch //列出本地已经存在的分支,当前所在分支会用 * 标记
git branch -r //列出远程仓库的分支
// 例:
// origin/master //这里的 origin 是默认的远程仓库名,后面跟着的是远程仓库的分支名。
git push origin master //将本地master推送到远程master
//详细例如:
git push origin dev:feature/new-feature //本地分支名为 dev,推送到远程的 feature/new-feature 分支
//origin 是远程仓库名,: 前是本地分支名,: 后是远程分支名。
总结
- 先将待推送的文件加入缓存(add )
- 再将写入缓存的文件提交到仓库(commit)
- 最后确认并进行推送(push)
二、可能问题
1.Git push 失败
原因:远程仓库已存在但本地仓库是全新创建的(例如,本地用 git init
创建了新仓库,而远程仓库已有提交)。
解决方法1:强制合并无关历史
使用 --allow-unrelated-histories
参数允许 Git 合并没有共同祖先的分支:
git pull origin master --allow-unrelated-histories
解决方法2:放弃本地修改,直接克隆远程仓库
如果本地仓库没有重要修改,可以删除本地仓库并重新克隆:
# 删除本地仓库(谨慎操作!)
cd ..
rm -rf SSM # Windows 使用 rd /s /q SSM
# 重新克隆远程仓库
git clone https://github.com/sea/leisure-music.git SSM
cd SSM
解决方法 3:将本地提交作为新分支推送到远程
如果想保留本地提交,但不合并历史,可以创建新分支并推送:
git checkout -b new-feature // 创建新分支
git push origin new-feature // 推送到远程
建议
:未来在初始化本地仓库时,若远程仓库不为空,建议先克隆远程仓库,再在本地进行修改,避免历史不相关的问题