如何教人们使用git

为了工作,我必须参加各种项目,所以我很了解我的所有同事的工作方式。 我记得在我到达之前的几周,该公司就开始使用Git。 在开发人员的监视器上,周围悬挂着提醒,它们是:先添加,然后提交,然后推送。


他们不知道为什么。 只是被告知程序员必须严格遵循说明,否则会造成麻烦。 但是问题经常出现,所以我决定举办一个Git研讨会。

主意


我喜欢在脑海中绘制地图。 我不说“心理图”,因为它是一种众所周知的图。 它与头脑中的某些图片,结构或任何图形表示有关。 例如,小时候,我通过引入骰子来学习算术。

所以我准备了一些图纸。 不必看着他们理解文本。 每个人都有一个解释。

此外,教人称谓非常重要。 否则,他将无法理解来自Git的消息。 画画是个好方法。

分布式版本控制系统




在图中,四个区域分布如下:

  • 开发环境:
    • 工作目录
    • 中间区域(阶段)或索引
    • 本地仓库
  • 伺服器:
    • 远程仓库

在这里,您可以解释分布式版本控制系统的好处。

储存库克隆




克隆时,来自远程存储库的数据将移至两个区域:

  • 工作目录
  • 本地仓库

更改工作目录




工作目录中有两种文件类型:

  • 已跟踪 :Git知道的文件。
  • Untraceable :尚未添加,因此Git不了解它们。

更新远程存储库




工作目录中准备好更改后必须将其添加到暂存区域。

当有一个共同目标的大量变更在那里累积时,是时候在本地存储库中创建带有有关此目标的消息的提交。

如果本地存储库中有一个或多个提交准备好与世界其他地方共享,则将它们发送到远程存储库

在这一点上,我们可以讨论开发环境中文件的各种状态: Modifyed中级 (暂存)和fixed (已提交)。



进一步,您可以解释:

  • : git diff
  • : git diff --staged
  • . .


(fetching)




git fetch .

(pulling)




git pull :

  • : fetch
  • : merge

, git pull --rebase. fetch + merge fetch + rebase. , .




, : .

, : , , , .


(Visual SourceSafe, TFS Subversion): , , . , .




, Git .

Hacker News:


Reddit, , «, Git», , , Git Pro Git. , . , . !

, Hacker News, u/cryptoz, Reddit!

Source: https://habr.com/ru/post/zh-CN437000/


All Articles