保持Git存储库备份是最新的

时间:2017-08-23 01:18:57

标签: git

正如标题所说,我有一个git存储库,它是另一个存储库的备份。它是使用git clone创建的。 为了使其与最新的修改保持同步,我有一个脚本在备份上运行git pull以获得新的修改。除了使存储库保持最新外,这还为我提供了自上次更新以来已完成的修改列表,我需要保留此信息。

在我的备份计算机上重新安装后,运行git pull时出现了一个新问题。该问题已在其他问题中进行了描述,例如this one。 这让我意识到我的实际解决方案并不完整:每当创建远程分支时,我都无法获得它们。

所以我的问题是:使用来自所有分支的所有远程修改更新备份存储库的正确命令是什么,并获取更改列表?

脚本在备份计算机上运行,​​这就是为什么我在拉动而不是推动

2 个答案:

答案 0 :(得分:1)

如果您只想获得更改,则应使用fetch

您还可以使用--all标志来获取所有遥控器的分支和标签。根据{{​​3}}

git fetch --all

答案 1 :(得分:0)

所以,事实证明,完成工作的更新命令是 git remote update 。这只是问题的一部分,所以这里有完整的解决方案:

  1. 使用 git clone --mirror
  2. 创建git存储库备份
  3. git rev-parse HEAD 以获取当前的HEAD提交ID
  4. git远程更新以更新备份
  5. 再次
  6. git rev-parse HEAD 获取新的HEAD提交ID
  7. git diff --name-status oldHeadId newNeadId 以获取更新中更改的文件列表