Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

L6.思考题 e #50

Closed
Tracked by #45
will-ww opened this issue Apr 1, 2023 · 10 comments
Closed
Tracked by #45

L6.思考题 e #50

will-ww opened this issue Apr 1, 2023 · 10 comments
Labels
question Further information is requested

Comments

@will-ww
Copy link
Contributor

will-ww commented Apr 1, 2023

No description provided.

@will-ww will-ww closed this as not planned Won't fix, can't repro, duplicate, stale Apr 1, 2023
@will-ww will-ww added the question Further information is requested label Apr 2, 2023
@will-ww
Copy link
Contributor Author

will-ww commented Apr 2, 2023

如何理解 Git 是一个分布式的版本管理系统?Linus Torvalds 当初开发它的主要动机是什么?

@will-ww will-ww reopened this Apr 2, 2023
@JinaoLiu
Copy link
Contributor

JinaoLiu commented Apr 3, 2023

分布式版本控制的特点是没有中央服务器,每一台电脑都包含所有的历史版本;当两个人或者多个人合作的时候,只需要将自己的修改推送给对方就可以;
如果两个人在同一个分支(后面会讲到),修改了同一个文件,Git 会自动进行合并,当合并产生冲突而不能解决的时候,通常可以使用外部合并工具,如 BeyondCompare ,来解决;
优势是:
不需要联网:自己的电脑就有所有的历史版本,当自己修改结束以后,直接修改自己本地的版本库即可;当多人合作的时候,隔一段时间相互推送即可;不必担心历史版本丢失:因为每个人电脑中都包含所有的历史版本,因此,只要不是所有人的历史版本都丢失了,其他人只要从未丢失的人那里复制一份即可;

@zzyzeyuan
Copy link
Contributor

Linus Torvalds 开发Git的主要动机是为了管理Linux内核的开发过程。在过去,Linux内核的开发使用的版本控制系统是BitKeeper,但是在2005年,由于与BitKeeper开发者之间的合作关系出现问题,Linux内核开发团队被迫放弃BitKeeper。因此,Linus Torvalds决定开发一个新的版本控制系统来替代BitKeeper,并且他希望这个系统可以快速、高效地管理Linux内核的代码库,这就是Git的主要动机所在。

@594Surefour
Copy link

Linus Torvalds 当初开发 Git 的主要动机源于 Linux 内核开发团队在 2005 年与原先使用的版本控制系统 BitKeeper 之间的分歧。由于 BitKeeper 不再提供免费的社区版,Linux 内核开发团队需要寻找一个新的版本管理系统。当时市面上的其他版本管理系统无法满足 Linux 内核开发的需求,如性能、分布式架构以及安全性等方面。因此,Linus Torvalds 决定自己开发一个新的版本管理系统,即 Git,以满足 Linux 内核开发的特殊需求。

Git 的设计目标包括:
速度:Git 需要快速地处理大量操作,以支持庞大的开源项目。
分布式:Git 需要能够支持分布式协作,让开发者在本地工作,然后将更改推送到远程仓库。
数据完整性:Git 需要确保代码库的数据完整性,以避免损坏或篡改。
灵活的分支管理:Git 需要提供强大的分支管理功能,以支持并行开发和协作。

@gongchenghua
Copy link
Contributor

Git:是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件

@nicole01101101zke
Copy link
Contributor

如何理解分布式:
分布式版本控制,又称去中心化版本控制,是一种版本控制的方式,它允许软件开发者共同参与一个软件开发项目,但是不必在相同的网络系统下工作。其作法是在每个开发者电脑中复制一份完整的代码库以及完整历史。因此在无法连接网络时,仍可以进行软件的分支及合并,可以加速大部分的作业,增加此情形可以进行的工作,而且系统的代码库可以在多家电脑上备份,不需靠单一位置的备份。而多个位置的代码库再透过其他机制来达到同步。

动机:
自2002年开始,Linus Torvalds 决定使用BitKeeper作为Linux内核主要的版本控制系统用以维护代码。因为BitKeeper为专有软件,这个决定在社群中长期遭受质疑。在Linux社群中的成员主张应该使用开放源代码的软件来作为Linux内核的版本控制系统。Linus Torvalds曾考虑过采用现成软件作为版本控制系统(例如Monotone),但这些软件都存在一些问题,特别是性能不佳。
2005年,Andrew Tridgell写了一个简单程序,可以连接BitKeeper的仓库,BitKeeper著作权拥有者认为他对BitKeeper内部使用的协议进行逆向工程,决定收回无偿使用BitKeeper的许可。Linux内核开发团队与BitMover公司进行磋商,但无法解决他们之间的分歧。Linus Torvalds决定自行开发版本控制系统替代BitKeeper,以十天的时间编写出git第一个版本。

  • 参考维基百科

@tennnx
Copy link
Contributor

tennnx commented Apr 17, 2023

Git 是一个分布式版本管理系统,这意味着它不仅仅把文件的修订历史记录保存在单一的集中式服务器上,而是将代码库完整地复制到每个开发者的本地电脑上,每个开发者都可以在本地独立地进行代码开发和版本管理,而不需要依赖于中央服务器。

Linus Torvalds 开发 Git 的主要动机是他对于 Linux 内核开发所使用的现有版本控制系统的不满。在当时,Linux 内核开发使用的主要是 BitKeeper 这个商业的集中式版本控制系统,但是由于其许可证等问题,导致 Linux 内核社区不得不放弃使用 BitKeeper。这时候,Linus Torvalds 决定开发一个新的版本管理系统来代替 BitKeeper,这个新的版本管理系统就是 Git。

在设计 Git 的时候,Linus Torvalds 强调了分布式的概念,因为他认为这样可以更好地满足开源项目的需求。分布式的版本控制系统可以让每个开发者都有自己的完整版本库,从而可以在本地进行代码开发和版本管理,不需要依赖于中央服务器,从而更加灵活、高效、安全地进行协作开发。

by ChatGPT

@pourquoi-1130
Copy link
Contributor

Git 是一个分布式的版本管理系统,与传统的集中式版本管理系统(如 SVN)不同,每个开发者都可以在本地拥有一份完整的代码仓库,而不需要像集中式版本管理系统那样依赖于中央服务器;另外,和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。这使得 Git 具有更好的灵活性和可扩展性,能够更好地适应分布式开发的需要。

Linux的创始人Linus Torvalds在2005年开发了Git的原型程序。当时,由于在Linux内核开发中使用的既有版本管理系统的开发方许可证发生了变更,为了更换新的版本管理系统,Torvalds开发了Git。

@Ashura5
Copy link
Contributor

Ashura5 commented Apr 17, 2023

分布式版本管理系统(Distributed Version Control System,DVCS)是一种版本管理系统的架构,允许多个开发者在本地工作,同时轻松地与其他开发者进行协作。Git就是一个典型的分布式版本管理系统。与集中式版本管理系统(Centralized Version Control System,CVCS)不同,分布式版本管理系统中每个开发者都拥有完整的代码库副本。这意味着,开发者可以在本地进行代码的修改、提交和查看历史记录,而无需连接到中央服务器。这种架构提高了开发者的工作效率,降低了对中央服务器的依赖,并增强了系统的容错性。

Linus Torvalds在2005年创建Git的主要动机源于当时Linux内核开发过程中使用的BitKeeper版本控制系统。BitKeeper是一个商业的集中式版本管理系统,当时它向Linux开发者提供了免费许可。然而,2005年BitKeeper制造商收回了Linux内核开发者的免费许可。这导致了Linux内核开发团队面临版本控制工具的紧急需求。

这个事件促使Linus Torvalds决定开发一个新的、开源的分布式版本管理系统。他希望这个系统能够满足以下几个目标:

1.分布式协作:允许开发者在本地进行版本控制操作,减少对中央服务器的依赖。
2.数据完整性:确保代码库的数据安全可靠,防止数据损坏。
3.高性能:提供快速的操作和数据传输速度,支持大规模的项目和团队。
4.简单易用:易于理解和使用,降低开发者的学习成本。
Git的开发实现了这些目标,迅速成为了开源社区和商业环境中广泛使用的版本控制系统。如今,Git已经成为了许多开发者的首选工具,支撑着全球范围内的协作和代码共享。

by chatgpt

@Hcque
Copy link
Contributor

Hcque commented May 8, 2023

每个用户都有一个完整的 Git 存储库副本,并且可以在不依赖于中央服务器的情况下进行更改和提交。每个用户都可以在自己的本地存储库中保存所有历史记录和版本更改,并且可以在需要时将这些更改推送到其他远程存储库中

@will-ww will-ww closed this as completed Feb 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

10 participants