如何得到推动的refflog



是否有办法将refflog推到遥控器?这似乎是一件非常有用的事情,但我不知道怎么做。我想象的是git push --include-reflogs

最后,我希望遥控器在推送时能有一个不差字的refflogs副本。

我尝试使用--mirror,但是1)我不想从这个特定的远程删除任何分支,除非手动,2)它仍然没有将refflogs复制到远程。

有谁知道这是怎么做到的吗?

您真正要问的是,是否有一种方法可以绕过匿名(即未引用)提交对象及其树和blob来进行备份。答案是否定的。匿名对象——只被你的reflog引用的对象——对本地的repo是私有的。

但是——你可以复制任何repo的.git目录来做你想做的。如果源repo很忙(例如正在进行提交,或者正在进行垃圾收集或重新打包),那么您需要按照一定的顺序复制.git目录中的文件和目录。这在很多地方都有解释,但一个例子是http://article.gmane.org/gmane.comp.version-control.git/147354(如果你想让你的rsync备份很好,你需要遵循一些订购…")

您可以备份.git/logs,它将备份提交的引用(但不包括提交或文件本身)。

实际上,git将reflog信息存储在.git/log目录下,你可以对它们做任何事情,比如用文本编辑器打开该目录下的文件。如果您删除这个目录,所有的reflog将消失,如果您恢复它,reflog将回来。

据我所知,没有内置的方法来跟踪.git/logs。我试图将.git/log移动到工作目录,并从.git目录进行符号链接。它可以工作,但不是很好,因为每次你做一个提交,HEAD移动和.git/logs/HEAD更改,然后你现在有一个未提交的更改。工作目录永远不会被清理。

Git reflog跟踪单个Git存储库的HEAD更改。每个克隆体都有自己的refg。我不知道你会用一个共享的reflog做什么(远程帮助别人?)

如果你真的需要跟踪某人的reflog,你可以使用git reflog > dev1_reflog.txt转储reflog内容在一个文件中,并共享dev1_reflog.txt(使用git add dev1_reflog.txt; git commit -m "Adding dev1_reflog"; git push)。

相关内容

  • 没有找到相关文章

最新更新