我想安装一些 git 上的源代码。我真的不知道那是什么意思;我以前从未使用过 git,但我觉得是时候学习了,
我首先安装了 git。
接下来我尝试克隆我想要安装的软件的 git 目录。
我收到一条消息,说“无法确定(IP)的真实性”。我继续操作,结果又收到一条消息,说“警告,某某将被添加到已知主机。”我继续操作,结果它说要挂断连接。
在网上搜索了一段时间后,我意识到我不需要 git 来安装该软件,但现在我已经安装了它,并向某个文件或其他文件添加了一些主机。我担心我造成了一些需要修复的安全问题。
有人能帮我撤销我所做的事情,或者更好地理解我所做的事情吗?添加 git 项目是否打开了我的系统?除此之外,有人能告诉我 git 是如何工作的吗?我发现的一切都假设我知道一些我尚不知道的东西。
谢谢
答案1
Git是一个版本控制系统(分布式视频控制系统更准确地说,VCS(版本控制系统)位于服务器(或计算机或云中)上,用于存储和跟踪数据更改。这只是意味着有一个文件存储库(通常是某种编程语言的代码,以及配置、说明等),除了位于服务器上之外,它还会跟踪随时间变化的更改。版本控制系统会跟踪项目中任何文件的任何更改,这些项目是托管的,并且通常是公开或可共享的。
具有前端的版本控制系统(无论是 git 还是 subversion/svn,巴扎尔/bzr,水银/汞等)实际上只是允许您安装标准渠道中不可用或不是最新的应用程序(或包、代码、脚本、补丁)。 换句话说,它允许代码的作者与您和其他人共享它。
Git(或其他 VCS)通过从存储库(示例中的远程 IP.IP.IP.IP)提取所有数据并将其放入系统上的目录(最终由您选择)来实现此目的。除非您实际运行已获得的代码,否则此操作本身不会执行任何操作。
当您使用 VCS 时,获得代码并不一定意味着您要将其作为完整套件运行。您可能会测试它、更新它、合并一些更改、删除一些部分。但在某些情况下,您可以从存储库安装完整的应用程序(或更多)。
如果您可以确保代码是安全的,那么这是一种尝试其他方式可能无法获得的好东西的好方法。
在您的系统上安装git
不太可能有问题。如果空间紧张,您可以从软件中心或使用 将其删除
sudo apt-get remove git
。(可能还有其他软件包,具体取决于您的安装方式。)
如果不知道您下载了什么,就很难知道如何撤消对下载代码所做的任何操作。您可以先ls -lart
在主目录中执行类似操作(从命令行),或在 Nautilus 文件管理器中查找最近修改的目录。对于这两种方法,您都在寻找最后更改的目录文件,其中一些可能是您使用 git 拉到系统上的文件。如果您找到了这些文件,您将更好地了解是否还有其他需要删除的内容或获取撤消帮助。
至于添加主机,我很确定@Christoph(以及@psusi)是正确的。回滚您所做的 ssh 密钥更改的最简单方法是执行以下操作:
buntubox#$ rm -i ~/.ssh/known_hosts
请注意,这将删除整个 known_hosts 文件。这通常不是问题,因为当您 ssh 到其他或重复主机时,它将被重建。或者,您可以编辑文件(使用 gedit、nano 等)并删除不需要的行。(每行都与一个远程主机相关联。)同样,这样做应该是安全的——最坏的情况是,您在登录之前登录过的系统时必须接受新密钥。
答案2
您收到的消息来自 ssh,这可能是您用于连接 git 服务器的协议。Ssh 会记住您过去使用过的远程服务器的指纹,这样当您再次尝试连接时,它可以验证它实际上是同一个服务器,而不是有人试图冒充该服务器。当然,第一次连接时,它无法做到这一点,这就是它警告您的原因。您保存的是指纹,以便将来可以验证连接到合法服务器。