如何查找未由git跟踪的文件,然后重新同步这些文件?

时间:2019-01-04 03:20:15

标签: git

我的系统是centos7。

我使用git ls-files来获取git跟踪的文件。
并使用git lfs ls-files获取git-lfs跟踪的文件。

但是在我的开发目录中,有一些文件夹和文件不应被版本控制软件(例如userdataupload/avatar)跟踪。
假设stackoverflow是我的网站。像你和我这样的用户将上传头像。这些文件经常更改,并且不应该被git跟踪。

当我将这些文件部署到生产服务器时,这些文件是必需的,然后我想到了:
Git具有git clean -f -d之类的功能,但我不想删除,仅列出那些文件。
 rsync -aH not_tracked_files root@production server:/home/mywebsite

我不知道如何在rsync脚本中获取not_tracked_files

1 个答案:

答案 0 :(得分:0)

  

如何查找git无法跟踪的文件

它们需要存储在另一个引用(不是您的Git存储库)中,并在部署过程中获取(涉及rsync)

它可以是私有Nexus服务器,可以是私有共享文件夹,远程驱动器(onedrive / Google驱动器,AWS ...),甚至是保管库,但它不应是您当前的Git存储库。 / p>

面临的挑战是非“无法由Git跟踪”文件的版本:如果它们不经常更改,则可以将它们静态地存储一次,并在部署时进行检索。
如果它们定期更改,则需要在Git存储库中跟踪对这些文件的正确版本的引用(有点像lfs对于大型文件,它们也存储在其他位置)


  

假设stackoverflow是我的网站。像你和我这样的用户将上传头像。这些文件经常更改,并且不应该被git跟踪。

这些工件类型很特殊,因为您通常只需要它们的最新版本。
可以在独立的引用中对其进行管理。例如,GitHub通过其自己的(历史)服务gravatar.com管理其头像。

这意味着您要部署的内容应该是:

  • 对头像的引用
  • 一个程序,该程序能够在部署后从其参考中获取化身,并在需要时在生产服务器上复制/更新它们。