Git将本地文件推送到GitHub仓库

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 服务器。

指定追踪的文件

cpp 复制代码
git lfs track "*.zip"

2.查看全局配置

此命令会显示用户主目录下.gitconfig文件中的配置,影响所有 Git 仓库。

c++ 复制代码
git config --global --list  //查看username和email
    
git config --global user.name 'ABC'	//设置新的username

git config --global user.email ABC@qq.com //设置新的email

3.创建版本库(仅用于第一次)

cpp 复制代码
git init

4.写入缓存

cpp 复制代码
git add . //添加当前目录所有修改到缓存

git add ./filename //指定将某个文件写入缓存

git status //查看已经添加到缓存区的文件
//输出中以 Changes to be committed: 开头的文件即为已添加到暂存区的文件

5.检查并配置远程转态

cpp 复制代码
git remote -v          // 查看已配置的远程仓库
    
git remote add origin https://github.com/AA/leisure.git	//这个链接是你远程仓库的地址

git remote set-url origin <新github仓库地址>		//如果要修改成新的仓库地址

6.提交写入缓存的文件到仓库

cpp 复制代码
git commit -m 'describe'	//describe:具体说明提交了什么,只是一个描述

7.查看本地分支和远程分支,并进行推送

cpp 复制代码
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 合并没有共同祖先的分支:

cpp 复制代码
git pull origin master --allow-unrelated-histories
解决方法2:放弃本地修改,直接克隆远程仓库

如果本地仓库没有重要修改,可以删除本地仓库并重新克隆:

cpp 复制代码
# 删除本地仓库(谨慎操作!)
cd ..
rm -rf SSM  # Windows 使用 rd /s /q SSM

# 重新克隆远程仓库
git clone https://github.com/sea/leisure-music.git SSM
cd SSM
解决方法 3:将本地提交作为新分支推送到远程

如果想保留本地提交,但不合并历史,可以创建新分支并推送:

cpp 复制代码
git checkout -b new-feature  // 创建新分支
git push origin new-feature  // 推送到远程

建议:未来在初始化本地仓库时,若远程仓库不为空,建议先克隆远程仓库,再在本地进行修改,避免历史不相关的问题

2.后续补充......

相关推荐
AC赳赳老秦5 小时前
知识产权辅助:用 OpenClaw 批量生成专利交底书 / 软著申请材料,自动校验格式与内容合规性
java·人工智能·python·算法·elasticsearch·deepseek·openclaw
历程里程碑7 小时前
4 Git远程协作:从零开始,玩转仓库关联与代码同步(带实操代码讲解)
大数据·c++·git·elasticsearch·搜索引擎·gitee·github
苍煜7 小时前
MySQL分库分表和ES到底怎么选?
数据库·mysql·elasticsearch
天若有情6737 小时前
自己开发一款极简 Vanilla 原生前端框架,已开源上架 NPM & GitHub
前端框架·npm·github
fthux8 小时前
用了 GitZip 这么多年,我动手做了一个「Pro」版
人工智能·开源·github
金銀銅鐵9 小时前
[git] 浅解 git reset 命令
git·后端
zhangfeng11339 小时前
部署到服务器上 宝塔系统 使用宝塔在线编辑器 FTP 批量上传 Git 部署 打包上传 codebudyy 编程程序开发
服务器·git·编辑器
学习是种信仰10 小时前
Git工作流
git·深度学习
摇滚侠12 小时前
DSL 学习 ElasticSearch 主要就是学习 DSL 查询语言
学习·elasticsearch·jenkins
yuanyuan2o212 小时前
Git merge 的几种不同模式
git·github