Udacity前端开发工程师(入门)25 - 创建和修改代码库

25.0 本课内容

  • 如何将 Git 用于自己计算机上的单独项目
  • 如何新建仓库(repository)并进行提交(commit
  • Git 进行合并和分支以及使用上述工具追踪项目的更改

25.1 练习初始化仓库

初始化./创建新的 Git 代码库:git init

当初始化 Git 代码库的时候, Git并不会自动进行 commit

Git 要进行提交的时候,并不需要将整个 Git 仓库进行提交,而可以选择性的将文件添加到存储区域,该命令为:git add

如果你意外地将某个文件添加到暂存区中,可以使用 git reset 删除它。例如,如果你意外地添加了 lesson_2_reflections.txt,但不想提交它,请运行 git reset lesson_2_reflections.txt,此命令会从暂存区中删除该文件,但它仍在你的工作目录中。

自我们上次再次查看概念图以来,我们引入了一些新概念。

git init (git 初始化)
git add (git 添加)
git status (git 状态)
staging area (暂存区)
working directory (工作目录)
[//]: #(

Udacity前端开发工程师(入门)25 - 创建和修改代码库_第1张图片
image.png
)
[//]: # (This may be the most platform independent comment)

25.2 写好提交信息

在将仓库进行提交的时候,需要编写提交信息,以说明所做的更改。可以通过命令行指定提交信息,git commit -m "Commit message"
设置编辑器仍然是一种好的做法,因为这可更轻松地编写较长的提交信息,以全面说明所做的更改。

提交信息的风格
虽然提交信息的风格因人而异,但此风格指南介绍了在编写提交信息时的一些常见最佳做法。

25.3 再次学习 git diff

git diff 有了新功能,如下:

git diff:比较 working directory 以及 staging area
git diff --staged:比较 staging area 以及 repository 中最新的 commit
git diff commit1 commit2:比较 repository 中的 commit1commit2

25.4 分支 Branch

branch 实际就是 Git 为了操作方便而对 commit 添加的标签(label)。使用 git branch 创建和查看分支。

直接 git branch 可以显示当前的分支
而给 git branch 后赋一个参数后,则会新建一个与参数同名的分支: git branch easy-mode

  • 使用 git branch branch_name 创建以 branch_name 命名的 branch
  • 使用 git checkout branch_name 检出以 branch_name 命名的 branch

上述两条命令可以简单表示成:git checkout -b branch_name

  • 使用 git commit 以提交添加到存储区域的内容。
  • 使用 git log --graph --oneline branch1_name branch2_name 以查看 branch1_namebranch2_name 分支的提交记录。

25.5 练习合并简单文件(将多个分支中的更改合并到单一版本)

Git 创建单一版本将多个分支的所有更改包含在内的合并策略。

Git 根据当前两个 branch 最新的 commit,以及它们 fork 之前的 commit 的记录(即形成分支的时候所具有的原始文件)来创建者两个分支的合并提交。当前两个分支的最新提交均为该合并提交(merged commit)的父提交。

Udacity前端开发工程师(入门)25 - 创建和修改代码库_第2张图片
image.png

使用 git merge master new-branch 合并 masternew-branch 并且将合并后的提交作为 master 的新顶点。
使用 git show commit_id 通过该命令查看 commit_id 与其父级 commit 当中的更改,而无需了解父级 commit 到底是哪个
使用 git branch dash -d branch-name 将标签 branch-name 删除,但并不会删除分支中的提交。-d 指代 delete

25.6 练习合并冲突 & 检测冲突

合并冲突(merge conflict):意味着 masterbranch_name 更改了某文件的同一部分。Git 自身无法判断哪些更改需要保留,因此会提示作者进行抉择。

25.7 概念图:分支和合并

分支与合并都需进行提交,但提交与分支/合并之间到底有什么关系?

分支实际上就是提交的标签(label

Udacity前端开发工程师(入门)25 - 创建和修改代码库_第3张图片
image.png

你可能感兴趣的:(Udacity前端开发工程师(入门)25 - 创建和修改代码库)