https://github.com/sachindwi17/xgit
This is the git clone.
https://github.com/sachindwi17/xgit
cmake cpp git github shell-script
Last synced: 2 months ago
JSON representation
This is the git clone.
- Host: GitHub
- URL: https://github.com/sachindwi17/xgit
- Owner: sachindwi17
- License: mit
- Created: 2022-10-01T03:36:19.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-10-01T03:37:56.000Z (over 3 years ago)
- Last Synced: 2025-01-05T16:28:59.081Z (over 1 year ago)
- Topics: cmake, cpp, git, github, shell-script
- Language: C++
- Homepage:
- Size: 69.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

> A Simple git client, provides flexibility to committers.
Technologies: C++, Shell Script, CMake
## What is the need of XGit
- The Git only have CLI, command directive mode.
- The Git is not easy to use for beginners.
- The Git is not easy to use for non-technical people, becouse it use technical terms.
- The XGit solve all the above problem with the terminal interactive interface.
- Backward compatible, with most of Os.
- Redefined the complex technical terms with simple one.
## Essential components requirements and tools
- C++: The XGit is written in C++.
- Shell Script: The XGit is using shell script for some of the tasks not possible with C++. [BOOK](https://www.amazon.com/Learn-Shell-Script-Suryapratap-Suryavanshi-ebook/dp/B09V2ZG7FK/ref=sr_1_1?crid=1V906P2U0GURO&keywords=learn+shell+script&qid=1664270508&qu=eyJxc2MiOiIyLjA2IiwicXNhIjoiMC4wMCIsInFzcCI6IjAuMDAifQ%3D%3D&sprefix=learn+shell+scri%2Caps%2C753&sr=8-1)
- CMake: The XGit is using CMake for building the project. [LINK](https://github.com/Kitware/CMake/releases/download/v3.24.2/cmake-3.24.2-windows-x86_64.msi)
- Git: The XGit is use base layer Git for version controling. [LINK](https://git-scm.com/downloads)
- GCC MinGW-64: The XGit is using GCC MinGW-64 for compiling the C++ code. [LINK](https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/installer/mingw-w64-install.exe)
## References
1. Video: [What is git(English)](https://www.youtube.com/watch?v=2sjqTHE0zok&t=716s)
2. Video: [What is git(Hindi)](https://www.youtube.com/watch?v=QhqVRuRBA9w)
3. Video: [What is git and GitHub](https://www.youtube.com/watch?v=ZoOdwgxmw4U)
4. Article: [What are git and GitHub](http://ryanheathcote.com/git/build-your-own-vcs)
5. GitHub: [GitHub Repository](https://github.com/anurag97/Mygit)
## Compile & Run
How to manage files and directories.
```sh
.
├── LICENSE # License file.
├── README.md # Documentation file.
├── assets # Contain all assests files.
│ └── ___.__
├── main.cpp # Main source code file.
├── CMakeLists.txt # Contain all cmake related code.
├── src
│ ├── headers # Contain all headers related to the codebase.
│ │ └── ______.h
│ └── lib # Contains all libs related to the codebase.
│ └── ______.lib
└── build # Output folder contain all binary files for final software.
```
### Download Release:
- [Windows](./release/xgit.exe)
- [Linux](./release/xgit)
- [MacOs](./release/xgit)
### Compilation and Installation [CROSS PLATFORM]:
```sh
# Run this script to compile and install the software in any platform.
./setup.sh
```
### For compile with CMake:
```sh
cmake -G "MinGW Makefiles" -S . -B ./build
```
For build with CMake:
```sh
cmake --build .\build\
```
For run:
```sh
.\build\xgit
```
### For compile with bash:
```sh
./setup.sh
```
### How to Install the XGit to your system:
- For Windows:
```sh
mv ./build/xgit.exe c:/windows/system32
```
- For Linux:
```sh
sudo mv ./build/xgit /usr/bin
```
## Code Style
| Code Implementation | Code Style |
| -- | -- |
| Class & Packages | PascalCase |
| Namespace | lower_snake_case |
| Constant | CONSTANT_CASE |
| Function | camelCase |
For more: [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html), [Google Shell Script Style Guide](https://google.github.io/styleguide/shellguide.html)
## Comments
Comments should be self, described and for every piece of code that can do a task for a specific reason, there must be a elevrative comments. Comments documenting declarations should be full sentences, even if that seems a little redundant. This approach makes them format well when extracted into good documentation. Comments should begin with the name of the thing being described and end in a period.