核心内容摘要
视觉盛宴:欧美爆乳护士XXXX18震撼登场,挑战你的感官极限
GitHub 代码提交完整指南一份详细的 GitHub 代码提交指南包含初始设置、日常流程、分支管理、
常见问题解决方案和最佳实践。
适合作为博客笔记收藏使用。
目录初始设置日常提交流程分支管理
常见问题及解决方案最佳实践常用命令速查 初始设置
安装 GitWindows:下载地址https://git-scm.com/download/win安装时选择 “Git Bash Here”验证安装:git--version
配置 Git 用户信息# 设置全局用户名和邮箱gitconfig --global user.name您的姓名gitconfig --global user.emailyour.emailexample.com# 查看配置gitconfig --global --list
配置 SSH 密钥推荐生成 SSH 密钥:# 生成密钥对ssh-keygen -t ed25519 -Cyour.emailexample.com# 按提示操作默认保存在 ~/.ssh/id_ed25519添加 SSH 密钥到 GitHub:复制公钥内容cat~/.ssh/id_ed
pub登录 GitHub → Settings → SSH and GPG keys → New SSH key粘贴公钥并保存测试 SSH 连接:ssh-T gitgithub.com
创建 GitHub 仓库登录 GitHub点击右上角 “” → New repository填写仓库名称、描述选择 Public/Private不要勾选“Initialize this repository with a README”如果本地已有代码点击 Create repository 日常提交流程标准提交流程三步走#
添加文件到暂存区gitadd.#
提交更改gitcommit -m提交信息描述#
推送到远程仓库gitpush origin main详细步骤说明步骤 1检查改动状态# 查看工作区状态gitstatus# 查看具体改动内容gitdiff# 查看已暂存的文件gitdiff--staged步骤 2添加文件到暂存区# 添加所有改动推荐gitadd.# 添加特定文件gitaddREADME.mdgitaddsrc/main.py# 添加整个目录gitaddsrc/# 交互式添加可以选择性添加gitadd-p# 添加所有已跟踪文件的修改不包括新文件gitadd-u步骤 3提交更改# 简单提交gitcommit -m修复bug# 多行提交信息gitcommit -m添加新功能 - 实现用户登录功能 - 添加数据验证 - 优化界面响应速度# 打开编辑器编写详细提交信息gitcommit步骤 4推送到远程仓库# 推送到主分支gitpush origin main# 推送到指定分支gitpush origin feature-branch# 首次推送并设置上游分支gitpush -u origin main 分支管理创建和切换分支# 创建新分支gitbranch feature-branch# 创建并切换到新分支gitcheckout -b feature-branch# 或使用新语法gitswitch -c feature-branch# 切换到已有分支gitcheckout maingitswitch main# 查看所有分支gitbranch -a# 删除本地分支gitbranch -d feature-branch# 强制删除分支gitbranch -D feature-branch推送分支到远程# 推送新分支到远程gitpush -u origin feature-branch# 推送所有分支gitpush --all origin# 删除远程分支gitpush origin --delete feature-branch合并分支# 切换到主分支gitcheckout main# 合并功能分支gitmerge feature-branch# 使用 rebase保持线性历史gitrebase feature-branch❗
常见问题及解决方案问题 1推送被拒绝non-fast-forward错误信息:! [rejected] main - main (non-fast-forward) error: failed to push some refs原因:远程仓库有本地没有的新提交解决方案:方案 A先拉取再推送推荐# 拉取远程最新代码gitpull origin main# 解决可能的冲突后再次推送gitpush origin main方案 B强制推送谨慎使用# 强制推送会覆盖远程分支gitpush origin main --force# 更安全的强制推送gitpush origin main --force-with-lease问题 2合并冲突错误信息:Auto-merging README.md CONFLICT (content): Merge conflict in README.md解决方案:#
查看冲突文件gitstatus#
打开冲突文件找到冲突标记# HEAD# 本地代码# # 远程代码# branch-name#
手动解决冲突删除冲突标记保留需要的代码#
标记冲突已解决gitaddREADME.md#
完成合并gitcommit -m解决合并冲突问题 3提交了错误的文件解决方案:撤销最后一次提交保留文件修改:gitreset --soft HEAD~1撤销最后一次提交不保留文件修改:gitreset --hard HEAD~1从暂存区移除文件保留工作区修改:gitreset HEAD文件名丢弃工作区的修改:gitcheckout --文件名问题 4修改最后一次提交信息# 修改提交信息gitcommit --amend -m新的提交信息# 如果已经推送需要强制推送gitpush origin main --force问题 5忘记添加文件到提交# 添加遗漏的文件gitaddforgotten-file.py# 追加到上一次提交gitcommit --amend --no-edit问题 6SSH 连接失败错误信息:Permission denied (publickey)解决方案:#
检查 SSH 密钥是否存在ls-al ~/.ssh#
启动 SSH agenteval$(ssh-agent -s)#
添加 SSH 密钥ssh-add ~/.ssh/id_ed25519#
测试连接ssh-T gitgithub.com#
如果还是失败检查 GitHub 上是否添加了公钥cat~/.ssh/id_ed
pub问题 7认证失败HTTPS错误信息:remote: Support for password authentication was removed解决方案:使用 Personal Access Token:GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)Generate new token选择权限至少勾选repo复制 token推送时使用 token 作为密码或切换到 SSH:# 查看当前远程地址gitremote -v# 切换到 SSHgitremote set-url origin gitgithub.com:username/repo.git问题 8大文件推送失败错误信息:remote: error: File is
1
00 MB; this exceeds GitHubs file size limit解决方案:使用 Git LFS大文件存储:#
安装 Git LFS# Windows: 下载 https://git-lfs.github.com/#
初始化 Git LFSgitlfsinstall#
跟踪大文件类型gitlfs track*.zipgitlfs track*.pt# PyTorch 模型文件gitlfs track*.h5# Keras 模型文件#
提交 .gitattributesgitadd.gitattributesgitcommit -m添加 Git LFS 配置#
正常添加和提交大文件gitaddlarge-file.zipgitcommit -m添加大文件gitpush origin main问题 9撤销已推送的提交方案 A创建新提交撤销推荐# 撤销指定提交创建新提交gitrevertcommit-hash# 推送撤销提交gitpush origin main方案 B重置并强制推送危险# 回退到指定提交gitreset --hardcommit-hash# 强制推送会覆盖远程历史gitpush origin main --force问题 10本地分支与远程分支不同步# 查看本地和远程分支差异gitlog main..origin/main --oneline# 拉取远程最新代码gitfetch origingitpull origin main# 或使用 rebase 保持线性历史gitpull --rebase origin main✨ 最佳实践
提交信息规范使用约定式提交格式# 格式type(scope): subject# 类型type# feat: 新功能# fix: 修复bug# docs: 文档更新# style: 代码格式调整不影响代码运行# refactor: 代码重构# perf: 性能优化# test: 测试相关# chore: 构建/工具相关# ci: CI/CD 相关# 示例gitcommit -mfeat(auth): 添加用户登录功能gitcommit -mfix(detection): 修复姿态检测算法buggitcommit -mdocs(readme): 更新安装说明
提交前检查清单代码已测试可以正常运行没有包含临时文件、日志文件提交信息清晰明确已添加.gitignore排除不需要的文件没有包含敏感信息密码、API密钥等
工作流程建议#
开始工作前先拉取最新代码gitpull origin main#
创建功能分支gitcheckout -b feature/new-feature#
开发并提交gitadd.gitcommit -mfeat: 实现新功能#
推送到远程gitpush -u origin feature/new-feature#
在 GitHub 创建 Pull Request#
合并后删除功能分支gitcheckout maingitpull origin maingitbranch -d feature/new-feature
.gitignore 配置示例# Python __pycache__/ *.py[cod] *$py.class *.so .Python *.egg-info/ dist/ build/ venv/ env/ ENV/ # IDE .vscode/ .idea/ *.swp *.swo # 系统文件 .DS_Store Thumbs.db # 日志和临时文件 *.log *.tmp *.temp # 环境变量 .env .env.local # 模型文件如果很大使用 Git LFS # *.pt # *.h5 # *.pkl 常用命令速查基础命令# 查看状态gitstatus# 查看改动gitdiffgitdiff--staged# 添加文件gitadd.gitadd文件# 提交gitcommit -m提交信息# 推送gitpush origin main# 拉取gitpull origin main分支操作# 查看分支gitbranch -a# 创建分支gitcheckout -b分支名# 切换分支gitcheckout分支名# 合并分支gitmerge分支名# 删除分支gitbranch -d分支名历史查看# 查看提交历史gitloggitlog --onelinegitlog --graph --oneline --all# 查看特定文件的提交历史gitlog文件路径# 查看提交详情gitshowcommit-hash撤销操作# 撤销工作区修改gitcheckout --文件# 撤销暂存区gitreset HEAD文件# 撤销最后一次提交保留修改gitreset --soft HEAD~1# 撤销最后一次提交不保留修改gitreset --hard HEAD~1远程操作# 查看远程仓库gitremote -v# 添加远程仓库gitremoteaddoriginurl# 修改远程地址gitremote set-url originnew-url# 获取远程更新不合并gitfetch origin# 拉取并合并gitpull origin main 快速参考表操作命令查看状态git status添加所有文件git add .提交git commit -m 信息推送git push origin main拉取git pull origin main创建分支git checkout -b 分支名切换分支git checkout 分支名查看历史git log --oneline撤销修改git checkout -- 文件
总结掌握以下核心流程即可检查改动→git status添加文件→git add .提交更改→git commit -m 提交信息推送到远程→git push origin main遇到问题时先查看错误信息使用git status检查当前状态参考本文的
常见问题解决方案谨慎使用--force强制推送提示:建议将本文收藏遇到问题时快速查阅。
Git 操作需要多练习熟能生巧