十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Git与GitHub完整工作流指南:从零到一实现代码上传与版本控制

Git与GitHub完整工作流指南:从零到一实现代码上传与版本控制 1. 项目概述为什么我们需要一套完整的Git工作流如果你刚开始接触编程或者从学校、培训班刚出来准备做自己的第一个项目大概率会听到别人说“把代码传到GitHub上”。然后你可能会去搜教程结果发现教程A讲怎么注册GitHub教程B讲怎么在电脑上装Git教程C又讲怎么用VS Code点按钮上传。每个教程都只讲了一部分中间缺了关键的“连接”步骤导致你跟着做还是报错最后可能干脆放弃直接把代码文件夹用微信发给了同事。这正是我写这篇东西的原因。这不是三个孤立的教程而是一套从零到一、环环相扣的完整工作流。我会假设你是一个全新的开发者手头有一个写好的项目文件夹比如一个网页、一个Python脚本你的目标就是把它安全、规范地放到GitHub上并且以后能轻松地更新它。这个过程涉及三个核心环节远程仓库GitHub、版本控制工具Git和本地编辑器VS Code。理解它们各自扮演的角色以及如何协作比你死记硬背命令更重要。简单来说你可以把GitHub想象成云盘比如百度网盘专门用来存代码和它的历史版本。Git则是你电脑上的一个“智能文件管家”它负责记录你本地代码的每一次改动并帮你和云盘同步。而VS Code是你写代码的“书房”它提供了图形化界面来操作Git这个管家让你不用记太多命令。我们的目标就是让这三者顺畅地联通起来。2. 环境与工具准备打好地基在开始任何操作之前我们需要把工具装好、账号注册好。这个阶段看似简单但很多问题都源于这里没配置对。2.1 GitHub账号注册与初步设置首先访问 GitHub 官网。注册过程和其他网站类似需要邮箱、用户名和密码。这里有三个关键点需要注意用户名Username的选择这将是你个人主页的地址如https://github.com/你的用户名也会是你未来所有项目仓库地址的一部分。建议选择一个专业、易记且不与他人重复的名字最好能和你常用的ID保持一致。验证邮箱注册后务必完成邮箱验证这是后续很多操作如创建仓库、接收通知的前提。初步了解界面注册登录后花两分钟看看主页。最重要的两个按钮是左上角的GitHub Logo点击返回主页和右上角的“”号用于创建新仓库、新组织等。找到你的头像点击可以进入“Your profile”你的个人资料和“Your repositories”你的仓库。注意由于网络环境差异访问GitHub时可能会遇到加载慢或连接不稳定的情况。这是正常现象请保持耐心或尝试在网络状况较好的时段进行操作。绝对不要寻求任何非法的网络代理工具遵守当地的互联网使用规范。2.2 Git的安装与基础身份配置Git是核心工具我们需要把它安装到你的电脑上。Windows用户前往 Git 官网下载安装程序。安装时在“Select Components”界面强烈建议勾选“Git Bash Here”和“Git GUI Here”这会在右键菜单增加快捷入口。在“Choosing the default editor”步骤如果你不确定就选“Use Visual Studio Code as Git‘s default editor”。其他步骤一路默认即可。macOS用户最简单的方法是打开“终端”Terminal输入命令xcode-select --install安装命令行工具其中就包含了Git。或者通过Homebrew包管理器安装brew install git。Linux用户通过包管理器安装例如Ubuntu/Debian系sudo apt-get install git。安装完成后我们需要进行最重要的全局配置告诉Git你是谁。打开命令行Windows用Git Bash或CMDmacOS/Linux用终端执行以下两行命令git config --global user.name 你的GitHub用户名 git config --global user.email 你注册GitHub的邮箱这两行命令的作用是设置提交代码时的“作者”信息。--global参数表示这是全局配置对这台电脑上所有的Git仓库生效。每次你提交代码这个信息都会像签名一样被记录在历史中。务必确保邮箱和GitHub账号的验证邮箱一致这样你的提交才能和GitHub账号关联起来在贡献图上显示。2.3 Visual Studio Code的安装与Git集成VS Code是一个强大的免费编辑器对Git的支持非常友好。从VS Code官网下载安装即可。安装后我们主要做两件事打开内置终端点击顶部菜单栏的“查看” - “终端”或使用快捷键Ctrl反引号键。这个终端会直接在你项目文件夹下打开方便执行Git命令。认识源代码管理视图点击左侧活动栏的源代码管理图标分支形状或者按CtrlShiftG。这个面板是VS Code操作Git的图形化核心你本地文件的改动、提交历史、分支管理都可以在这里完成。确保VS Code能识别到你安装的Git。通常它会自动检测。你可以按F1打开命令面板输入Select Git Executable确认它指向的是你安装的Git路径。3. 核心流程拆解一次完整的代码上传之旅现在假设你的桌面上有一个名为my-first-project的文件夹里面是你写的HTML、CSS、JS文件。我们要把它推送到GitHub。3.1 第一步在GitHub上创建远程仓库远程仓库是代码在云端的“家”。我们需要先在GitHub上把这个家建好。点击GitHub页面右上角的“”号选择“New repository”。Repository name输入仓库名如my-first-project。尽量和本地文件夹名一致避免混淆。Description写一句简单的描述可选。Public/Private选择公开所有人可见或私有仅自己或指定协作者可见。学习阶段选Public即可。Initialize this repository with这里非常关键务必不要勾选“Add a README file”、“Add .gitignore”或“Choose a license”。我们要推送一个已有的本地项目如果勾选了这些GitHub会创建一个带有初始提交的新仓库这会导致后续推送冲突。我们要的是一个完全空的仓库。点击“Create repository”按钮。创建成功后你会看到一个快速设置页面其中显示着仓库的URL格式如https://github.com/你的用户名/my-first-project.git。这个URL就是你的远程仓库地址记下来下一步要用。3.2 第二步在本地初始化Git仓库并关联远程现在回到你的本地项目文件夹my-first-project。用VS Code打开这个文件夹文件 - 打开文件夹。打开VS Code的内置终端Ctrl。确保终端路径就在你的项目根目录下。在终端中输入以下命令将当前目录初始化为一个Git仓库git init这个命令会创建一个隐藏的.git文件夹里面存储了Git所有的版本管理数据。你可以通过ls -lamacOS/Linux或dir /aWindows命令查看。将本地仓库与刚刚在GitHub上创建的远程仓库关联起来git remote add origin https://github.com/你的用户名/my-first-project.git这里的origin是一个别名它代表了你刚刚添加的那个远程仓库地址。你可以给它起其他名字但origin是约定俗成的默认名。3.3 第三步进行首次提交在推送之前我们需要把本地的文件做一个“快照”这个快照在Git里称为“提交”Commit。添加文件到暂存区在终端中输入git add .这个命令中的.表示“当前目录下的所有新增和修改的文件”。它会把你项目里所有变动新文件、修改过的文件放入一个叫做“暂存区”Staging Area的地方。暂存区可以理解为一个准备打包的行李托盘。实操心得git add .很方便但有时会不小心加入一些不需要版本控制的文件比如node_modules、系统缓存文件等。更稳妥的做法是使用git add 文件名来逐个添加重要文件或者先创建一个.gitignore文件来排除这些无关文件。对于新手第一次提交用git add .问题不大但这是你接下来要学习的重要概念。创建提交将暂存区的内容打包成一个永久的快照并附上说明信息git commit -m Initial commit: add project structure-m后面引号里的内容是本次提交的说明务必认真填写。好的提交信息应该简洁明了地描述这次提交做了什么例如“修复登录按钮点击无效的bug”、“新增用户个人主页模块”。模糊的“更新代码”或“又一次提交”是坏习惯。3.4 第四步推送到远程仓库现在本地打包好的“行李”提交可以送上“飞机”推送到远程仓库了。在终端中输入git push -u origin main让我们拆解这个命令git push推送命令。-u这是--set-upstream的简写。它表示将本地的main分支与远程的origin/main分支关联起来并记住这个对应关系。下次你在这个分支上直接输入git push即可无需再指定origin main。origin我们之前设置的远程仓库别名。main你要推送的本地分支名。Git的默认主分支以前叫master现在主流社区已改为main。如果你的本地分支名是master则将命令中的main替换为master。执行命令后可能会弹出一个窗口让你登录GitHub账户进行认证。按照提示操作即可。成功后终端会显示推送进度和提示。刷新你的GitHub仓库页面你会看到所有代码文件都已经安然无恙地出现在了网页上。至此一次完整的代码上传就成功了。4. 使用VS Code图形化界面简化操作虽然命令行是根本但VS Code的图形界面能极大提升日常效率。我们重复上面的“提交并推送”流程这次完全用VS Code完成。修改文件在你的项目里修改或创建一个新文件比如在index.html里加一行注释。查看变动点击左侧的“源代码管理”图标。你会看到“更改”列表下出现了你刚改动的文件。点击文件名可以直观地对比修改前绿色和修改后红色的内容差异。暂存更改将鼠标悬停在更改的文件上点击出现的“”号或者点击“更改”列表上方的“暂存所有更改”。这相当于执行了git add .。提交在上方的输入框里填写提交信息例如“Update index.html with a comment”然后按CtrlEnterWindows/Linux或CmdEntermacOS提交。这相当于执行了git commit -m “...”。推送提交后注意界面左下角的状态栏。你会看到一个类似“↑1”的同步图标数字代表本地比远程超前的提交数。点击这个图标或者点击“源代码管理”视图顶部的“...”菜单选择“推送”即可完成git push。整个过程无需输入任何命令非常直观。图形化操作适合日常小修改的提交而复杂的操作如解决冲突、重置历史可能仍需借助命令行。5. 日常协作与进阶操作指南上传代码不是一劳永逸的更多是日常的更新和维护。5.1 如何更新远程已存在的项目当你换了一台电脑或者想获取项目的最新版本时你需要“拉取”远程代码git pull origin main这个命令是git fetch获取远程更新和git merge合并到本地的合并操作。它会将远程origin仓库的main分支最新内容拉取下来并合并到你本地的main分支。5.2 如何克隆一个已有的项目如果你想参与别人的项目或者把GitHub上的开源项目拿到本地学习你需要“克隆”git clone https://github.com/用户名/仓库名.git这个命令会在当前目录下创建一个与仓库同名的文件夹并将远程仓库的所有代码、历史记录完整地下载下来同时自动帮你设置好远程地址origin。5.3 分支管理并行开发的利器分支是Git最强大的功能之一。你可以把主分支main想象成稳定的生产线而新功能开发应该在新的“实验生产线”特性分支上进行。创建并切换新分支git checkout -b feature-new-header这行命令创建了一个名为feature-new-header的新分支并立即切换过去。你在这个分支上的所有修改都不会影响main分支。在新分支上开发、提交像往常一样修改文件add,commit。合并分支当功能完成后切换回main分支然后合并git checkout main git merge feature-new-header推送分支如果你想将本地分支推送到远程备份或协作git push -u origin feature-new-header在GitHub上就会看到这个新分支并可以发起Pull RequestPR请求合并到main。在VS Code中你可以通过左下角的分支状态栏显示当前分支名点击来轻松切换、创建分支图形化操作非常方便。6. 常见问题与排查技巧实录即使按照步骤操作新手也难免会遇到问题。这里记录了几个最高频的“坑”及其解决方案。6.1 错误failed to push some refs to ...或non-fast-forward问题描述在git push时提示推送失败通常是因为远程仓库有你本地没有的新提交比如你在网页上直接改了README文件。原因分析Git为了防止覆盖别人的工作不允许你直接推送可能导致历史冲突的更新。你的本地历史落后于远程历史。解决方案首先拉取远程的最新更改并合并到本地git pull origin main如果git pull后自动合并产生冲突Git会提示你。你需要手动打开冲突文件解决冲突文件里会有,,这样的标记你需要决定保留哪部分代码或如何整合。解决所有冲突后将文件重新添加并提交git add . git commit -m Merge remote changes and resolve conflicts再次推送git push origin main6.2 错误support for password authentication was removed问题描述推送或克隆时要求输入密码但输入正确密码后仍认证失败。原因分析GitHub已于2021年8月移除了对账户密码的认证支持改为要求使用个人访问令牌Personal Access Token, PAT或SSH密钥。解决方案推荐使用PAT登录GitHub点击头像 - Settings - Developer settings - Personal access tokens - Tokens (classic)。点击“Generate new token”选择“Generate new token (classic)”。填写Note描述如“my-laptop”选择过期时间Expiration。在Select scopes下至少勾选“repo”权限这代表完全控制仓库。点击“Generate token”。重要这个令牌只会显示一次请立即复制并妥善保存。下次命令行要求输入密码时将密码替换成这个令牌粘贴进去。对于HTTPS克隆的仓库你也可以将远程地址改为包含令牌的形式https://你的令牌github.com/用户名/仓库名.git。6.3 状态混乱如何撤销本地更改或提交撤销尚未暂存的修改还没git add如果你想放弃对某个文件的所有修改还原到上次提交的状态git checkout -- 文件名撤销已暂存的修改已经git add了但还没git commit将文件从暂存区撤出但保留工作区的修改git reset HEAD 文件名然后你可以再用git checkout -- 文件名放弃修改。撤销最近一次提交已经git commit了创建一个新的提交来反转上一次提交的更改历史记录会保留git revert HEAD如果你想彻底删除最近一次提交谨慎使用特别是已推送的提交git reset --hard HEAD~16.4 实操心得.gitignore文件是你的好朋友在项目根目录创建一个名为.gitignore的文件在里面列出你不想被Git跟踪的文件和文件夹模式。例如一个Node.js项目的.gitignore可能包含node_modules/ npm-debug.log .DS_Store .vscode/ *.log这样当你执行git add .时这些文件就会被自动忽略保持仓库的整洁。很多开源项目模板都提供了针对不同语言的.gitignore文件可以直接参考使用。7. 从上传到协作理解Pull Request工作流当你不仅仅是自己上传代码而是想为别人的开源项目做贡献时就需要理解Pull RequestPR工作流。这是GitHub协作的核心。Fork派生在目标项目页面点击右上角的“Fork”按钮这会在你的账号下创建一个该项目的完整副本。克隆你的Fork将你账号下的这个副本克隆到本地。git clone https://github.com/你的用户名/项目名.git创建特性分支并修改和之前一样不要在main分支上直接改。git checkout -b fix-typo进行修改、提交并推送到你的Forkgit add . git commit -m Fix a typo in README git push -u origin fix-typo发起Pull Request推送后在你的Fork仓库页面GitHub通常会提示你“Compare pull request”。点击它选择将你的fix-typo分支合并到原始项目的main分支。填写清晰的标题和描述说明你的修改内容和原因。等待维护者审核项目维护者会审查你的代码可能会提出修改意见。你可以在本地继续修改、提交并推送到同一个分支PR会自动更新。合并审核通过后维护者会将你的PR合并到原项目中。你的贡献就完成了。这套流程规范了多人协作保证了主分支代码的质量。即使只是修复一个错别字通过PR来提交也是一个非常好的习惯它留下了清晰的贡献记录。掌握从本地到GitHub的完整上传流程只是现代开发者协作的第一步。真正的效率来自于将这套流程内化为肌肉记忆并在此基础上熟练运用分支策略、.gitignore管理、以及PR协作。我个人的体会是初期多花时间在命令行上理解每个步骤的含义比单纯点击图形按钮要扎实得多。当基础概念牢固后再借助VS Code等工具的图形化功能提升日常效率你会发现自己对代码版本的控制能力有了质的飞跃。最后一个小技巧每次提交前多用git status命令看看当前状态它能帮你理清思路避免误操作。
返回列表