Coursera 笔记

Module 02 · Git Commands and Managing GitHub ProjectsGit 命令与 GitHub 项目管理

Hands-on Lab: Getting Started with Branches using Git Commands动手实验:使用 Git 命令操作分支入门

预计所需时间: 25 分钟

目标

完成本实验后,你将能够使用 Git 命令操作本地仓库中的分支,包括:

  1. 使用 git init 创建新的本地仓库
  2. 创建文件,并使用 git add 将其添加到仓库
  3. 使用 git commit 提交更改
  4. 使用 git branch 创建分支
  5. 使用 git checkout 切换分支
  6. 使用 git status 检查已修改文件的状态
  7. 使用 git log 查看最近的提交
  8. 使用 git revert 撤销更改
  9. 使用 git branch 获取分支列表及当前活动分支
  10. 使用 git merge 将活动分支中的更改合并到另一个分支

先决条件

本实验设计为在 Skills Network Cloud IDE 中运行。该云端集成开发环境(Cloud IDE)运行于云中的 Linux 系统,并已安装 Git。如果你打算在自己的系统中完成实验,请确保已安装 Git(Linux 或 macOS)或 Git Bash(Windows)。请检查登录凭据是否有效,并确保网络连接稳定、浏览器受支持。如果遇到问题,可以尝试清除缓存/cookies 后重试。

初始化:打开新的终端窗口

在 IDE 中打开终端窗口,以便输入 shell 和 Git 命令。

  1. 点击本说明面板右侧的 Terminal 菜单,然后点击 New Terminal。
  2. 这会在底部新增一个终端窗口,你可以在其中开始输入命令。

练习 1:创建新的本地仓库

  1. 在终端中运行以下 mkdir 命令,创建 myrepo 目录。
mkdir myrepo


2. 运行以下命令,进入 myrepo 目录。

cd myrepo
  1. 使用 git init 命令,将 myrepo 目录初始化为 Git 仓库。
git init
  1. 本地 Git 仓库现已初始化,其中的 .git 文件夹包含所有 Git 文件。你可以在终端窗口中运行以下命令,列出目录内容以验证。. 前缀会使 Git 目录隐藏。-la 选项以长列表形式显示隐藏的 Git 目录中所有文件的访问权限、创建时间及其他详细信息。
ls -la .git

输出显示 .git 子目录的内容,其中包含 Git 服务器所需的全部信息。

练习 2:创建文件并添加到本地仓库

  1. 使用以下 touch 命令,创建名为 newfile 的空文件。
touch newfile
  1. 使用以下 git add 命令,将此文件添加到仓库。
git add newfile

练习 3:提交更改

  1. 提交更改前,你需要告诉 Git 你的身份。使用以下命令即可完成设置。将“you@example.com”替换为你登录 GitHub 所用的邮箱地址,将 Your Name 替换为你的姓名。

请注意,邮箱和姓名必须放在引号内。

git config --global user.email "you@example.com"
git config --global user.name "Your Name"
  1. 现在,可以使用以下 git commit 命令提交更改。

请注意,提交需要一条提交信息,可以使用 -m 参数提供。

git commit -m "added newfile"

练习 4:创建分支

  1. 上一次提交创建了一个名为 master 的默认主分支。
  2. 要继续修改仓库,请在本地仓库中创建新分支。在终端中运行以下 git branch 命令,创建名为 my1stbranch 的分支。
git branch my1stbranch

练习 5:获取分支列表和活动分支

  1. 运行以下 git branch 命令,查看仓库中的分支列表。
git branch
  1. 请注意,输出列出了两个分支:默认的 master 分支,其旁边的星号 * 表示它是当前活动分支;以及新创建的 my1stbranch。

练习 6:切换到其他分支

  1. 现在要在新分支中进行更改,运行以下 git checkout 命令,将其设为活动分支。
git checkout my1stbranch
  1. 运行以下 git branch 命令,验证新分支现已成为活动分支。
git branch
  1. 请注意,星号 * 现在位于 my1stbranch 旁边,表明它已成为活动分支。

有一种快捷方式:你可以在 git checkout 命令后加上 -b 选项,一步完成创建分支并使其成为活动分支,而无需先用 git branch 创建分支,再用 git checkout 切换。

git checkout -b my1stbranch

练习 7:修改分支并检查新增或修改文件的状态

  1. 在名为 my1stbranch 的新分支中进行一些更改。首先在终端中运行以下命令,向 newfile 追加字符串“Here is some text in my newfile.”。
echo 'Here is some text in my newfile.' >> newfile
  1. 运行以下 cat 命令,验证文字已添加。
cat newfile


3. 使用以下命令,再创建一个名为 readme.md 的文件。

touch readme.md
  1. 使用以下 git add 命令,将它添加到仓库。
git add readme.md
  1. 到目前为止,你在新分支中编辑了 newfile,并添加了名为 readme.md 的文件。使用 git status 命令,可以轻松验证当前分支中的更改。
git status
  1. git status 命令的输出显示,文件 readme.md 已添加到分支中,并已准备好提交,因为你使用 git add 添加了它。但是,尽管你修改了 newfile,却没有明确使用 git add 添加它,因此它尚未准备好提交。
  2. 添加所有修改和新增文件的一种快捷方式,是使用以下带星号 * 的 git add 命令。这也会将修改后的 newfile 添加到分支中,使其准备好提交。
git add *
  1. 再次检查状态。
git status
  1. 输出现在显示,这两个文件都可以提交了。

练习 8:提交并查看提交历史

  1. 更改现已准备就绪,可以使用以下提交命令将其保存到分支中,并用提交信息说明所做的更改。
git commit -m "added readme.md modified newfile"
  1. 运行以下 git log 命令,查看最近的提交历史:
git log
  1. 日志显示了最近两次提交:最后一次提交到 my1stbranch,以及之前提交到 master 的一次提交。

注意:要退出 git log 命令,只需按“Q”键。这会关闭日志视图并返回命令提示符。

练习 9:撤销已提交的更改

  1. 有时,你可能在充分测试更改之前就提交了它们,这可能带来不理想的后果。可以使用如下 git revert 命令撤销更改。
    你可以指定前面日志输出中的提交 ID,也可以使用简写 HEAD 撤销最后一次提交:
git revert HEAD --no-edit

注意:如果不指定 --no-edit 标志,可能会出现编辑器界面,显示包含待撤销更改的提交信息。此时,同时按下 Control(或 Ctrl)和 X 键。

  1. 输出显示,指定 ID 的最近一次提交已撤销。

练习 10:将更改合并到另一个分支

  1. 使用以下命令,在当前活动分支 my1stbranch 中再进行一次更改。
touch goodfile
git add goodfile
git commit -m "added goodfile"
git log
  1. 日志输出显示,新添加的 goodfile 已提交到 my1stbranch 分支:

注意:要退出 git log 命令,只需按“Q”键。这会关闭日志视图并返回命令提示符。

  1. 现在,将 my1stbranch 的内容合并到 master 分支。首先,需要使用以下 git checkout 命令使 master 成为活动分支。
git checkout master
  1. 将 my1stbranch 中的更改合并到 master。
git merge my1stbranch
git log
  1. 输出和日志显示分支已成功合并。
  2. 更改已合并到 master 分支,现在可以使用以下带 -d 选项的 git branch 命令删除 my1stbranch:
git branch -d my1stbranch

练习 11:自主练习

  1. 创建名为 newbranch 的新目录和分支
  2. 将 newbranch 设为活动分支
  3. 创建名为 newbranchfile 的空文件
  4. 将新创建的文件添加到你的分支
  5. 提交 newbranch 中的更改
  6. 撤销最后一次提交的更改
  7. 创建名为 newgoodfile 的新文件
  8. 将最新的文件添加到 newbranch
  9. 提交更改
  10. 将 newbranch 中的更改合并到 master

总结

在本实验中,你学习了如何使用 Git 命令在本地仓库中创建和操作分支。在后续实验中,你将学习如何将本地仓库中的更改与远程 GitHub 仓库同步。

Author(s)

Rav Ahuja

Other Contributor(s)

Richard Ye

© IBM Corporation. All rights reserved.