在将我的主分支提交到我的Git存储库时,我需要将该最新代码更新到多个其他存储库。
我怎么能这样做?
git commit -u origin master
例如:如果我有存储库1,2和3 如果我只将我的代码推送到存储库1中的master分支,则应该在repository2和3的master分支中自动更新代码。
答案 0 :(得分:1)
别忘了你可以push to multiple repos in one step
git remote add all git://original/repo.git
git remote set-url --add --push all git://another/repo.git
git remote set-url --add --push all git://original/repo.git
git push all master
纯粹的提交后推送解决方案将是" How to automatically push after committing in git?" 例如,来自the one的i4h:
#!/usr/bin/env bash
branch_name=`git symbolic-ref --short HEAD`
retcode=$?
non_push_suffix="_local"
# Only push if branch_name was found (my be empty if in detached head state)
if [ $retcode = 0 ] ; then
#Only push if branch_name does not end with the non-push suffix
if [[ $branch_name != *$non_push_suffix ]] ; then
echo
echo "**** Pushing current branch $branch_name to origin [i4h_mobiles post-commit hook]"
echo
git push origin $branch_name;
fi
fi
它将推送除名为xxx_local
的分支之外的任何分支(为了避免在准备好推送所述提交之前完成多个中间提交时推送这些分支)。
答案 1 :(得分:0)
正确执行步骤:
如果您想在一个存储库中推送代码:
Step1 :git add -A(这会将所有文件添加到git中)
Step2 :git commit -m“First commit”
Step3 :git remote add origin (第一个回复网址)
Step4 :git push -u origin master
如果要将代码推送到多个存储库
按照以上两个步骤
然后
第3步:git remote add alt (第二个远程网址)
第4步:git push alt master
答案 2 :(得分:0)
您可以使用git hook来执行此操作。
首先,找到你的钩子文件夹:
git config --list
#...
#core.hookspath=~/shared-git-hooks
或使用以下命令设置它:
git config core.hookspath ~/shared-git-hooks
创建包含脚本的钩子文件
touch ~/shared-git-hooks/post-commit
#post-commit file
git push ...
设置后,一旦提交,将在提交后运行脚本。
您可以在此处查看git hook的更多详细信息: https://git-scm.com/book/gr/v2/Customizing-Git-Git-Hooks
希望它可以提供帮助。
脚本可能如下所示:
#This script will push master to all existing remote
#git remote add repo2 https://github.com/repo2.git
#git remote add repo3 https://github.com/repo3.git
for remote in $(git remote); do git push $remote master; done;
另请注意,如果您想在推送时触发它,则需要使用pre-push
挂钩代替post-commit
还有一件事,如果您只想在特定项目/存储库上执行此操作,则可能需要先检查项目位置。
if [ "$(pwd)" == "/your/project/path" ]; then
for remote in $(git remote); do git push $remote master; done;
fi