Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使Git存储库备份保持最新_Git - Fatal编程技术网

使Git存储库备份保持最新

使Git存储库备份保持最新,git,Git,正如标题所说,我有一个git存储库,它是另一个存储库的备份。它是使用git clone创建的。 为了使它在不断修改中保持最新,我有一个脚本,在备份上运行git pull以获得新的修改。除了使存储库保持最新状态外,这还为我提供了自上次更新以来所做修改的列表,我需要保留这些信息 在我的备份机上重新安装后,运行git pull时出现了一个新问题。这个问题已经在其他问题中进行了描述,如。 这让我意识到我的实际解决方案并不完整:无论何时创建远程分支,我都没有得到它们 因此,我的问题是:使用所有分支的所有远

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

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

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


脚本正在备份计算机上运行,这就是为什么如果您只想获得应该使用的更改,我会执行拉操作而不是推操作

您还可以使用
--all
标志从所有远程设备获取分支和标记。依照


git-fetch--all

因此,完成这项工作的update命令是git-remote-update。这只是问题的一部分,下面是完整的解决方案:

  • 使用git clone--mirror创建git存储库备份
  • git rev parse HEAD获取当前HEAD提交id
  • git远程更新更新备份
  • git rev再次解析HEAD以获取新的HEAD提交id
  • git diff--name status oldheaid newNeadId获取更新中更改的文件列表

  • 很高兴知道这一点,但仍然有一些奇怪的地方:每当我在备份存储库上进行git日志时,它都不会显示新的提交。看起来他们没有被带走。。。哦,fetch命令没有给出任何错误。我对命令的实际执行感到困惑。
    git log
    检查当前签出的分支。您应该使用
    git log--reflog
    检查所有分支。您还可以尝试使用
    git log--oneline--all--graph--decoration
    来更好地表示您的treeSorry,如果您看到来自死的未命名分支的提交,请使用
    --all
    not
    --reflog
    。git fetch--all命令dit不会执行整个解决方案运行所需的操作:它不会更改头。我正在寻找的命令是git remote updategit fetch——all命令并没有实现整个解决方案运行所需的功能:它不会改变头部。