Sharing Git Branches on Different Workstations: Difference between revisions

From Littledamien Wiki
Jump to navigation Jump to search
Line 41: Line 41:
** `mount -t smbfs //user:password@server/share_name path/to/mount`
** `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 `mount` if the directory does not exist.
** The mount point must be an existing directory. It's necessary to create the directory before executing `mount` if the directory does not exist.
** See [[Using Mount Command With Mac OS]] for information about troubleshooting the `mount` command.
** Working with the convention of creating mount points in the `~/remote/` directory.  
** Working with the convention of creating mount points in the `~/remote/` directory.  
* `cd` to git repo directory
* `cd` to git repo directory

Revision as of 12:58, 12 March 2016

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

  • ssh to 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.
    • 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 mount if the directory does not exist.
    • See Using Mount Command With Mac OS for information about troubleshooting the mount command.
    • Working with the convention of creating mount points in the ~/remote/ directory.
  • cd to 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
  • 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.
  • cd to 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