重新创建git推

时间:2016-07-09 01:31:48

标签: git github git-push

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

我需要查看一个公共回购,并且每天一次接受该回购中发生的所有推送,并通过一个帐户将其重新推送到另一个回购。有点像镜子,但更多的是重新提交所有推动

2 个答案:

答案 0 :(得分:2)

假设您已经克隆了存储库,请将另一个遥控器添加到您要推送的位置,例如。

= IF( LEN( B2 ) > 60, "You have exceeded the 60-character limit by " 
  & ( LEN( B2 ) - 60 ) & " characters. Please shorten your input and try again.", "" )

然后从git remote add mirror git@github.com:foo/bar.git (上游)拉出并推送到另一个存储库,例如

origin

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

要检查当前配置的遥控器,请运行:git pull origin master git push mirror master

要每天执行一次此任务,请创建一个脚本并将其执行添加到git remote -v,或者如果您正在使用Linux,则将脚本复制到crontab文件夹(如果它' s由您的系统支持)。

答案 1 :(得分:2)

您需要使用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

继续重复

未经测试,但应该可以使用。