I have a need to keep 3 branches in 3 separate folders. (I know this is not a git way of doing things. But I need to do this for a reason).
Lets say the repo name is my_proj_repo.git
I have created a folder called prodv1
in my local system:
git clone url:/my_proj_repo.git
Now I went into prodv1
folder and copied the files from a server, then:
git commit -am "initial import"
git push origin master
That pushed the files to master. Now I created two more folders like the above in my local system
stagingv1
devv1
I want to create two local and remote branches with the names:
staging // this local branch points (push/pull) to staging remote branch
dev // this local branch points ((push/pull) to dev remote branch
And these two branches should be in the corresponding folders:
staging ==> stagingv1 folder
dev ==> devv1 folder
I tried a few things and I guess I messed it up. Can someone point me commands/steps to get all this setup like I wanted?
What I did was, went into the stagingv1
folder and did a git clone <repo>
. But it defaults to master
. And I am not sure how to initialize the staging
branch here.
What you want to achieve has become simpler (or even trivial) since git 2.5 introduced the git worktree command.
Basically, your your git repo has now completely free number of checked out branches, called work tree:
.git
).git
file pointing to your repo’s git directory)If your repo already contains your branch, you can do:
git worktree add <path to branch> <branch name>
Or, if that branch isn't created yet and you want to branch off master:
git worktree add -b <new branch name> <path to branch> master
Note that you can't checkout a branch in several directories simultaneously.
I think that you might have to create all the branch in your repo
$ git branch <name_of_your_new_branch>
Then create all your folders and in each of your folder Clone the repo but Checkout the appropriate branches.
Each folder should / may track only the appropriate branch
Step 1 $ git branch [name_branch#1]
Step 2 $ git branch [name_branch#2]
Step 3 $ git branch [name_branch#3]
...
Step 4 $ git push --all
Step 5 md Folder #2
Step 6 $ git clone [URL]
Step 7 $ git checkout [name_branch]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With