Reputation: 49
I'm trying to push only my Staging Branch to a bare repo on my staging server with the following command:
git push staging +staging:refs/heads/staging
But I get a fatal error:
you are on a branch yet to be born
If I replace staging with master on the command above it works and deploys my master branch/files to the staging server but my master branch is my production branch and I only want to deploy my staging branch/files.
Can anyone help?
Please bear in mind that I am a designer and not a developer, so a newbie styled answer would be appreciated ;o)
I thought I'd better explain my workflow... just in case it revels some answers to my issue/newbie situation:
I have no problem pushing the entire project to Bitbucket, but I'm struggling to push the files under the staging branch to my staging server.
NB: on my staging server git I'm using a post-receive hook: GIT_WORK_TREE=/path/to/site git checkout -f
I maybe trying to do this completely wrong, but I though I could deploy my code on the staging branch to my staging server?!
Upvotes: 3
Views: 10727
Reputation: 49
RESOLVED
The issues I've faced have been resolved fully by updating my git post-receive hook:
FROM GIT_WORK_TREE=/path/to/site git checkout -f
TO GIT_WORK_TREE=/path/to/site git checkout -f staging
Who would have though it would have been such a simple thing ;o)
A big thanks to @VonC for all his help - somehow you led me off down the right path.
Upvotes: 1
Reputation: 1327144
What you should do is:
That is done in one command with:
git push -u staging staging
After that initial first push, and future push can be done with a simple:
git push
See more at "Why do I need to explicitly push a new branch?".
Note that the "best practice" (or at least a better one) is to not name a remote repo reference (staging
) and a branch (staging
) with the same name, simply to make clearer in those git push
command what 'staging
' is what.
Upvotes: 3