{"id":17924680,"url":"https://github.com/sma1lboy/cgit","last_synced_at":"2025-08-25T12:04:25.933Z","repository":{"id":217781484,"uuid":"744750749","full_name":"Sma1lboy/cgit","owner":"Sma1lboy","description":null,"archived":false,"fork":false,"pushed_at":"2024-02-19T03:09:08.000Z","size":79,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-28T20:50:10.923Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Sma1lboy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-01-17T23:42:22.000Z","updated_at":"2024-10-05T01:45:08.000Z","dependencies_parsed_at":"2024-02-01T03:45:03.017Z","dependency_job_id":"da2070e2-34d5-45fa-94a7-342438a77beb","html_url":"https://github.com/Sma1lboy/cgit","commit_stats":null,"previous_names":["sma1lboy/cgitlet","sma1lboy/cgit"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sma1lboy%2Fcgit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sma1lboy%2Fcgit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sma1lboy%2Fcgit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sma1lboy%2Fcgit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sma1lboy","download_url":"https://codeload.github.com/Sma1lboy/cgit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229915635,"owners_count":18144014,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-28T20:50:10.208Z","updated_at":"2024-12-16T05:41:10.864Z","avatar_url":"https://github.com/Sma1lboy.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CGit: A Java-Based Version Control System\n\n## Introduction\n\nCgitlet is a lightweight, Java-based version control system inspired by Git. It offers essential functionalities for tracking and managing changes in your codebase, making it suitable for personal projects and learning purposes. \n\n## Features\n\ncgitlet supports a variety of commands that are similar to Git, including but not limited to:\n\n- `test`: Runs tests for the tool.\n- `add \u003cfilename\u003e`: Adds a file to the staging area.\n- `commit \u003cmessage\u003e`: Commits the staged changes with a given message.\n- `rm \u003cfilename\u003e`: Removes a file from the current tracking and staging area.\n- `log`: Displays the commit history for the current branch.\n- `global-log`: Shows the commit history across all branches.\n- `find \u003cmessage\u003e`: Finds and displays commits with a specific message.\n- `status`: Displays the status of the working directory and staging area.\n- `checkout \u003ccommit/branch\u003e`: Checks out a specific commit or branch.\n- `branch \u003cbranchname\u003e`: Creates a new branch.\n- `rm-branch \u003cbranchname\u003e`: Deletes a specified branch.\n- `reset \u003ccommit\u003e`: Resets the current branch's head to the specified commit.\n- `merge \u003cbranch\u003e`: Merges a specified branch into the current branch.\n\nAdvanced features such as handling remote repositories (`add-remote`, `rm-remote`, `push`, `fetch`, `pull`) are also available.\n\n## Prerequisite \n\n- CURL\n\n  - Linux\n\n      ```bash\n      sudo apt install curl\n      ```\n\n  - Mac\n  \n    ```bash\n    brew install curl\n    ```\n  \n    \n\n## Installation\n\n\n### Building from Source\n\nTo build cgitlet from the source code, you need a Java Development Kit (JDK) installed on your system. Follow these steps:\n\n1. Clone the repository: `git clone [URL to cgitlet repository]`.\n2. Navigate to the project directory: `cd cgitlet`.\n3. Compile the project: `javac [path to java files]`.\n\n### Running the Pre-built Jar\n\nIf you prefer using the pre-built jar, `cgitlet.jar` can be downloaded and run directly. Ensure you have Java Runtime Environment (JRE) installed, then execute:\n\n```shell\njava -jar cgitlet.jar [command]\n```\n\n### Setting Up Alias for Easy Usage\n\nFor convenience, you can set up an alias in your command-line interface. For example, in a Unix-like environment, add this line to your `.bashrc` or `.bash_profile`:\n\n```\nshellCopy code\nalias cgit='java -jar /path/to/cgitlet.jar'\n```\n\nReplace `/path/to/cgitlet.jar` with the actual path to the `cgitlet.jar` file. After setting up the alias, you can use `cgit` followed by the commands listed above.\n\n## Contributing\n\nWe welcome contributions to cgitlet! Please read our contributing guidelines [MIT](https://opensource.org/license/mit/) for details on how to submit changes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsma1lboy%2Fcgit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsma1lboy%2Fcgit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsma1lboy%2Fcgit/lists"}