# g4c - Git for Cloud
A basic pure js git CLI implementation based on isomorphic-git.
Commands supported
- g4c clone URL
- g4c clone URL DIRECTORY
- g4c clone
- g4c checkout --force HEAD
- g4c pull
- g4c pull --ff-only
- g4c status
- g4c add --all
- g4c commit -m "My commit message"
- g4c push
TODO:
- git
- g4c add FILE(s)
- g4c add .
- git pull origin pull/123/head
Setup
npm i -D g4c
npm i -g g4c
-- Global install
Goals
- Make common git commands easy to use in JavaScript shells 🚀
- This includes commands such as
git clone
, git pull
, and git push
.
- Provide configuration options via config file, package.json and ENV variables ⚙️
- This will make it easier for developers to customize the behavior of g4c to match their specific needs.
- Minimize cold-boot time and overhead in browser environments ⏱️
- This is important for web IDEs. By minimizing the cold-boot time, developers can maximize cycle time and review PR's more efficiently.
- Improve the developer experience (DX) for JS devs as much as possible 👩💻
- Following in the foot steps of vite and git to improve workflows.
Configuration Precedence
- First, the long form package.json -> repository field is read
- Then, package.json -> author field is read for email and name
- Then, package.json -> g4c
- Finally, SECRETS.g4c.json can veto all others
- Unless, yoy provided an argument in the command line
All of these are optional:
// SECRETS.g4c.json
{
"proxy": "https://cors.isomorphic-git.org",
"useProxyOnBareMetal": false,
"username": "inu",
"password": "neko",
"authorName": "John Doe",
"authorEmail": "john@example.com",
"repoUrl": "https://github-sucks.com/user/project.git"
}