2026/6/20 3:32:31
网站建设
项目流程
商丘网站制作的流程,dedecms改WordPress,营销型外贸网站建设公司,光明网4步搞定#xff01;本地项目首次推送Git远程仓库#xff08;零基础必看坑点详解#xff0c;永久记忆版#xff09; 摘要#xff1a;还在为首次推送Git项目发愁#xff1f;这篇文章用最清晰的步骤最常见的坑点#xff0c;带你一次性搞定本地项目到GitHub/Gitee/GitLab的首…4步搞定本地项目首次推送Git远程仓库零基础必看坑点详解永久记忆版摘要还在为首次推送Git项目发愁这篇文章用最清晰的步骤最常见的坑点带你一次性搞定本地项目到GitHub/Gitee/GitLab的首次推送。无论你是编程新手还是偶尔忘记流程的老手复制即用一、为什么需要这篇指南你是否曾遇到过这样的场景本地辛苦写好的项目想传到GitHub上备份或展示跟着网上的教程操作却在某个步骤卡住报错好不容易推送成功却发现把node_modules、.idea等无关文件也传上去了团队协作时因为推送问题耽误了时间如果你有以上任何一点困扰那么这篇“傻瓜式”教程就是为你准备的。我将把首次推送的完整流程拆解成4个不可颠倒的步骤并附上每个步骤的详细解释和常见错误解决方案。二、完整4步推送流程图文详解第1步本地初始化建立Git跟踪核心目标让Git开始管理你的项目文件# 1. 进入项目根目录cd/path/to/your/project# 2. 初始化Git仓库gitinit# 输出示例Initialized empty Git repository in /path/to/your/project/.git/# 此时会在项目目录下生成一个隐藏的.git文件夹# 3. 添加所有文件到暂存区gitadd.# 注意这个.代表当前目录所有文件也可以指定具体文件# 4. 提交到本地仓库gitcommit -mfirst commit# 提交消息要简洁明了这里用first commit作为首次提交关键点解析git init只需执行一次创建本地Git仓库git add .中的点号代表当前目录及子目录所有文件除了.gitignore中忽略的git commit的-m参数必须跟上提交说明否则会进入编辑器模式新手容易卡在这里第2步创建远程空仓库核心目标在代码托管平台创建一个“空房子”等待你的代码入住平台操作位置特别注意GitHub点击右上角 → New repository不要勾选“Initialize this repository with a README”Gitee码云点击右上角 → 新建仓库不要勾选“使用Readme文件初始化这个仓库”GitLab点击导航栏 → New project不要勾选“Initialize repository with a README”为什么不能勾选README如果远程仓库初始化时有了README文件它就不是空仓库了。当你推送时Git会发现本地和远程的历史记录不同导致推送失败。需要先拉取合并这对新手来说会增加复杂度。第3步关联远程仓库并推送核心目标建立本地与远程的连接并上传代码# 1. 添加远程仓库地址给远程仓库起个别名叫origingitremoteaddorigin https://github.com/yourname/yourrepo.git# 这里把地址替换成你自己的仓库地址# 2. 创建并切换到主分支默认分支名可能是master或maingitbranch -M main# 如果本地默认是master分支这行命令会把它改名为main并切换过去# 3. 首次推送建立跟踪关系gitpush -u origin main# -u 参数表示建立本地分支与远程分支的跟踪关系# 以后在这个分支上直接 git push 即可无需指定远程和分支关键点解析git remote add origin [地址]origin是远程仓库的别名可以自定义但大家都用origingit branch -M main-M是--move --force的缩写强制重命名分支git push -u origin main-u是--set-upstream的缩写只在第一次推送时需要第4步验证推送成功核心目标确认代码已安全到达远程仓库命令行验证gitstatus# 应该显示On branch main, your branch is up to date with origin/maingitlog --oneline# 可以看到提交历史确认提交已记录网页验证刷新你的GitHub/Gitee/GitLab仓库页面应该能看到你推送的文件列表点击文件可以查看内容是否完整三、一条命令搞定懒人/高手版如果你已经熟悉流程或者想快速操作这里有一条命令整合了所有步骤gitinitgitadd.gitcommit -minitgitremoteaddorigin仓库地址gitbranch -M maingitpush -u origin main注意事项把仓库地址替换成你的实际仓库URL确保当前目录是你的项目根目录确保远程仓库是空的没勾选README这条命令会顺序执行任何一步出错都会停止四、必须知道的3个关键注意事项1..gitignore文件你的“忽略清单”在第一步执行git add .之前强烈建议创建.gitignore文件# 操作系统生成的文件 .DS_Store Thumbs.db # IDE和编辑器配置 .vscode/ .idea/ *.swp *.swo # 依赖目录根据你的项目类型 node_modules/ # Node.js __pycache__/ # Python target/ # Maven build/ # 各种构建工具 dist/ *.class # Java编译文件 # 环境配置文件不要上传敏感信息 .env *.key *.pem创建方法# 在项目根目录创建.gitignoreecho-e.DS_Store\nnode_modules/\n.env.gitignore# 然后执行 git add . 和后续操作2. 分支命名规范现代Git的默认分支名发生了变化旧版本默认分支叫master新版本默认分支叫main如何知道自己的Git版本git--versiongitconfig --global init.defaultBranch# 查看默认分支设置如果遇到分支名问题可以这样处理# 如果本地是master想改为maingitbranch -M main# 或者如果远程希望用mastergitpush -u origin master# 把main改为master3. SSH vs HTTPS两种远程地址你在GitHub上会看到两种仓库地址HTTPS:https://github.com/username/repo.gitSSH:gitgithub.com:username/repo.git对比项HTTPSSSH认证方式用户名密码/TokenSSH密钥对速度较慢较快推荐场景新手、临时使用经常使用、追求效率新手建议用HTTPS虽然每次推送需要输密码但更简单。可以在Git中配置凭证存储gitconfig --global credential.helper store# 存储密码谨慎使用五、常见错误及解决方案坑点大全错误1src refspec main does not match any错误信息error: src refspec main does not match any error: failed to push some refs to github.com:xxx/xxx.git原因分析本地还没有任何提交没执行git commit本地分支名和推送的分支名不一致解决方案# 1. 确认本地有提交gitlog# 如果显示 fatal: your current branch main does not have any commits yet# 说明确实没有提交# 2. 执行提交gitadd.gitcommit -minitial commit# 3. 再次推送gitpush -u origin main错误2failed to push some refs to ...错误信息! [rejected] main - main (fetch first) error: failed to push some refs to 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. You may want to first integrate the remote changes hint: (e.g., git pull ...) before pushing again.原因分析远程仓库不是空的最常见的是创建时勾选了README解决方案# 方法1拉取远程内容并合并推荐gitpull origin main --allow-unrelated-histories# --allow-unrelated-histories 允许不相关的历史合并# 然后解决可能的冲突再推送gitpush origin main# 方法2强制推送谨慎使用gitpush -f origin main# -f 是 --force 的缩写会覆盖远程历史# 注意如果团队其他人在这个仓库有工作不要用这个方法错误3support for password authentication was removed错误信息remote: Support for password authentication was removed on August 13, 2021. remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls原因分析GitHub从2021年8月起不再支持账号密码验证解决方案# 方法1使用Personal Access TokenPAT# 1. 在GitHub → Settings → Developer settings → Personal access tokens 生成token# 2. 推送时用token代替密码gitpush -u origin main# 用户名你的GitHub用户名# 密码刚才生成的token不是登录密码# 方法2使用SSH密钥# 1. 生成SSH密钥ssh-keygen -t ed25519 -C your_emailexample.com# 2. 添加到GitHubSettings → SSH and GPG keys# 3. 修改远程地址为SSH格式gitremote set-url origin gitgithub.com:username/repo.git# 4. 再次推送错误4Updates were rejected because the tip of your current branch is behind错误信息! [rejected] main - main (non-fast-forward) error: failed to push some refs to ...原因分析远程有新的提交而本地没有拉取更新解决方案# 先拉取更新gitpull origin main# 如果有冲突解决冲突后提交gitadd.gitcommit -mmerge remote changes# 再推送gitpush origin main六、可视化工具辅助适合完全新手如果你对命令行感到恐惧可以使用可视化工具1. GitHub Desktop下载安装 GitHub DesktopFile → Add local repository选择你的项目文件夹点击 Publish repository填写信息后点击 Publish2. VS Code 内置Git用VS Code打开项目点击左侧源代码管理图标CtrlShiftG点击初始化仓库输入提交消息点击√提交点击… → 推送七、工作流程图解是否开始本地初始化git init/add/commit远程仓库是否为空?关联远程并推送git remote add/push -u✅ 推送成功选择解决方案拉取合并git pull --allow-unrelated-histories强制覆盖git push -f⚠️慎用解决冲突并提交验证结果结束八、最佳实践总结顺序不可颠倒先本地→再远程→最后推送远程要空创建仓库时不要初始化README先加.gitignore避免上传无用文件提交信息清晰用英文简练描述提交内容首次用-u建立跟踪关系以后直接git push遇到错误别慌对照本文的常见错误部分解决九、延伸学习当你掌握了首次推送后可以进一步学习分支管理git branch,git checkout,git merge撤销操作git reset,git revert,git checkout --暂存更改git stash查看历史git log的各种用法十、最后的小测验检验你是否真正掌握了试着回答如果创建远程仓库时不小心勾选了README应该怎么处理.gitignore文件应该在哪个步骤前创建git push -u中的-u是什么意思以后还需要加吗推送时提示认证失败可能是什么原因答案提示使用git pull origin main --allow-unrelated-histories拉取合并在git add .之前创建避免把无用文件加入版本控制-u是--set-upstream建立跟踪关系以后直接git push即可GitHub已不支持密码验证需要使用Personal Access Token或SSH密钥希望这篇详细的指南能帮助你顺利推送第一个Git项目如果有任何问题欢迎在评论区留言讨论。温馨提示实际操作时建议复制命令到文本编辑器替换成你的实际信息后再执行避免直接复制执行出错。版权声明本文为原创文章遵循 CC 4.0 BY-SA 版权协议转载请附上原文出处链接。