📜  如何在 Ubuntu 中使用 GIT? (第2部分)

📅  最后修改于: 2021-10-21 06:05:39             🧑  作者: Mango

在上一篇文章中,我们学习了如何使用基本的 GIT。在本文中,我们将尝试学习一些更基本的概念,例如分支和合并。

一些更基本的命令:

使用 git 时一些非常有用的命令是:

  • 混帐

在终端中输入这个,你会看到一堆常用的 GIT 命令及其用法。要详细了解命令,您可以输入 ‘git help ’ 。

har_5_1

  • 状态

这是 GIT 最有用的命令之一。如果在任何时候,您想知道当前分支或未暂存提交或未跟踪文件的文件中的更改,请键入此命令。

har_5_2

在这里,分支是 master,一切都是最新的。让我们对文件进行一些更改,然后再次使用此命令。

har_5_3har_5_4

文件 helloworld.c 中存在未暂存以进行提交的更改,我们可以选择在最终提交中添加这些更改或在最终提交中放弃更改。我们可以使用 git add 添加它们。命令(如前所述)并通过命令 git checkout — helloworld.c 丢弃文件中的更改(注意:’-‘ 和 ‘helloworld.c’ 之间有一个空格)

  • 混帐日志

使用此命令,您可以查看包含日期、时间、作者姓名和提交注释的提交日志。该命令在一组开发人员从事同一个项目时非常有用。

har_5_5

  • 添加

如前所述,我们必须在稍后提交时将文件添加到列表中。我们可以在 git add 的帮助下添加文件。或 git add helloworld.c 但是,假设我们只想添加具有类似扩展名的特定文件组。假设所有以 .txt 结尾的文件。然后我们可以通过git add *.txt命令来完成。这只会添加以 .txt 结尾的文件。

现在,如果我们想忽略具有类似扩展名(.txt、.cpp 等)的特定文件组,那么我们也可以使用 git 来完成。例如,让我们考虑要忽略我们可以看到的 .c~ 文件(helloworld.c~)。我制作了另一个名为 newfile.c 的文件,以便有另一个 .c~ 文件将被忽略。我们需要遵循两个简单的步骤:

  1. 我们需要创建一个.gitignore文件,我们将在其中存储所有要忽略的扩展名。我们可以通过在终端中输入 touch .gitignore 来创建这样一个文件,然后用文本编辑器打开它。
  2. 键入要忽略的文件的所有扩展名。在这里,我想忽略所有 .c~ 文件和.gitignore~ 文件。

har_5_6

我们可以通过键入命令 ls 来查看文件 newfile.c~ 但当我们检查状态 (git status) 时,我们只能看到两个未跟踪的文件 (.gitignore 和 newfile.c)。请注意,没有 newfile.c~ 文件,这意味着它已被成功忽略。我们现在可以添加未跟踪的文件,然后像我们之前所做的那样提交。

har_5_7

分支与合并

分支允许您处理主线中的代码副本,而实际上不影响主线目录。例如,假设您想处理项目的一个新模块,那么您可以选择一个您将在其上工作的新分支。其他每个人都可以通过在他们的分支上工作来处理同一个项目,而不受您工作的影响。完成后,您可以将所有工作合并回主分支。用于分支和合并的一些重要命令是:

  • git 分支

这列出了您帐户的所有本地分支。如果您尚未创建分支,则默认情况下它是 master 分支。

har_5_8

  • git branch NewBranchName这将创建一个从历史上的某个点开始的新分支作为当前分支。请注意,它不会使其成为当前工作分支,因此我们需要使用命令git checkout NewBranchName 手动更改它

har_5_9

现在,如果我们执行命令 git status 那么它也会显示当前分支为 newmodule。

如果在这个分支上我们对文件 aboutme.txt 进行了一些更改,然后我们想要合并两个文件 aboutme.txt(在分支上:newmodule)和 aboutme.txt(在分支上:master)。对于合并,您必须确保当前分支是您的目标分支。在这里,目标分支将是主分支。因此,我们将通过 git checkout master 将我们当前的分支从 newmodule 切换到 master 然后合并它们。

  • git merge SourceBranchName

这会将指定的分支 (SourceBranchName) 合并到当前分支并自动提交结果。

在这里,我们在分支中的 aboutme.txt 文件中进行了一些更改:newmodule

har_5_10

现在,在新模块分支中暂存并提交更改后,我们通过 git checkout master 将当前分支更改为 master 并打开 aboutme.txt。

har_5_11

请注意,这个 aboutme.txt 文件没有像在分支中那样用第二行更新:newmodule

现在,我们将使用命令 git merge newmodule 来合并两个分支。现在,打开 aboutme.txt ,我们看到文件也更新了第二行。

har_5_12

这将运行得非常顺利,但大多数情况下,即使在最简单的情况下,我们也会遇到合并冲突。您可以想象在实际项目中工作时这会变得多么复杂。但是每当我们遇到合并冲突时,我们都可以启动一个合并工具,它可以帮助以更简单的方式修复冲突。 Meld 是 Ubuntu 软件中心提供的一个合并工具。您还可以在 Ubuntu、Windows 和 Mac 上使用命令行安装它。

Harshit Gupta 的文章:

苛刻

位于加尔各答的 Harshit Gupta 是一位活跃的博主,对撰写时事、技术博客、故事和个人生活经历有着浓厚的兴趣。除了热爱写作,他还喜欢编码和跳舞。目前在 IIEST 学习,他是 geeksforgeeks 的活跃博客撰稿人。你可以通过 https://in.linkedin.com/pub/harshit-gupta/102/b71/605 联系到他

如果您还想在这里展示您的博客,请参阅 GBlog,了解 GeeksforGeeks 上的客座博客写作。