1. 入门:克隆项目
从上一讲停下的地方继续。你已经在 GitHub 上创建了一个仓库,现在需要把它的本地副本拉到自己的电脑上以开始工作。这个过程称为克隆。
步骤 1. 启动你的 IDE。如果已经打开了某个项目,通过 File -> Close Project 关闭它。在启动窗口选择 Clone Repository 或 Get from VCS。
步骤 2. 在弹出的窗口中粘贴你的仓库 URL。如果你要克隆他人的仓库,这种方式很方便。URL 可以在 GitHub 仓库页面上复制。
如果你要克隆自己的仓库(本讲的场景),最简单的方法是在 IDE 中直接登录 GitHub。选择 Log in to GitHub。IDE 会打开浏览器进行授权。
在打开的页面中点击绿色按钮 Authorize JetBrains。之后你就可以在 IDE 的列表中直接选择自己的仓库。选中需要的项目并点击 Clone。
步骤 3. IDE 会询问你是否信任该项目。因为这是你自己的仓库,请点击 Trust Project。
步骤 4. 防病毒设置(Windows 用户)
Windows 的防病毒软件可能会提示 IDE 在执行它不认识的操作。由于我们要创建并运行程序,需要允许 IDE 不受限制地工作。点击“Automatically”按钮,让 IDE 自动把相关文件夹加入防病毒的排除列表。
2. 保存更改:Commit
commit 是项目在某一时刻的“快照”或保存状态。可以把它看作游戏里的存档点:如果出现问题,你随时可以回到这一点。每个提交都有唯一的标识符以及描述所做更改的消息。
gitGraph
commit id: "Initial commit"
commit id: "Add user authentication"
commit id: "Fix login button bug"
commit id: "Refactor database connection"
提交历史。每一个新的提交都建立在前一个提交之上,形成项目演进的时间线。
步骤 1. 做出改动。
如果你克隆的是一个刚创建的仓库,它通常只有一个文件——README.md。
打开 README.md 文件,添加项目的说明。一旦开始编辑,IDE 会在项目面板中将它的名称高亮为 blue color。这表示文件已被修改,但更改尚未保存到 Git。IDE 还会在你修改过的地方添加 green line。
步骤 2. 打开 Commit 窗口。
IDE 左侧有一个 Commit 选项卡。打开后你会看到所有准备保存的更改。对于第一次提交,这个窗口需要特别留意。
我们来看看这里都有什么:
- Changes: 这里是已经被 Git 追踪但发生了修改的文件。在我们的例子中是我们添加了项目计划的
README.md。 - Unversioned Files: 这是 Git 在项目文件夹中发现但尚未追踪的新文件。
可能会有疑问:这些工具性文件都需要加入仓库吗?
好消息是,在 GitHub 上创建仓库时,我们选择了 .gitignore 模板。这个文件已经包含了让 Git 忽略不必要文件或文件夹的规则。关于它我们会在本讲末尾详细讨论。
现在,第一次提交的任务是:把项目的主要文件加入历史,并写上提交消息。
步骤 3. 执行提交。
点击 Commit 按钮。完成!你已经在本地仓库保存了项目的“快照”。文件会恢复为普通颜色显示。
3. 将更改推送到 GitHub:Push
此时你的提交只存在于本机。要与团队共享或安全保存,需要把它们推送到 GitHub 的远程仓库。
sequenceDiagram
participant 本地仓库 (你的电脑)
participant 远程仓库 (GitHub)
note over 本地仓库 (你的电脑): 你已经做了一次或多次提交。
它们只存在于这里。
本地仓库 (你的电脑) ->> 远程仓库 (GitHub): git push (推送提交)
note over 远程仓库 (GitHub): 你的提交已被复制,
并可靠地保存在服务器上。
步骤 1. 点击 Push 按钮。
在 IDE 右上角有一个绿色向上箭头——那就是 Push 按钮。点击它。
步骤 2. 检查并确认。
会弹出一个窗口,展示所有准备推送的提交。这是你最后一次确认即将推送内容的机会。点击 Push。
如果一切顺利,你会看到消息:Pushed commits to origin/main. Create pull request
步骤 3. 在 GitHub 上检查结果。
推送成功后,打开你在 GitHub 上的仓库页面,你会看到更改已经出现在那里。
4. Git 控制面板
IDE 的顶栏有一个专门的 Git 菜单,它是你的版本控制中心。我们快速了解一下其中的关键项。
Commit:打开我们已经熟悉的保存更改的窗口。Push:打开将提交推送到 GitHub 的窗口。Update Project:非常重要的功能。它会拉取团队其他成员的最新更改(执行git pull)。每天开始工作前都点一下!Branches:打开分支管理窗口。我们将在下一讲详细介绍。Show Git Log:显示项目的全部提交历史。你的个人“时光机”。
5. 使用 .gitignore 文件
如果你在项目中添加了一些工具性文件且不希望它们被误加入仓库,可以把它们加入忽略列表。这就用到名为 .gitignore 的文件。当项目中包含不需要纳入版本控制的文件时(例如临时文件、日志、密码),它非常有用。
步骤 1. 先在项目目录中创建你想忽略的文件。例如 notes.txt。创建后如果 IDE 提示将其加入 Git,请点击 Cancel。
步骤 2. 在 “Project” 窗口里右键单击刚创建的文件,转到 Git --> Add to .gitignore --> Add to .gitignore。此操作会把选中的文件添加到项目根目录的 .gitignore 文件中。
如果你的项目中还没有 .gitignore 文件,IDE 会建议创建它。请同意。
步骤 3. IDE 会自动把该文件名加入 .gitignore。
添加到 .gitignore 后,被忽略的文件会显示为灰色或棕色。在尝试提交更改时,这些文件会被忽略。可以将 .idea 文件夹加入忽略列表。
别忘了把 .gitignore 文件本身也提交到仓库并推送到 GitHub,这样项目所有成员都能使用相同的忽略规则。
排除本地文件:.git/info/exclude
除了为所有项目用户生效的 .gitignore 外,Git 还提供了在 .git/info/exclude 中创建本地忽略规则的能力。它们不会被提交到仓库中,只对你本地副本有效。
例如,用于忽略由你的 IDE 生成且不应纳入版本控制、并且只对你个人环境特有的文件时,这会很有用。
Important! 本地忽略规则只对你本地的仓库副本生效。
那如果我已经提交了呢?
.gitignore 只会忽略新的、尚未被追踪的文件。如果你已经提交过某个文件,它已经在仓库历史中,即使把它加入 .gitignore,Git 也会继续追踪它。此时可以在终端使用命令:git rm --cached <file>。不过这一点需要另行阅读了解。
.gitignore 的规则
在 .gitignore 文件中,你可以写出 Git 应该忽略的文件和文件夹名称模式。
空行会被忽略。添加注释时,以 # 开头。
模式:
*—— 匹配任意数量的任意字符。例如,*.log会忽略所有.log扩展名的文件。/—— 出现在模式末尾表示目录。例如,logs/会忽略logs文件夹中的所有内容。!—— 行首表示取反规则。例如,如果有*.log规则,但你想追踪important.log,就添加!important.log。**—— 匹配任意层级的子目录。例如,**/temp会忽略任意层级下名为temp的文件夹。
.gitignore 示例
# 已编译的代码
/bin/
/obj/
# 临时文件
*.tmp
*.swp
# 日志
*.log
# IDE 生成的文件夹
.idea/
*.user
*.suo
# 虚拟环境与依赖
/venv/
/node_modules/
现成的模板
这些文件不必从零开始写。社区已经提供了现成且经过验证的模板:
- GitHub 为不同语言和框架提供的
.gitignore模板集合:https://github.com/github/gitignore。 - gitignore.io —— 一个方便的网页服务,可根据你的技术栈生成
.gitignore文件。
GO TO FULL VERSION