重新创建 git 个推送

Recreating git pushes

我有一个奇怪的任务,我不知道该怎么做...

我需要查看一个 public 存储库,每天一次获取该存储库上发生的所有推送,并通过一个帐户将它们重新推送到另一个存储库。有点像一面镜子,但更像是重新提交所有推送

假设您已经克隆了存储库,将另一个远程添加到您要推送的位置,例如

git remote add mirror git@github.com:foo/bar.git

然后从 origin(上游)拉取并推送到另一个存储库,例如

git pull origin master
git push mirror master

确保您有适当的访问权限来推送到两个存储库。

要检查您当前配置的遥控器,运行:git remote -v

要每天执行一次此任务,请创建一个脚本并将其执行添加到 crontab,或者如果您使用的是 Linux,则将脚本复制到 /etc/cron.daily 文件夹(如果您的系统支持它)。

您需要使用 reset 和 rebase 来执行此操作。

假设你有 repo.url

git clone repo.url
git remote add neworigin newrepo.url

现在在本地副本上创建分支

git checkout -b myworkbranch

1) 单个账户首次提交

此时master和myworkbranch是同步的

现在查看在 repo.url 上完成的所有更改的日志并查看第一个提交,使用 git reset --soft

然后像正常推送一样添加所有文件

git add --all
git commit -m "My combined push"
git push neworigin myworkbranch:master

这将在第一次提交时推送所有更改,注意提交 ID

2) 持续拉取和更改推送

git checkout master
git pull
git checkout myworkbranch
git rebase master
git log 

现在您再次准备好重置

git reset --soft 提交你之前记下的id

git add --all
git commit -m "My second combined commit"
git push neworigin myworkbranch:master

继续重复

未测试,但应该可以。