Working with Git Remotely

  • Clone a remote repo:

        $ git clone <url>
  • Clone a specific branch of a remote repo:

        $ git clone -b <remorebranch> <url> <localbranch>
  • To add a new remote Git repository to local repo:

        $ git remote add <url-alias> <url>
  • Set upstream with local and remote branch:

        $ git branch --set-upstream-to <url-alias>/<remotebranch> <localbranch>
  • Fetch and merge changes from remote branch to local branch:

        $ git pull <url-alias> <remotebranch>
  • Push changes to remote branch:

        $ git push <url-alias> <remotebranch>
  • Push changes to remote branch. -u would create the remote branch:

        $ git push -u <url-alias> <remotebranch>
  • Push local tags to remote:

    • To push all the tags to remote:
           $ git push --tags
    • To push a particular tag to remote:
        $ git push <url-alias> <tagname>

    Note: When you push your local repo to remote the local tags will not be pushed to remote by itself, you would need to do this explicitly.

  • Show remote url-alias and url:

       $ git remote -v
  • Remove remote reference with local repo:

        $ git remote rm <url-alias>
  • Delete a remote branch after merging (i.e. you missed the checkbox during the merge. Alternatively you can use the Github/Bitbucket UI to delete the remote branch.)

        $ git push origin --delete <branchname>
  • Add a Git submodule to an existing Git Project

       $ git submodule add <url> folder-to-download/
  • Remove a Git submodule from an existing Git Project

        Delete the relevant section from the .gitmodules file.
        Stage the .gitmodules changes git add .gitmodules
        Delete the relevant section from .git/config.
        Run git rm --cached path_to_submodule (no trailing slash).
        Run rm -rf .git/modules/path_to_submodule (no trailing slash).
        Commit git commit -m "Removed submodule "
        Delete the now untracked submodule files rm -rf path_to_submodule