我有一个奇怪的任务,我不知道该怎么做......
我需要查看一个公共回购,并且每天一次接受该回购中发生的所有推送,并通过一个帐户将其重新推送到另一个回购。有点像镜子,但更多的是重新提交所有推动
答案 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
继续重复
未经测试,但应该可以使用。