Home > database >  How to push same branch to same branch if we have multiple branches
How to push same branch to same branch if we have multiple branches

Time:11-09

I have a parent repository having branches master stage & develop along with child repository say as submodule which has same branches master stage & develop, I made commits in stage branch in child repository(submodule) and try to push the changes to stage branch in parent repository but still the changes are not reflecting in the GitHub.

note:- Its working for parent repo's master to child repo's master . **script used for master **

#!/bin/bash
git init
git clone --recurse-submodules https://github.com/username/file.git
cd file
git submodule update --remote
git commit -a -m "commit in both submodule"
git push -u origin 

above script work for for parent repo's master to child repo's master like wise I want for parent repo's stage to child repo's stage as well.

**I even tried using multiple commands :- git push -u origin stage git config push.default current git config push.default upstream

none of them were working **

CodePudding user response:

Well I prepared a script that works fine for branch to branch commits/push

################ STAGE
#########################################

#!/bin/bash

#git init
git init

#git clone repo stage including submodules

git clone -b stage --recurse-submodules [email protected]:orgs/file.git

#change directory -repo
cd file

#update the remote ie tag/commits
git submodule update --remote

#add commit 
git commit -a -m "commit in stage submodules"

#git push 
git push -u origin stage

CodePudding user response:

git init git clone means you are cloning a nested Git repository (and its potntial submodules) inside a new local Git repository.

I would not recommend that approach.

Simply:

  • clone your repository directly at the right branch as you do:

    git clone -b stage --recurse-submodules [email protected]:orgs/file.git
    cd file
    git submodule update --remote
    
  • Then go inside the submodule you need from the parent repository file

    cd aSubmodule (check your `file/.gitmodules` file for the list of submodules you currently have)
    git switch stage
    # work, add, commit push
    
  • Then go back to your main parent repository named 'file', and record the new submodule state

    cd ..
    # add, commit and push
    
  • Related