代码之家  ›  专栏  ›  技术社区  ›  George Mauer

如何使用git进行文件同步?

  •  6
  • George Mauer  · 技术社区  · 15 年前

    我需要分布式文件同步。那么首先,有什么建议吗?我的想法是git,因为速度是个问题。

    我的git知识还很初级,所以我做了些什么。

    我下载了便携式git(我在pc上,所以是msysgit)。 我将一个副本放在c:\ root\git中,并将一个副本放在c:\ root\git c:\ client\git中\

    我创建了一个目录c:\temp\root\content并在其中创建了一些文件

    c:\root\content>..\git\bin\git.exe init
    c:\root\content>..\git\bin\git.exe add *
    c:\root\content>..\git\bin\git.exe commit -f
    c:\client>..\git\bin\git.exe clone file:///c:\root\content
    

    这将创建一个内容目录,但它是空的!提交到根目录的文件不存在。

    当我执行pull命令时

    C:\temp\client\content\content>c:\temp\client\git\bin\git.exe pull
    fatal: The remote end hung up unexpectedly
    fatal: The remote end hung up unexpectedly
    Your configuration specifies to merge the ref 'master' from the remote, but no such ref was fetched
    

    很明显我遗漏了一个概念。发生什么事?

    5 回复  |  直到 15 年前
        1
  •  5
  •   lee    13 年前

    签入 http://sparkleshare.org/

    SparkleShare提供了与Dropbox类似的用户体验,只是它的底层同步引擎是Git。这不是最稳定的事情,但是您可以查看它的日志输出,看看它将实现哪些git命令的无缝同步。一旦你学会了这些,你可以简单地制作自己的同步脚本,是稳定的。我认为SparkleShare的大部分问题都在图形用户界面中。

        2
  •  4
  •   gliptak garnaat    11 年前

    git-annex 可能是另一个需要考虑的工具。

        3
  •  1
  •   Wayne Conrad    15 年前

    吉特 可以 在开发和生产之间同步源代码是一个很好的工具,原因之一是:它很容易在生产中“热修复”并将修复签回到树中。当然,您应该总是在开发或测试环境中复制错误并在那里修复它,但有时您不能。

    而不是 git add * 使用 git add .

    使用 git status 在提交之前,请确保准备好要提交的适当文件。

        4
  •  1
  •   hillu    15 年前

    我只是想模仿你的舞步。

    git commit -f 我刚安装的1.6.5.1版本没有做任何事情。但它会给你一个很长的错误信息。

    mkdir repo1 repo2
    cd repo1
    git init
    ( create files )
    git add *
    git commit -m "initial commit"
    cd ..\repo2
    git clone ..\repo1 .
    

    以及我在其中创建的文件 repo1 出现在 repo2

        5
  •  1
  •   Eric Drechsel    11 年前

    正如davr在评论中所建议的,您可以尝试 Unison . 通过 having all your hosts sync with a central hub ,可以进行N向同步。Unison不保留历史,所以如果你想 rdiff-backup 每天在一台主机上运行(最好是有最大、最可靠的硬盘的主机)。两种工具都有windows二进制文件。

    我也考虑过使用git进行文件同步,但是手动添加、提交、拉取和合并是太多的工作(工具只有在使用时才有用)。在我的头脑中,我设计了一个小的python或ruby系统托盘进程来监视repo的变化,当它变脏时对您唠叨,在一段时间没有变化后有自动提交的选项,还可以执行自动推/拉。可以使用现有工具解决合并冲突。

    有关详细信息,请查看 this article 我刚刚写了个人文件同步。