大学生应该从中学到什么

Git是Universe(?)中最受欢迎的源代码控制工具之一。 它允许使用一些简单的命令进行大规模协作。 下一篇文章将分享最基本的git命令addcommitpushpull ,以开始成为git专家。

我强烈建议您在熟悉以下命令后再深入研究。 让我们开始!

工作区,[暂存],存储库和远程

Git将更改组织到三个(四个?)不同的*位置; 工作区,本地存储库和远程存储库。 了解这些*位置是了解git命令所必需的。

* 位置 不是技术术语。 我不确定要使用哪个词对它们进行分组。

工作空间

工作空间是与本地存储库关联的本地文件夹和文件。 Git会自动识别您在此处所做的更改。

[本地]存储库

使用git命令将工作空间更改保存到本地存储库。 重要的是要注意,更改工作空间中的文件夹和文件不会更改有关本地存储库的任何内容。 只有git命令会更改本地存储库。

远程[存储库]

这是存在于云中的存储库。 尽管它是本地存储库的副本,但它也与本地存储库分开。 在执行正确的git命令之前,本地存储库更改将不会显示在远程存储库中。

同样,更改工作空间不会更改本地或远程存储库。 Git命令将协调那些更改。

[舞台]

过渡就像工作区和存储库之间的游说区。 只有发送到大厅的文件才会进入存储库。 因此,重要的是要知道该状态存在,但不要太在意。

工作区→[本地]存储库

工作空间中的更改最终将最终存储在本地存储库中。 这称为提交更改,但它分为两个步骤。

工作区→[暂存]

  1:git添加。 
2:
3:git add [文件名]
4:git add [正则表达式]

第1行可能是最常用的命令,因为它会暂存所有 工作区中更改的文件。 第3行将暂存特定文件,第4行将暂存与正则表达式匹配的文件。 从git add .开始git add . 为了方便。

注意,只能提交暂存文件(保存到本地存储库)。 这就是它的工作原理。 因此,不要忘记暂存要提交的文件(保存到本地存储库)。

[暂存]→[本地]存储库

  1:git commit -m'[您的消息在这里]' 

第1行将获取暂存的文件并将其提交到本地存储库。 -m '[Your Message Here]'的消息-m '[Your Message Here]'表示附加到提交的消息。

帮个忙,写一条信息,从现在起五个月后有意义。 从技术上讲,什么消息无关紧要,但是写得很好的消息使搜索特定更改更加容易。

一步提交

  1:git commit -a -m'[您的消息在这里]' 

第1行将作为一个命令执行暂存和提交 。 这等效于以下内容:

  1:git添加。 
2:git commit -m'[您的消息在这里]'

[本地]存储库→远程[存储库]

  1:git push 
2:
3:git push原始主机
4:git push -u原始主机

要与世界共享本地存储库,请将它们放在远程存储库中。 为此,请将提交从本地存储库送到远程存储库。

从技术上讲,第3行是在第1行执行的内容。这意味着第1行隐式将origin master添加到执行中。 如果由于某些原因执行第1行不起作用,请尝试第4行,然后第1行应该起作用。 此时,无需进一步解释。

远程[存储库]→工作区

  1:git pull 
2:
3:git pull origin master

源代码管理不仅用于保存信息,还用于协作。 其他开发人员将能够派生您的远程存储库,在其本地存储库中进行更改, 这些更改送到其远程存储库,然后将拉取请求发送到原始远程存储库。 目前,这听起来似乎有些胡言乱语,所以我要讲清楚。

其他人可以更改您的远程存储库(在您允许的情况下),然后您可以这些更改放入本地存储库和工作空间中。 第1行, git pull ,是您的操作方法。

公司就是这样运作的。 每个人都在自己的本地工作区和本地存储库中工作,当他们准备与公司的其余部分共享该代码时,他们会将这些提交送到远程存储库中。 届时,将可在开发人员方便时使用它。

一些要考虑的事情…

矛盾冲突

如何在相同文件上进行协作而将这些更改合并在一起没有任何问题? 好吧,您可能会遇到所谓的合并冲突。 当您代码从远程存储库中拉到工作区时,可能会发生这些情况。

这是一个例子。 假设我们有一个“ README.md”文件,而Amy和Frank在同一行进行了更改; 假设第5行。Frank首先这些更改送到远程存储库,然后Amy 这些更改推送到她的工作区。 艾米会发生合并冲突,因为git不会知道是否要接管弗兰克的更改而不是艾米的更改。 在这一点上,艾米决定第5行说什么。 既可以是弗兰克(Frank)的更改,也可以是艾米(Amy)的更改,既可以是他们的更改,也可以是艾米(Amy)完全重写第5行。

如果您不确定发生冲突时要保留哪些更改,与您的团队进行交谈非常重要。

分行

git最强大的功能之一是它如何处理分支。 这是我不会在本文中讨论的主题,而是在学习了基础知识之后需要解决的重要主题。 这就是为什么这么多人使用git的原因。 因此,即使我没有介绍它,这也是您应该知道的。

单词master是默认分支,在我们学习的git命令中隐式引用。 我们可以更改要使用的分支,但是我建议仅在掌握基础知识之前使用master。 分支将是下一个要解决的话题。

状态

  1:git状态 

没有用户界面可以显示工作空间和存储库中所有这些文件夹和文件的状态。 为了了解我们所讨论的所有内容的状态,请使用git status 。 我强烈建议您经常执行该命令。

救命

  1:git帮助 
2:git help [命令]

help命令简要说明了所有可能的命令。 再次,专注于我们已经讨论过的命令( addcommitpushpull ),但是当您忘记它们时,可以使用git help来引用这些命令。 然后查找像这样的文章会更容易,更快。

总览

开始使用git并关注以下命令。 这些将使您有效地工作,而不必深入研究git的内部工作原理。

有用的命令

  git帮助 
git状态

工作区→[本地]存储库

  git commit -a -m'您的消息在这里' 

[本地]存储库→远程[存储库]

  git推 

远程[存储库]→工作区

  git pull 

继续关注创建GitHub存储库并完成上述所有步骤以及更多图片的教程。