第三章. Git 基础命令实战:从 git init 初始化到 git push 推送

第三章. Git 基础命令实战:从 git init 初始化到 git push 推送

摘要:万事俱备,只欠东风。在这一章,我们将不再纸上谈兵,而是真正动手创建一个项目。我们将从创建一个空文件夹开始,看着它变身为 Git 仓库,写下第一行代码,并亲手将它推送到 GitHub。这将是你职业生涯中无数次 git push 的起点,让我们一起来点亮你的第一个“绿色贡献格”。

本章学习路径

  1. 本地建仓:如何把一个普通文件夹变成“Git 仓库”。
  2. 提交三部曲:彻底搞懂“工作区、暂存区、版本库”的流转逻辑。
  3. 云端建仓:在 GitHub 网页上创建一个空仓库。
  4. 推送到云:将本地代码上传,完成“天地互联”。

3.1. 从零开始:初始化本地仓库

所有伟大的开源项目(Linux, Vue, React),最初都只是开发者电脑上的一个普通文件夹。

3.1.1. 创建项目文件夹

请打开你的 Windows Terminal (Git Bash)

我们将使用命令行来创建文件夹,这是程序员的基本素养。假设我们要在 D 盘创建一个叫 my-first-project 的项目。

1
2
3
4
5
6
7
8
# 1. 进入 D 盘 (注意:Git Bash 中盘符路径是 /d/ 而不是 D:)
cd /d/

# 2. 创建文件夹 (make directory)
mkdir my-first-project

# 3. 进入这个文件夹 (change directory)
cd my-first-project

此时,你的终端路径应该显示为 /d/my-first-project

3.1.2. 施展魔法:git init

现在,这只是一个普通的空文件夹。Windows 资源管理器里看它平平无奇。我们要用一条命令赋予它“时间机器”的能力。

在终端输入:

1
git init

终端反馈

1
Initialized empty Git repository in D:/my-first-project/.git/

(已在 D:/my-first-project/.git/ 初始化了一个空的 Git 仓库)

发生了什么?
Git 在这个文件夹里偷偷创建了一个隐藏目录叫 .git

  • 普通文件夹:删了文件就没了,无法找回。
  • Git 仓库:拥有了 .git 目录,以后你在这个文件夹里做的每一次修改,都会被这个目录记录下来,随时可以“时光倒流”。

注意: 千万不要手动去修改或删除 .git 文件夹里的东西,那是 Git 的“内脏”,动了它仓库就废了。


3.2. 提交三部曲:工作区 -> 暂存区 -> 版本库

这是 Git 最核心、也是新手最容易晕的概念。我们需要用一个“网购”的比喻来理解它。

  • 工作区 (Working Directory)货架。你正在写代码的地方,随意修改。
  • 暂存区 (Staging Area)购物车。你觉得写好了,想提交的文件,先放进购物车。
  • 版本库 (Repository)收银台(生成订单)。确认购物车里的东西没问题,结账,生成一张永久的“购物小票”(Commit)。

3.2.1. 第一步:写代码(在货架上挑商品)

我们要创建一个文件。在终端输入以下命令,创建一个叫 README.md 的文件:

1
echo "# 我的第一个项目 " > README.md

或者你也可以直接用 VS Code 打开这个文件夹,新建一个 README.md,随便写点什么并保存。

此时,我们在 工作区 有了一个新文件。

3.2.2. 第二步:git add(放入购物车)

我们问问 Git,现在仓库是什么状态?输入:

1
git status

终端反馈:它会显示红色的文字 Untracked files: README.md。意思是:“老板,发现一个新文件,但它还没进购物车(暂存区),我不管它。”

现在,把它放入购物车:

1
git add README.md

小技巧:如果你改了 10 个文件,想全部放入购物车,可以使用 git add . (注意有个点),代表“添加当前目录下所有文件”。

再次输入 git status,你会发现文字变成了 绿色Changes to be committed: new file: README.md
意思是:“文件已在购物车,等待结账。”

3.2.3. 第三步:git commit(结账生成小票)

现在我们要正式提交了。提交时必须附带一段“备注信息”,告诉未来的自己或队友这次改了什么。

输入:

1
git commit -m "feat: init project with readme"
  • commit:提交。
  • -m:message(消息)的缩写。
  • "...":双引号里写备注。切记:团队开发中严禁写 “update”、“fix” 这种无意义的废话。 我们要写清楚干了什么(比如:初始化项目并添加 readme)。

终端反馈

[main (root-commit) 8f3a1b] feat: init project with readme
1 file changed, 1 insertion(+)

恭喜!你已经生成了你的第一个“版本快照”。


3.3. 云端建仓:在 GitHub 上开辟领土

代码现在只保存在你自己的电脑(本地仓库)里。如果电脑坏了,代码就丢了。我们需要把它推送到 GitHub(远程仓库)。

3.3.1. 创建新仓库 (New Repository)

  1. 打开 GitHub 网页,登录。
  2. 在右上角点击 + 号,选择 New repository

3.3.2. 填写仓库信息

进入创建页面后,有几个关键点要注意:

image-20251121104836977

  • Repository name (仓库名):填写 my-first-project(建议和本地文件夹同名,方便记忆)。
  • Description (描述):选填,比如“这是我的 Git 学习练手项目”。
  • Public/Private:选择 Public(公开)。
  • Initialize this repository with重点!这里全部不要勾选!
    • 不要勾选 Add a README file。
    • 不要勾选 .gitignore。
    • 不要勾选 License。

为什么不勾选?
因为我们在本地已经创建了 README.md。如果在云端也创建一个,等会儿推送时就会冲突(两边都有 README,Git 不知道听谁的)。为了省事,我们建立一个 纯空仓库

点击底部的绿色按钮 Create repository


3.4. 天地互联:git remote 与 git push

创建成功后,GitHub 会跳转到一个页面,贴心地告诉你“接下来该怎么做”。

注意看页面上的 “…or push an existing repository from the command line” 这一栏。我们就是要用这几行命令。

3.4.1. 关联远程仓库

回到你的 Windows Terminal。我们需要告诉本地 Git:“你的远程老家在哪里”。

image-20251121105038750

复制 GitHub 页面上的第一行命令(或者手动输入,注意把 URL 换成你自己的):

1
2
# 语法:git remote add <别名> <仓库地址>
git remote add origin https://github.com/Prorise-cool/my-first-project.git
  • git remote add:添加远程地址。
  • origin:这是给远程地址起的一个“昵称”。行业惯例都叫 origin,当然你叫 github 也行,但为了专业,请叫 origin
  • https://...:这是仓库的唯一地址。

3.4.2. 推送代码

激动人心的时刻到了。我们要把本地的 main 分支推送到远程 originmain 分支。

输入:

1
git push -u origin main
  • push:推。
  • -u:upstream(上游)的缩写。意思是“把本地的 main 和远程的 origin/main 绑定”。以后你再想推送,直接输 git push 就可以了,不用再罗里吧嗦写一长串。
1
2
3
$ git push -u origin main
error: src refspec main does not match any
error: failed to push some refs to 'https://github.com/Prorise-cool/my-first-project.git'

如果您遇到了上述的报错无法推送,有很大概率是你在安装的时候没有将 master 分支的默认命名改为 main,你可以通过 git branch -M master + git push -u origin master 即可推送成功

终端反馈:如果你配置好了 SSH(上一章的内容),终端会显示一堆写入进度:

Enumerating objects: 3, done.
Writing objects: 100% (3/3), ... done.
To https://github.com/...
* [new branch] main -> main

如果没有报错,说明发送成功!


3.5. 见证成果:点亮绿格子

  1. 回到浏览器,刷新 刚才那个 GitHub 仓库页面。

    • 你会发现原本的引导命令不见了,取而代之的是你刚才写的 README.md 文件,页面正中央显示着大大的标题 “# 我的第一个项目”
  2. 点击你的头像,回到 Your profile(个人主页)。

    • 看一眼底部的贡献图。是不是多了一个 绿色的小方块

这一刻,你不再是代码的浏览者,你是代码的贡献者。


3.6. 本节小结

这一章我们完成了程序员最标准的一套“起手式”:

  1. git init:让文件夹变成仓库。
  2. git add .:把修改放入购物车。
  3. git commit -m "...":结账生成版本。
  4. git remote add origin ...:记录远程地址。
  5. git push:上传代码。

思考检验

  • 如果我在本地又修改了 README 文件,但没有执行 git add,直接执行 git commit,Git 会把修改提交上去吗?(回顾一下“购物车”的比喻)