Skip to main content

Fork, clone, add remote and branch a GitHub repo

Project description

Fork a GitHub repo, clone that repo to a local directory, add the upstream remote, create an optional feature branch and checkout that branch

Usage

usage: fork-github-repo [-h] [-c CONFIG] url [branch]

Fork a GitHub repo, clone that repo to a local directory, add the upstream
remote, create an optional feature branch and checkout that branch

positional arguments:
  url                   GitHub URL of the upstream repo to fork
  branch                Name of the feature branch to create

optional arguments:
  -h, --help            show this help message and exit
  -c CONFIG, --config CONFIG
                        Filename of the yaml config file (default :
                        ~/.github/fork_github_repo.yaml)

The config file with a default location of
~/.github/fork_github_repo.yaml contains the following settings:

-  github_token : The `GitHub personal access token with the public_repo scope
   allowed.
   https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/
-  repo_dir : The directory path to the directory containing all your cloned
    repos. If this isn't defined, /tmp is used.

The file is YAML formatted and the contents look like this :

github_token: 0123456789abcdef0123456789abcdef01234567
repo_dir: ~/Documents/github.com/example/

Config

The config file with a default location of ~/.github/fork_github_repo.yaml contains the following settings.

  • github_token : The GitHub personal access token with the public_repo scope allowed

  • repo_dir : The directory path to the directory containing all your cloned repos. If this isn’t defined, /tmp is used.

Examples

Fork Spoon-Knife

$ fork-github-repo https://github.com/octocat/Spoon-Knife
Forked https://github.com/octocat/Spoon-Knife to git@github.com:gene1wood/Spoon-Knife.git
Cloned git@github.com:gene1wood/Spoon-Knife.git to /path/to/gene1wood/Spoon-Knife
Remote "upstream" created for https://github.com/octocat/Spoon-Knife
Remote "upstream" fetched

Fork Spoon-Knife and create a feature branch called ‘my-feature’

$ fork-github-repo https://github.com/octocat/Spoon-Knife my-feature
Forked https://github.com/octocat/Spoon-Knife to git@github.com:gene1wood/Spoon-Knife.git
Cloned git@github.com:gene1wood/Spoon-Knife.git to /path/to/gene1wood/Spoon-Knife
Remote "upstream" created for https://github.com/octocat/Spoon-Knife
Remote "upstream" fetched
Branch "my-feature" created
Branch "my-feature" pushed to origin
Tracking branch "origin/my-feature" setup for branch "my-feature"
Branch "my-feature" checked out

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fork-github-repo-1.2.0.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

fork_github_repo-1.2.0-py2-none-any.whl (5.0 kB view details)

Uploaded Python 2

File details

Details for the file fork-github-repo-1.2.0.tar.gz.

File metadata

  • Download URL: fork-github-repo-1.2.0.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15rc1

File hashes

Hashes for fork-github-repo-1.2.0.tar.gz
Algorithm Hash digest
SHA256 8e905730f5d963df2ddce666127d47e74a7f2de9cb8c115b2e908693f2e45c17
MD5 2480fc1a13b60f7cc3536bb29b1ff82c
BLAKE2b-256 2ce2114d9f0d6c4eed2b270c759b056dc85f0ac5a1b25c45d380ba1e9742cf26

See more details on using hashes here.

File details

Details for the file fork_github_repo-1.2.0-py2-none-any.whl.

File metadata

  • Download URL: fork_github_repo-1.2.0-py2-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15rc1

File hashes

Hashes for fork_github_repo-1.2.0-py2-none-any.whl
Algorithm Hash digest
SHA256 e0dad9a424fbfb18b831f280acf46cdf0e5313165f920f97bea41c00b668a98f
MD5 3893925b6e3c8b72363dd5881fabe07d
BLAKE2b-256 371514b8b5c3f2fcb015ffe1ceaf20df96e6844e662ddde210fb6bdf172edc67

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page