git文件共享_与Git共享文件

git文件共享

Git是那些设法将大量现代计算封装到一个程序中的罕见应用程序之一,最终成为许多其他应用程序的计算引擎。 尽管它最着名的是跟踪软件开发中的源代码更改,但它还有许多其他用途,可以使您的生活更轻松,更有条理。 在4月7日Git成立14周年之前的系列文章中,我们将分享7种鲜为人知的Git使用方法。 今天,我们将看看SparkleShare,它使用Git作为文件共享的基础。

用于文件共享的Git

Git的优点之一是它固有地分布。 建立共享。 即使您仅与自己网络上的其他计算机共享存储库,Git也会为从共享位置获取文件的行为带来透明性。

随着界面的发展,Git非常简单。 它因用户而异,但是坐下来完成一些工作时的共同点只是git pull或稍微复杂一点的git pull && git checkout -b my-branch 。 但是,对于某些人而言,将命令输入到他们的计算机中的想法还是令人困惑或烦恼。 计算机旨在使生活变得轻松,计算机擅长重复性工作,因此有更简便的方法可以与Git共享文件。

SparkleShare

SparkleShare项目是基于Git的跨平台,开源,Dropbox样式的文件共享应用程序。 它通过将文件拖放到专门指定的SparkleShare目录中的简单操作,自动执行所有Git命令,触发添加,提交,推入和拉入过程。 因为它基于Git,所以您可以获得基于差异的快速推送和拉取,并且继承了Git版本控制和后端基础结构(如Git挂钩)的所有优点。 它可以完全自托管,也可以将其与Git托管服务(如GitLab ,GitHub,Bitbucket等)一起使用。 此外,由于它基本上只是Git的前端,因此您可以在可能没有SparkleShare客户端但有Git客户端的设备上访问SparkleShare文件。

正如您获得Git的所有好处一样,您还获得了所有常见的Git限制:使用SparkleShare存储数百张照片,音乐和视频是不切实际的,因为Git是为文本设计和优化的。 Git当然可以存储二进制文件的大文件,但是它可以跟踪历史记录,因此一旦将文件添加到其中,几乎就不可能完全删除它。 这在某种程度上限制了SparkleShare对某些人的实用性,但使其成为许多工作流程(包括日历)的理想选择。

安装SparkleShare

SparkleShare是跨平台的,其网站上提供Windows和Mac安装程序。 对于Linux,您的软件安装程序中有一个Flatpak ,或者您可以在终端中运行以下命令:


   
     
     
     
     
$ sudo flatpak remote-add flathub https://flathub.org/repo/flathub.flatpakrepo
$ sudo flatpak install flathub org.sparkleshare.SparkleShare

创建一个Git仓库

SparkleShare不是软件即服务(SaaS)。 您在计算机上运行SparkleShare以与Git存储库进行通信-SparkleShare不存储您的数据。 如果您还没有与文件夹同步的Git存储库,则必须在启动SparkleShare之前创建一个文件夹。 您有三个选择:托管Git,自托管Git或自托管SparkleShare。

Git托管

SparkleShare可以使用您可以访问的任何Git存储库进行存储,因此,如果您拥有GitLab或任何其他托管服务或创建了一个帐户,则它可以成为SparkleShare的后端。 例如,开源Notabug.org服务是GitHub和GitLab之类的Git托管服务,但其独特性足以证明SparkleShare的灵活性。 根据用户界面的不同,创建新存储库的主机因主机而异,但是所有主要存储库都遵循相同的通用模型。

首先,在托管服务中找到按钮以创建一个新项目或存储库,然后单击它以开始。 然后逐步完成存储库的创建过程,提供存储库的名称,隐私级别(存储库通常默认为公共),以及是否使用README文件初始化存储库。 无论您是否需要自述文件,请启用初始自述文件。 使用文件启动存储库不是绝对必要的,但是它会强制Git主机实例化存储库中的master分支,这有助于确保前端应用程序(例如SparkleShare)具有要提交和推送的分支。 即使您的文件几乎是空的README文件,也可以使用它来查看文件,以确认您已连接。

git文件共享_与Git共享文件_第1张图片

创建存储库后,获取用于SSH克隆的URL。 您可以像获取任何人为Git项目获得任何URL一样获得此URL:导航到存储库页面并查找“ 克隆”按钮或字段。

git文件共享_与Git共享文件_第2张图片

克隆GitHub URL。

git文件共享_与Git共享文件_第3张图片

克隆一个GitLab URL。

这是SparkleShare用于获取数据的地址,因此请记下它。 您的Git存储库现已配置。

自托管Git

您可以使用SparkleShare访问您有权访问的任何计算机上的Git存储库。 除了裸露的Git存储库外,无需任何特殊设置。 但是,如果您想将对 Git存储库的访问权授予任何其他人,则应运行Git管理器(如Gitolite或SparkleShare自己的Dazzle服务器)来帮助您管理SSH密钥和帐户。 至少,创建一个特定于Git的用户,以便有权访问您的Git存储库的用户也不会自动获得对服务器其余部分的访问权限。

以Git用户身份登录服务器(如果您非常擅长管理用户和组权限,则可以自己登录)并创建存储库:


   
     
     
     
     
$ mkdir ~/sparkly.git
$ cd ~/sparkly.git
$ git init --bare .

您的Git存储库现已配置。

SparkleShare的开发人员提供了一个称为Dazzle的Git管理系统,以帮助您自托管Git存储库。

在您的服务器上,将Dazzle应用程序下载到路径中的某个位置:


   
     
     
     
     
$ curl https://raw.githubusercontent.com/hbons/Dazzle/master/dazzle.sh \
  --output ~/bin/dazzle
$ chmod +x ~/bin/dazzle

Dazzle设置了特定于Git和SparkleShare的用户,并且还基于SparkleShare应用程序生成的密钥实现了访问权限。 现在,只需设置一个项目:

 $ dazzle create sparkly 

您的服务器现在已配置为SparkleShare主机。

配置SparkleShare

首次启动SparkleShare时,系统会提示您配置希望SparkleShare用于存储的服务器。 这个过程可能看起来像一个首次运行的安装向导,但实际上是在SparkleShare中设置新共享位置的通常过程。 与许多共享驱动器应用程序不同,使用SparkleShare可以一次配置多个位置。 您配置的第一个共享位置并不比您以后设置的任何共享位置重要,并且您没有在SparkleShare或任何其他服务中注册。 您只是将SparkleShare指向Git存储库,以便它知道如何使第一个SparkleShare文件夹保持同步。

在第一个屏幕上,通过您希望在SparkleShare代表您进行的Git提交中记录的任何方式来标识自己。 您可以使用任何东西,甚至可以解决所有问题的伪造信息。 它仅用于提交消息,您可能甚至看不到是否对审查Git后端进程没有兴趣。

下一个屏幕提示您选择主机类型。 如果您使用的是GitLab,GitHub,Planio或Bitbucket,则选择适当的一个。 对于其他任何内容,请选择“ 自己的服务器”

git文件共享_与Git共享文件_第4张图片

在此屏幕底部,您必须输入SSH克隆URL。 如果您是自托管主机,则地址类似于ssh://[email protected] ,远程路径是为此目的而创建的Git存储库的绝对路径。

根据上面的自我托管示例,我虚构服务器的地址为ssh://[email protected]:22122:22122表示非标准SSH端口),远程路径为/home/git/sparkly.git

如果我改用Notabug.org帐户,则上例中的地址为[email protected] ,路径为seth / sparkly.git

SparkleShare首次尝试连接到主机时将失败,因为您尚未将SparkleShare客户端ID(特定于SparkleShare应用程序的SSH密钥)复制到Git主机。 这是预期的,所以不要取消该过程。 使SparkleShare设置窗口保持打开状态,并从系统任务栏中的SparkleShare图标获取客户端ID。 然后将客户端ID复制到剪贴板,以便可以将其添加到Git主机。

git文件共享_与Git共享文件_第5张图片

将您的客户ID添加到托管的Git帐户

除了较小的UI差异外,在任何托管服务上添加SSH密钥(所有客户端ID都是这样)的过程基本相同。 在您的Git主机的Web仪表板中,导航到您的用户设置并找到SSH密钥类别。 单击“ 添加新密钥”按钮(或类似按钮),然后粘贴SparkleShare客户端ID的内容。

git文件共享_与Git共享文件_第6张图片

保存密钥。 如果您希望其他人(例如合作者或家庭成员)能够访问同一存储库,则他们必须向您提供其SparkleShare客户ID,以便您可以将其添加到您的帐户中。

将您的客户ID添加到自托管的Git帐户

SparkleShare客户端ID只是一个SSH密钥,因此将其复制并粘贴到Git用户的〜/ .ssh / authorized_keys文件中。

使用Dazzle添加您的客户ID

如果使用Dazzle管理SparkleShare项目,请使用以下命令添加客户端ID:

 $ dazzle link 

当Dazzle提示您输入ID时,请粘贴在SparkleShare菜单中找到的客户端ID。

使用SparkleShare

将客户端ID添加到Git主机后,单击SparkleShare窗口中的Retry按钮以完成设置。 克隆存储库完成后,您可以关闭SparkleShare设置窗口,并在主目录中找到一个新的SparkleShare文件夹。 如果您设置了带有托管服务的Git存储库,并选择包括自述文件或许可证文件,则可以在SparkleShare目录中看到它们。

git文件共享_与Git共享文件_第7张图片

否则,存在一些隐藏目录,您可以通过在文件管理器中显示隐藏目录来查看这些目录。

git文件共享_与Git共享文件_第8张图片

您使用SparkleShare的方式与使用计算机上任何目录的方式相同:将文件放入其中。 只要将文件或目录放置到SparkleShare文件夹中,就会在后台将其复制到您的Git存储库。

排除某些文件

由于Git旨在记住所有内容 ,因此您可能希望从记录中排除特定的文件类型。 有一些原因可以管理排除的文件。 通过定义超出SparkleShare限制的文件,可以避免意外复制大文件。 您还可以为自己设计一种方案,该方案使您可以将逻辑上属于同一文件(例如,带有.flac导出的MIDI文件)存储在一个目录中,但是可以自己手动备份大文件,同时让SparkleShare备份文本,基于文件。

如果在系统的文件管理器中看不到隐藏的文件,请显示它们。 导航到您的SparkleShare文件夹,然后到代表您的存储库的目录,找到一个名为.gitignore的文件,然后在文本编辑器中将其打开。 您可以在.gitignore中输入文件扩展名或文件名(每行一个),任何与您列出的文件匹配的文件都将被忽略(如文件名所示)。


   
     
     
     
     
Thumbs.db
$RECYCLE.BIN/
.DS_Store
._*
.fseventsd
.Spotlight-V100
.Trashes
.directory
.Trash-*
*.wav
*.ogg
*.flac
*.mp3
*.m4a
*.opus
*.jpg
*.png
*.mp4
*.mov
*.mkv
*.avi
*.pdf
*.djvu
*.epub
*.od{s,t}
*.cbz

您知道最经常遇到的文件类型,因此请集中精力处理最有可能潜入SparkleShare目录的文件。 如果您想稍微矫over过正,可以在Notabug.org以及整个Internet上找到大量的.gitignore文件。

使用.gitignore文件中的那些条目,您可以将不需要发送到Git主机的大文件放在SparkleShare目录中,SparkleShare将完全忽略它们。 当然,这意味着您需要确保它们可以备份或通过其他方式分发给您的SparkleShare合作者。

自动化

自动化是我们与计算机达成的无声协议的一部分:计算机执行重复的,无聊的工作,而我们人类要么不擅长做,要么不擅长记忆。 SparkleShare是一种很好的,简单的方式来自动执行例行数据分发。 无论如何,这并不适合每个Git存储库。 它没有用于高级Git功能的接口。 它没有暂停按钮或手动覆盖。 没关系,因为它的范围是有意限制的。 SparkleShare可以完成SparkleShare计划要做的事情,它做得很好,而且它是您无需考虑的一个Git存储库。

如果您使用这种稳定的,看不见的自动化,请尝试一下SparkleShare。

翻译自: https://opensource.com/article/19/4/file-sharing-git

git文件共享

你可能感兴趣的:(python,linux,java,git,数据库)