Comments (10)
分布式版本控制的特点是没有**服务器,每一台电脑都包含所有的历史版本;当两个人或者多个人合作的时候,只需要将自己的修改推送给对方就可以;
如果两个人在同一个分支(后面会讲到),修改了同一个文件,Git 会自动进行合并,当合并产生冲突而不能解决的时候,通常可以使用外部合并工具,如 BeyondCompare ,来解决;
优势是:
不需要联网:自己的电脑就有所有的历史版本,当自己修改结束以后,直接修改自己本地的版本库即可;当多人合作的时候,隔一段时间相互推送即可;不必担心历史版本丢失:因为每个人电脑中都包含所有的历史版本,因此,只要不是所有人的历史版本都丢失了,其他人只要从未丢失的人那里复制一份即可;
from oss101.
Linus Torvalds 当初开发 Git 的主要动机源于 Linux 内核开发团队在 2005 年与原先使用的版本控制系统 BitKeeper 之间的分歧。由于 BitKeeper 不再提供免费的社区版,Linux 内核开发团队需要寻找一个新的版本管理系统。当时市面上的其他版本管理系统无法满足 Linux 内核开发的需求,如性能、分布式架构以及安全性等方面。因此,Linus Torvalds 决定自己开发一个新的版本管理系统,即 Git,以满足 Linux 内核开发的特殊需求。
Git 的设计目标包括:
速度:Git 需要快速地处理大量操作,以支持庞大的开源项目。
分布式:Git 需要能够支持分布式协作,让开发者在本地工作,然后将更改推送到远程仓库。
数据完整性:Git 需要确保代码库的数据完整性,以避免损坏或篡改。
灵活的分支管理:Git 需要提供强大的分支管理功能,以支持并行开发和协作。
from oss101.
Linus Torvalds 开发Git的主要动机是为了管理Linux内核的开发过程。在过去,Linux内核的开发使用的版本控制系统是BitKeeper,但是在2005年,由于与BitKeeper开发者之间的合作关系出现问题,Linux内核开发团队被迫放弃BitKeeper。因此,Linus Torvalds决定开发一个新的版本控制系统来替代BitKeeper,并且他希望这个系统可以快速、高效地管理Linux内核的代码库,这就是Git的主要动机所在。
from oss101.
分布式版本管理系统(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
from oss101.
如何理解分布式:
分布式版本控制,又称去中心化版本控制,是一种版本控制的方式,它允许软件开发者共同参与一个软件开发项目,但是不必在相同的网络系统下工作。其作法是在每个开发者电脑中复制一份完整的代码库以及完整历史。因此在无法连接网络时,仍可以进行软件的分支及合并,可以加速大部分的作业,增加此情形可以进行的工作,而且系统的代码库可以在多家电脑上备份,不需靠单一位置的备份。而多个位置的代码库再透过其他机制来达到同步。
动机:
自2002年开始,Linus Torvalds 决定使用BitKeeper作为Linux内核主要的版本控制系统用以维护代码。因为BitKeeper为专有软件,这个决定在社群中长期遭受质疑。在Linux社群中的成员主张应该使用开放源代码的软件来作为Linux内核的版本控制系统。Linus Torvalds曾考虑过采用现成软件作为版本控制系统(例如Monotone),但这些软件都存在一些问题,特别是性能不佳。
2005年,Andrew Tridgell写了一个简单程序,可以连接BitKeeper的仓库,BitKeeper著作权拥有者认为他对BitKeeper内部使用的协议进行逆向工程,决定收回无偿使用BitKeeper的许可。Linux内核开发团队与BitMover公司进行磋商,但无法解决他们之间的分歧。Linus Torvalds决定自行开发版本控制系统替代BitKeeper,以十天的时间编写出git第一个版本。
- 参考维基百科
from oss101.
Git 是一个分布式版本管理系统,这意味着它不仅仅把文件的修订历史记录保存在单一的集中式服务器上,而是将代码库完整地复制到每个开发者的本地电脑上,每个开发者都可以在本地独立地进行代码开发和版本管理,而不需要依赖于**服务器。
Linus Torvalds 开发 Git 的主要动机是他对于 Linux 内核开发所使用的现有版本控制系统的不满。在当时,Linux 内核开发使用的主要是 BitKeeper 这个商业的集中式版本控制系统,但是由于其许可证等问题,导致 Linux 内核社区不得不放弃使用 BitKeeper。这时候,Linus Torvalds 决定开发一个新的版本管理系统来代替 BitKeeper,这个新的版本管理系统就是 Git。
在设计 Git 的时候,Linus Torvalds 强调了分布式的概念,因为他认为这样可以更好地满足开源项目的需求。分布式的版本控制系统可以让每个开发者都有自己的完整版本库,从而可以在本地进行代码开发和版本管理,不需要依赖于**服务器,从而更加灵活、高效、安全地进行协作开发。
by ChatGPT
from oss101.
Git 是一个分布式的版本管理系统,与传统的集中式版本管理系统(如 SVN)不同,每个开发者都可以在本地拥有一份完整的代码仓库,而不需要像集中式版本管理系统那样依赖于**服务器;另外,和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的**服务器要是出了问题,所有人都没法干活了。这使得 Git 具有更好的灵活性和可扩展性,能够更好地适应分布式开发的需要。
Linux的创始人Linus Torvalds在2005年开发了Git的原型程序。当时,由于在Linux内核开发中使用的既有版本管理系统的开发方许可证发生了变更,为了更换新的版本管理系统,Torvalds开发了Git。
from oss101.
每个用户都有一个完整的 Git 存储库副本,并且可以在不依赖于**服务器的情况下进行更改和提交。每个用户都可以在自己的本地存储库中保存所有历史记录和版本更改,并且可以在需要时将这些更改推送到其他远程存储库中
from oss101.
如何理解 Git 是一个分布式的版本管理系统?Linus Torvalds 当初开发它的主要动机是什么?
from oss101.
Git:是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件
from oss101.
Related Issues (20)
- L12.思考题 c HOT 9
- L12.思考题 d HOT 3
- L12.思考题 e HOT 3
- L12.思考题 f HOT 3
- [第十三讲] 开源成长与职业发展 - 学习任务
- L13.思考题 a HOT 15
- L13.思考题 b HOT 2
- L13.思考题 c HOT 9
- L13.思考题 d HOT 4
- oss101 本学期的 OpenRank 排名与课程综合成绩评价 HOT 4
- 华东师范大学数据学院暑期夏令营实践项目提交地址 HOT 32
- 华东师范大学 贾柏寒 https://bhjia.github.io/
- [feat] Hope to update the courseware of the last five lessons HOT 1
- 2024 春季《开源软件通识》课程开课规划 HOT 4
- 确定 2024 年春季学期开源课程的评价方式 HOT 6
- [Labeled data] 2024-第一讲线下班正式学员签到专用贴 HOT 2
- 2024 春季学期第一次作业(4.22提交) HOT 93
- 期末大作业推荐任务列表
- 2024 春季学期期末大作业任务总览(7.31前完成) HOT 40
- 缺少LICENSE
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from oss101.