趋近智
origin 和 upstream本节提供动手实践,引导你创建第一个Git仓库,添加文件并提交它们。通过此练习,你将熟悉Git的基本工作流程。
首先,你需要为项目设定一个存放位置。打开你的终端或命令行工具。为本次练习创建一个新目录并进入该目录:
mkdir my-git-project
cd my-git-project
这个目录 my-git-project 目前只是一个普通文件夹。Git尚未跟踪其中的任何内容。
现在,让我们将此目录变为一个Git仓库。使用 git init 命令:
git init
你会看到类似这样的输出:
Initialized empty Git repository in /path/to/your/my-git-project/.git/
这个命令会创建一个名为 .git 的隐藏子目录。这个 .git 目录包含你的仓库所有必要的文件和元数据,包括历史记录、配置和对象数据库。通常你不需要直接操作 .git 目录。
让我们看看Git对我们新仓库的看法。使用 git status 命令:
git status
输出将类似这样:
On branch main
No commits yet
nothing to commit (create/copy files and use "git add" to track)
这告诉我们几点信息:
main 分支上(在旧版Git中可能是 master,但 main 是当前的默认值)。让我们创建第一个项目文件。使用你首选的文本编辑器或 echo 等命令来创建一个简单的 README.md 文件:
# 使用 echo (在 Linux/macOS/Git Bash 上)
echo "# My Awesome Project" > README.md
# 或者使用文本编辑器手动创建文件并添加一些文本。
现在,再次运行 git status:
git status
输出已改变:
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
README.md
nothing added to commit but untracked files present (use "git add" to track)
Git看到了新的 README.md 文件,但告诉我们它是“未跟踪”的。这意味着文件存在于你的工作目录中,但Git尚未跟踪其历史。
为了开始跟踪文件并为下一次提交做准备,我们需要使用 git add 将其添加到暂存区:
git add README.md
此命令告诉Git:“我希望将 README.md 的当前状态包含在下一次快照(提交)中。”
让我们再一次检查状态:
git status
输出现在显示:
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README.md
README.md 现在被列在“将要提交的更改”下。它已从工作目录状态(未跟踪)移动到暂存区。
这是你刚刚经历的状态的简单示意图:
文件通过
git add从工作目录移动到暂存区,然后通过git commit永久保存到仓库历史中。
文件已暂存并准备就绪。让我们使用 git commit 创建项目历史的第一个快照。我们将使用 -m 标志直接从命令行提供一个描述性提交消息。
git commit -m "首次提交:添加 README.md"
你会看到类似这样的输出:
[main (root-commit) abc1234] 首次提交:添加 README.md
1 个文件更改,1 行插入(+)
创建模式 100644 README.md
这确认提交已创建。
[main (root-commit) abc1234] 表明了分支 (main),它是最开始的提交 (root-commit),以及唯一提交哈希的开头 (abc1234)。你的哈希值会不同。README.md 被创建)。现在,git status 显示什么?
git status
输出:
On branch main
nothing to commit, working tree clean
所有内容都已提交!你的工作目录与仓库中存储的最新快照一致,并且暂存区是空的。
你可以使用 git log 查看你刚刚进行的提交:
git log
输出将显示有关你提交的详细信息:
commit abc1234567890def1234567890abcdef12345678 (HEAD -> main)
Author: Your Name <[email protected]>
Date: Mon Oct 26 10:30:00 2023 -0700
首次提交:添加 README.md
这显示了完整的提交哈希、作者和电子邮件(来自你的Git配置)、日期以及提交消息。
.gitignore 忽略文件通常,项目会生成你不想包含在Git历史中的临时文件、日志或构建产物。让我们模拟这种情况。
创建一个临时文件:
echo "临时草稿" > notes.tmp
检查状态:
git status
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
notes.tmp
nothing added to commit but untracked files present (use "git add" to track)
Git认为 notes.tmp 是未跟踪的。要告诉Git忽略此文件以及任何以 .tmp 结尾的文件,创建一个名为 .gitignore 的文件(注意开头的点):
echo "*.tmp" > .gitignore
这创建了 .gitignore 文件并向其中添加了模式 *.tmp。星号 * 用作通配符,匹配任何字符序列。
现在,再次检查状态:
git status
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
nothing added to commit but untracked files present (use "git add" to track)
注意 notes.tmp 不再被列出!Git现在根据 .gitignore 中的规则忽略它。然而,.gitignore 文件本身是新的且未跟踪的。由于像忽略规则这样的配置 应该 成为项目历史的一部分(以便其他使用该仓库的人也能从中受益),让我们添加并提交它:
git add .gitignore
git commit -m "添加 .gitignore 以排除临时文件"
最后一次检查状态和日志:
git status
git log
git status 应该报告 nothing to commit, working tree clean。git log 现在将显示你的历史中有两次提交。
恭喜!你已成功初始化了一个Git仓库,将文件添加到暂存区,创建提交以保存项目快照,并配置Git忽略特定文件。你已练习了使用Git时会经常用到的核心工作流程。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造