Sharing Git Branches on Different Workstations
Goal
Work on code changes on multiple workstations without pushing changes to central GitHub repo.
Workflow
Clone the repo to the the local network server that will serve as a localized hub.
This Git repo must be "bare" in order to accept pushes.[1]
$ cd //myserver/develop/path/to/repo_parent_dir/ # (windows) $ # or $ cd ~/remote/myserver_share/path/to/repo_parent_dir/ # (mac) $ git clone --bare -l https://github.com/username/myrepo.git myrepo
Windows
Now on a separate windows workstation create a remote for that local hub:
> git remote add remotehubname x:\path\to\myrepo > git push remotehubname master
Mac
Mount the shared directory where the hub repo is located.
# optionally create a remote for the local hub $ git push /Volumnes/sharename/path/to/myrepo master
Migrating changes from a Mac workstation to a Windows workstation
sshto the mac:ssh user@mac-name.local- (optional) Mount the shared network directory hosting the local git hub repo, if it is not already mounted.
sudo mount -t smbfs //user:password@server/share_name path/to/mount- The mount point must be an existing directory. It's necessary to create the directory before executing
mountif the directory does not exist. - Working with the convention of creating mount points in the
~/remote/directory.
cdto git repo directory- (optional) Create a remote for the local git hub if one does not already exist.
- Check the existing remotes with
git remote -v - Create remote with
git remote add remote_alias path/to/remote/repo
- Check the existing remotes with
- Add any modified files to a branch that is not
master. - Commit the branch.
- Push the branch to the hub repo on the local network:
git push remote_alias branch_name - Now on the Windows workstation it's possible to pull the changes in the working branch.
cdto the local git repo on the Windows workstation.- Sync up the master branch:
git pull origin master - (optional) View the branches on the local network hub:
git remote show remote_alias - Create the working branch on the Windows workstation if it doesn't already exist.
- Sync up the working branch:
git pull remote_alias branch_name
Notes
- ↑ Git bare vs non-bare repositories BitFlop Tutorials