从本地到GitHub!使用git push上传文件的基本步骤
在上一篇文章中,您成功地在GitHub上创建了第一个仓库(存储库),并上传(推送)了第一个文件。恭喜您!
这一次,作为下一步,我们将学习日常开发工作中最常用的流程。具体来说,就是如何在您自己的电脑(本地)上编辑现有文件或添加新文件后,将这些更改反映到GitHub上的步骤。这个“add → commit → push”的循环是使用Git进行开发的基础中的基础,所以请务必掌握它!
Git的基本工作流程:记住三个“地方”
要理解Git的操作,首先需要了解“三个地方”这个概念。Git在记录文件更改之前,会经过一个临时存储区域。这样一来,您就可以灵活地选择要记录哪些更改。
- 工作目录 (Working Directory): 您实际打开和编辑文件的、位于您电脑上的文件夹本身。
- 暂存区 (Staging Area): 一个临时存放您想要提交(保存)的更改内容的地方。可以想象成是“要包含在下一个存档点中的更改列表”。
- 本地仓库 (Local Repository): 将暂存区中的更改作为正式的存档点(提交)进行记录和保管的地方。您电脑中`.git`文件夹内保存了迄今为止的所有历史记录。
在Git中,基本流程就是在在这三个地方之间移动文件。
- 在工作目录中编辑或创建文件。
- 使用
git add命令,将希望提交的更改添加到暂存区。 - 使用
git commit命令,将暂存区的更改记录到本地仓库。 - 使用
git push命令,将本地仓库的记录发送到GitHub(远程仓库)。
那么,让我们实际体验一下这个流程吧!
实践!修改并添加文件以在GitHub上反映出来
我们将使用在上一篇文章中创建的`my-first-repo`文件夹继续进行操作。如果您还没有打开它,请在终端(或Git Bash)中进入该文件夹。
cd my-first-repo
第一步:编辑现有文件并检查更改 (git status)
首先,用您喜欢的编辑器打开上次创建的`index.html`,然后修改其内容。
例如:将 `Hello, GitHub!` 改为 `Hello, World!` 并保存。
使用`git status`命令来检查Git是否已识别到文件的更改。这个命令就像是在问Git:“当前项目的状态如何?”
git status
您应该会看到类似`modified: index.html`的报告,说明`index.html`已被修改。
第二步:添加新文件
接下来,让我们尝试创建一个新的CSS文件。使用以下命令创建一个简单的CSS文件。
echo "h1 { color: steelblue; }" > style.css
此时再次执行`git status`,这次`style.css`会作为“未跟踪的文件 (Untracked files)”显示出来。这意味着Git还不知道这个文件的存在。
git status
第三步:将更改添加到暂存区 (git add)
让我们将“已修改的`index.html`”和“新创建的`style.css`”都添加到暂存区,以便将它们包含在下一个存档点中。`git add`命令既可用于已修改的文件,也可用于新文件。
通常,我们会使用以下命令一次性将工作目录中的所有更改(新增和修改)都添加到暂存区。
git add .
之后,如果您再次执行`git status`,会看到所有更改都以绿色显示为“Changes to be committed(待提交的更改)”,这表明暂存操作已完成。
第四步:提交更改 (git commit)
将您在暂存区准备好的更改内容,作为一个存档点记录到本地仓库中。为了清楚地知道这次做了什么,请附上一条具体的提交信息。
git commit -m "更新 index.html 文本并添加 style.css"
第五步:推送到GitHub (git push)
最后,将您在本地仓库中创建的新提交发送(推送)到GitHub上的远程仓库。这样,您的更改就会与团队成员共享,并成为一份安全的备份。
第二次及以后的推送不再需要第一次使用的`-u`选项。
git push origin main
确认与注意事项
推送完成后,请在浏览器中刷新您的GitHub仓库页面。您应该会看到`style.css`已被添加,并且`index.html`的最后更新时间和提交信息也已改变。这便确认了您的更改已正确反映到GitHub上。
[图片:在GitHub上显示两个文件,并且提交历史也已更新]
- 养成使用`git status`的习惯: 在开始工作前,或在提交和推送前,务必使用`git status`来检查当前状态。这有助于防止意外添加或修改文件。
- 以有意义的单位进行提交: 尽量将相关的更改作为一个提交来处理,例如“修改页眉设计”、“添加页脚链接”等。这样能使历史记录更清晰,便于日后追溯。