fancygit 1.0.22__tar.gz → 1.0.24__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fancygit-1.0.22 → fancygit-1.0.24}/MANIFEST.in +3 -1
- fancygit-1.0.24/PKG-INFO +96 -0
- fancygit-1.0.24/PYPI_DESCRIPTION.md +67 -0
- fancygit-1.0.22/fancygit.egg-info/PKG-INFO → fancygit-1.0.24/README.md +42 -28
- fancygit-1.0.24/VERSION +1 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/command-list.txt +5 -0
- fancygit-1.0.24/fancygit.egg-info/PKG-INFO +96 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/fancygit.egg-info/SOURCES.txt +8 -2
- fancygit-1.0.24/fancygit.egg-info/requires.txt +2 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/fancygit.egg-info/top_level.txt +1 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/fancygit.py +726 -74
- fancygit-1.0.24/game_questions.json +332 -0
- fancygit-1.0.24/quiz_server.py +41 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/setup.py +4 -16
- {fancygit-1.0.22 → fancygit-1.0.24}/src/ai_engine.py +5 -1
- {fancygit-1.0.22 → fancygit-1.0.24}/src/fancygit_config_dc.py +2 -1
- fancygit-1.0.24/src/providers/ollama_model.py +303 -0
- fancygit-1.0.24/src/quiz_html_generator.py +1903 -0
- fancygit-1.0.24/src/quiz_manager.py +305 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_fancygit_commands.py +24 -24
- {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_fancygit_workflows.py +11 -11
- fancygit-1.0.24/tests/test_ollama_model.py +458 -0
- fancygit-1.0.24/tests/test_undo_redo.py +319 -0
- fancygit-1.0.22/.fancygit_config +0 -30
- fancygit-1.0.22/PKG-INFO +0 -250
- fancygit-1.0.22/README.md +0 -222
- fancygit-1.0.22/VERSION +0 -1
- fancygit-1.0.22/fancygit.egg-info/requires.txt +0 -1
- fancygit-1.0.22/src/providers/ollama_model.py +0 -172
- {fancygit-1.0.22 → fancygit-1.0.24}/CD_GUIDE.md +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/COLOR_SYSTEM_GUIDE.md +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/EMAIL_SETUP_GUIDE.md +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/LICENSE +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/TESTING_GUIDE.md +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/TESTING_SUMMARY.md +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/fancygit.egg-info/dependency_links.txt +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/fancygit.egg-info/entry_points.txt +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/images/Logo.png +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/images/Logo_with_name.png +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/images/dark_background_logo.png +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/images/light_background_logo.png +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/images/overview.png +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/setup.cfg +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/src/__init__.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/src/colors.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/src/config_manager.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/src/git_error.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/src/git_error_parser.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/src/git_insights.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/src/git_runner.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/src/loading_animation.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/src/merge_conflict.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/src/mermaid_export.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/src/model_provider.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/src/output_colorizer.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/src/providers/__init__.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/src/providers/anthropic_model.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/src/providers/base_model.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/src/providers/openai_model.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/src/repo_inspector.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/src/repo_state.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/src/utils.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/tests/__init__.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/tests/conftest.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_ai_engine.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_ai_integration.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_config_manager.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_conflict_parser_integration.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_fancygit_advanced.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_fancygit_integration.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_git_error.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_git_error_parser.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_git_runner.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_model_provider.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_providers.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.24}/welcome.py +0 -0
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
include VERSION
|
|
2
2
|
include README.md
|
|
3
|
+
include PYPI_DESCRIPTION.md
|
|
3
4
|
include *.md
|
|
4
5
|
include command-list.txt
|
|
5
|
-
include .
|
|
6
|
+
include game_questions.json
|
|
6
7
|
include welcome.py
|
|
7
8
|
include fancygit.py
|
|
9
|
+
include quiz_server.py
|
|
8
10
|
recursive-include src *.py
|
|
9
11
|
recursive-include tests *.py
|
|
10
12
|
recursive-include images *.png *.jpg *.jpeg *.gif
|
fancygit-1.0.24/PKG-INFO
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: fancygit
|
|
3
|
+
Version: 1.0.24
|
|
4
|
+
Summary: A smart CLI tool that provides intelligent recommendations and helps solve merge conflicts
|
|
5
|
+
Author: Youssif Ashmawy
|
|
6
|
+
Author-email: ashmawyyoussif@gmail.com
|
|
7
|
+
License: Apache License 2.0
|
|
8
|
+
Classifier: Development Status :: 4 - Beta
|
|
9
|
+
Classifier: Intended Audience :: Developers
|
|
10
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
11
|
+
Classifier: Operating System :: OS Independent
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
+
Classifier: Topic :: Software Development :: Version Control :: Git
|
|
14
|
+
Requires-Python: >=3.6
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
License-File: LICENSE
|
|
17
|
+
Requires-Dist: requests>=2.25.0
|
|
18
|
+
Requires-Dist: prompt_toolkit>=3.0.0
|
|
19
|
+
Dynamic: author
|
|
20
|
+
Dynamic: author-email
|
|
21
|
+
Dynamic: classifier
|
|
22
|
+
Dynamic: description
|
|
23
|
+
Dynamic: description-content-type
|
|
24
|
+
Dynamic: license
|
|
25
|
+
Dynamic: license-file
|
|
26
|
+
Dynamic: requires-dist
|
|
27
|
+
Dynamic: requires-python
|
|
28
|
+
Dynamic: summary
|
|
29
|
+
|
|
30
|
+
# FancyGit
|
|
31
|
+
|
|
32
|
+
**An intelligent Git wrapper that makes version control approachable for beginners — without getting in the way of experienced developers.**
|
|
33
|
+
|
|
34
|
+
FancyGit sits on top of Git and adds smart features that guide you through everyday workflows, help you learn, and speed up your work.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Key Features
|
|
39
|
+
|
|
40
|
+
### Shortcut Commands
|
|
41
|
+
Common multi-step Git operations condensed into single commands. Less typing, fewer mistakes.
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
fancygit ship # pull + stage + commit + push in one step
|
|
45
|
+
fancygit sync # fetch all branches and prune deleted remote branches
|
|
46
|
+
fancygit undo # safely undo your last commit (soft, mixed, or hard)
|
|
47
|
+
fancygit redo # restore a commit that was undone
|
|
48
|
+
fancygit explain # explain what any Git command does
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### AI Integration
|
|
52
|
+
FancyGit connects to local AI models via Ollama to help you:
|
|
53
|
+
- **Auto-generate commit messages** from your staged diff
|
|
54
|
+
- **Analyse your repo** and surface useful insights
|
|
55
|
+
|
|
56
|
+
No API key needed — runs entirely on your machine. To unlock the full AI experience, install the following Ollama models:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
ollama pull codellama
|
|
60
|
+
ollama pull llama3.2
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Git Quizzes
|
|
64
|
+
Built-in interactive quizzes to help beginners learn Git concepts while they work.
|
|
65
|
+
- 320+ questions covering Git fundamentals to advanced topics
|
|
66
|
+
- Tracks which questions you've seen so you always get fresh ones
|
|
67
|
+
- Runs in your browser, no setup required
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
fancygit quiz
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Repo Visualizer
|
|
74
|
+
Generates an interactive visual diagram of your repository's branch history and file dependency graph, opened directly in your browser.
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
fancygit visualize
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Installation
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
pip install fancygit
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Requires Python 3.6+ and Git installed on your system.
|
|
89
|
+
|
|
90
|
+
## Quick Start
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
fancygit --help # see all available commands
|
|
94
|
+
fancygit quiz # start a Git quiz
|
|
95
|
+
fancygit ship # pull, stage everything, commit with AI message, and push
|
|
96
|
+
```
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# FancyGit
|
|
2
|
+
|
|
3
|
+
**An intelligent Git wrapper that makes version control approachable for beginners — without getting in the way of experienced developers.**
|
|
4
|
+
|
|
5
|
+
FancyGit sits on top of Git and adds smart features that guide you through everyday workflows, help you learn, and speed up your work.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Key Features
|
|
10
|
+
|
|
11
|
+
### Shortcut Commands
|
|
12
|
+
Common multi-step Git operations condensed into single commands. Less typing, fewer mistakes.
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
fancygit ship # pull + stage + commit + push in one step
|
|
16
|
+
fancygit sync # fetch all branches and prune deleted remote branches
|
|
17
|
+
fancygit undo # safely undo your last commit (soft, mixed, or hard)
|
|
18
|
+
fancygit redo # restore a commit that was undone
|
|
19
|
+
fancygit explain # explain what any Git command does
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### AI Integration
|
|
23
|
+
FancyGit connects to local AI models via Ollama to help you:
|
|
24
|
+
- **Auto-generate commit messages** from your staged diff
|
|
25
|
+
- **Analyse your repo** and surface useful insights
|
|
26
|
+
|
|
27
|
+
No API key needed — runs entirely on your machine. To unlock the full AI experience, install the following Ollama models:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
ollama pull codellama
|
|
31
|
+
ollama pull llama3.2
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Git Quizzes
|
|
35
|
+
Built-in interactive quizzes to help beginners learn Git concepts while they work.
|
|
36
|
+
- 320+ questions covering Git fundamentals to advanced topics
|
|
37
|
+
- Tracks which questions you've seen so you always get fresh ones
|
|
38
|
+
- Runs in your browser, no setup required
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
fancygit quiz
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Repo Visualizer
|
|
45
|
+
Generates an interactive visual diagram of your repository's branch history and file dependency graph, opened directly in your browser.
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
fancygit visualize
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Installation
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
pip install fancygit
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Requires Python 3.6+ and Git installed on your system.
|
|
60
|
+
|
|
61
|
+
## Quick Start
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
fancygit --help # see all available commands
|
|
65
|
+
fancygit quiz # start a Git quiz
|
|
66
|
+
fancygit ship # pull, stage everything, commit with AI message, and push
|
|
67
|
+
```
|
|
@@ -1,31 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: fancygit
|
|
3
|
-
Version: 1.0.22
|
|
4
|
-
Summary: A smart CLI tool that provides intelligent recommendations and helps solve merge conflicts
|
|
5
|
-
Author: Youssif Ashmawy
|
|
6
|
-
Author-email: ashmawyyoussif@gmail.com
|
|
7
|
-
License: Apache License 2.0
|
|
8
|
-
Classifier: Development Status :: 4 - Beta
|
|
9
|
-
Classifier: Intended Audience :: Developers
|
|
10
|
-
Classifier: License :: OSI Approved :: Apache Software License
|
|
11
|
-
Classifier: Operating System :: OS Independent
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
-
Classifier: Topic :: Software Development :: Version Control :: Git
|
|
14
|
-
Requires-Python: >=3.6
|
|
15
|
-
Description-Content-Type: text/markdown
|
|
16
|
-
License-File: LICENSE
|
|
17
|
-
Requires-Dist: requests>=2.25.0
|
|
18
|
-
Dynamic: author
|
|
19
|
-
Dynamic: author-email
|
|
20
|
-
Dynamic: classifier
|
|
21
|
-
Dynamic: description
|
|
22
|
-
Dynamic: description-content-type
|
|
23
|
-
Dynamic: license
|
|
24
|
-
Dynamic: license-file
|
|
25
|
-
Dynamic: requires-dist
|
|
26
|
-
Dynamic: requires-python
|
|
27
|
-
Dynamic: summary
|
|
28
|
-
|
|
29
1
|
# Fancy Git
|
|
30
2
|
|
|
31
3
|

|
|
@@ -134,6 +106,48 @@ fancygit insights [--days=N] [--format=console|json] [--output=filename]
|
|
|
134
106
|
fancygit visualize [directory] [--max-commits=N] [--no-open]
|
|
135
107
|
```
|
|
136
108
|
|
|
109
|
+
#### **🚀 Complete Push Workflow**
|
|
110
|
+
```bash
|
|
111
|
+
# Interactive complete push workflow (pull → stage → commit → push)
|
|
112
|
+
fancygit complete-push
|
|
113
|
+
|
|
114
|
+
# With specific files
|
|
115
|
+
fancygit complete-push file1.py file2.py
|
|
116
|
+
|
|
117
|
+
# Skip pull or push
|
|
118
|
+
fancygit complete-push --no-pull --no-push
|
|
119
|
+
|
|
120
|
+
# With custom commit message (still asks for confirmation)
|
|
121
|
+
fancygit complete-push --message="Fix bug"
|
|
122
|
+
|
|
123
|
+
# With AI commit message suggestions (automatically generated, Press Enter to use)
|
|
124
|
+
fancygit complete-push
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**Complete Push Features:**
|
|
128
|
+
- **Branch Selection**: Shows current branch and allows switching before operations
|
|
129
|
+
- **Interactive File Selection**: Displays available files with status (staged/modified/untracked)
|
|
130
|
+
- **Smart Defaults**: Press Enter for all files, stay on current branch
|
|
131
|
+
- **AI Commit Suggestions**: Automatically generated AI commit messages (Press Enter to use, requires Ollama)
|
|
132
|
+
- **Dry Run Preview**: Shows all planned operations before execution
|
|
133
|
+
- **User Confirmation**: Must confirm before any git operations run
|
|
134
|
+
- **Continuous Commit Message Prompt**: Re-asks until non-empty message provided
|
|
135
|
+
|
|
136
|
+
**AI Commit Message Features:**
|
|
137
|
+
- **Context-Aware**: Analyzes git diff and repository state
|
|
138
|
+
- **Conventional Commits**: Follows feat/fix/docs/style/refactor/test/chore format
|
|
139
|
+
- **Smart Suggestions**: Based on actual changes being committed
|
|
140
|
+
- **Optional**: Can accept or reject AI suggestions
|
|
141
|
+
- **Fallback**: Works even if AI is unavailable
|
|
142
|
+
|
|
143
|
+
**Workflow Steps:**
|
|
144
|
+
1. 🌿 Select/confirm branch
|
|
145
|
+
2. 📋 Choose files to stage (interactive)
|
|
146
|
+
3. 📝 Enter commit message (required)
|
|
147
|
+
4. 🔍 Review dry run of all operations
|
|
148
|
+
5. ❓ Confirm execution
|
|
149
|
+
6. 🚀 Execute: pull → add → commit → push
|
|
150
|
+
|
|
137
151
|
### How It Works
|
|
138
152
|
|
|
139
153
|
1. **Command Execution**: Runs the actual git command
|
fancygit-1.0.24/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.0.24
|
|
@@ -13,6 +13,7 @@ clean
|
|
|
13
13
|
clone
|
|
14
14
|
colors
|
|
15
15
|
commit
|
|
16
|
+
ship
|
|
16
17
|
confirmation
|
|
17
18
|
describe
|
|
18
19
|
diff
|
|
@@ -32,14 +33,17 @@ mv
|
|
|
32
33
|
notes
|
|
33
34
|
pull
|
|
34
35
|
push
|
|
36
|
+
quiz
|
|
35
37
|
range-diff
|
|
36
38
|
rebase
|
|
39
|
+
redo
|
|
37
40
|
reset
|
|
38
41
|
restore
|
|
39
42
|
revert
|
|
40
43
|
rm
|
|
41
44
|
shortlog
|
|
42
45
|
show
|
|
46
|
+
ship
|
|
43
47
|
sparse-checkout
|
|
44
48
|
stash
|
|
45
49
|
status
|
|
@@ -49,4 +53,5 @@ sync
|
|
|
49
53
|
tag
|
|
50
54
|
welcome
|
|
51
55
|
worktree
|
|
56
|
+
undo
|
|
52
57
|
visualize
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: fancygit
|
|
3
|
+
Version: 1.0.24
|
|
4
|
+
Summary: A smart CLI tool that provides intelligent recommendations and helps solve merge conflicts
|
|
5
|
+
Author: Youssif Ashmawy
|
|
6
|
+
Author-email: ashmawyyoussif@gmail.com
|
|
7
|
+
License: Apache License 2.0
|
|
8
|
+
Classifier: Development Status :: 4 - Beta
|
|
9
|
+
Classifier: Intended Audience :: Developers
|
|
10
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
11
|
+
Classifier: Operating System :: OS Independent
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
+
Classifier: Topic :: Software Development :: Version Control :: Git
|
|
14
|
+
Requires-Python: >=3.6
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
License-File: LICENSE
|
|
17
|
+
Requires-Dist: requests>=2.25.0
|
|
18
|
+
Requires-Dist: prompt_toolkit>=3.0.0
|
|
19
|
+
Dynamic: author
|
|
20
|
+
Dynamic: author-email
|
|
21
|
+
Dynamic: classifier
|
|
22
|
+
Dynamic: description
|
|
23
|
+
Dynamic: description-content-type
|
|
24
|
+
Dynamic: license
|
|
25
|
+
Dynamic: license-file
|
|
26
|
+
Dynamic: requires-dist
|
|
27
|
+
Dynamic: requires-python
|
|
28
|
+
Dynamic: summary
|
|
29
|
+
|
|
30
|
+
# FancyGit
|
|
31
|
+
|
|
32
|
+
**An intelligent Git wrapper that makes version control approachable for beginners — without getting in the way of experienced developers.**
|
|
33
|
+
|
|
34
|
+
FancyGit sits on top of Git and adds smart features that guide you through everyday workflows, help you learn, and speed up your work.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Key Features
|
|
39
|
+
|
|
40
|
+
### Shortcut Commands
|
|
41
|
+
Common multi-step Git operations condensed into single commands. Less typing, fewer mistakes.
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
fancygit ship # pull + stage + commit + push in one step
|
|
45
|
+
fancygit sync # fetch all branches and prune deleted remote branches
|
|
46
|
+
fancygit undo # safely undo your last commit (soft, mixed, or hard)
|
|
47
|
+
fancygit redo # restore a commit that was undone
|
|
48
|
+
fancygit explain # explain what any Git command does
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### AI Integration
|
|
52
|
+
FancyGit connects to local AI models via Ollama to help you:
|
|
53
|
+
- **Auto-generate commit messages** from your staged diff
|
|
54
|
+
- **Analyse your repo** and surface useful insights
|
|
55
|
+
|
|
56
|
+
No API key needed — runs entirely on your machine. To unlock the full AI experience, install the following Ollama models:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
ollama pull codellama
|
|
60
|
+
ollama pull llama3.2
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Git Quizzes
|
|
64
|
+
Built-in interactive quizzes to help beginners learn Git concepts while they work.
|
|
65
|
+
- 320+ questions covering Git fundamentals to advanced topics
|
|
66
|
+
- Tracks which questions you've seen so you always get fresh ones
|
|
67
|
+
- Runs in your browser, no setup required
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
fancygit quiz
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Repo Visualizer
|
|
74
|
+
Generates an interactive visual diagram of your repository's branch history and file dependency graph, opened directly in your browser.
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
fancygit visualize
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Installation
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
pip install fancygit
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Requires Python 3.6+ and Git installed on your system.
|
|
89
|
+
|
|
90
|
+
## Quick Start
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
fancygit --help # see all available commands
|
|
94
|
+
fancygit quiz # start a Git quiz
|
|
95
|
+
fancygit ship # pull, stage everything, commit with AI message, and push
|
|
96
|
+
```
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
.fancygit_config
|
|
2
1
|
CD_GUIDE.md
|
|
3
2
|
COLOR_SYSTEM_GUIDE.md
|
|
4
3
|
EMAIL_SETUP_GUIDE.md
|
|
5
4
|
LICENSE
|
|
6
5
|
MANIFEST.in
|
|
6
|
+
PYPI_DESCRIPTION.md
|
|
7
7
|
README.md
|
|
8
8
|
TESTING_GUIDE.md
|
|
9
9
|
TESTING_SUMMARY.md
|
|
10
10
|
VERSION
|
|
11
11
|
command-list.txt
|
|
12
12
|
fancygit.py
|
|
13
|
+
game_questions.json
|
|
14
|
+
quiz_server.py
|
|
13
15
|
setup.py
|
|
14
16
|
welcome.py
|
|
15
17
|
fancygit.egg-info/PKG-INFO
|
|
@@ -37,6 +39,8 @@ src/merge_conflict.py
|
|
|
37
39
|
src/mermaid_export.py
|
|
38
40
|
src/model_provider.py
|
|
39
41
|
src/output_colorizer.py
|
|
42
|
+
src/quiz_html_generator.py
|
|
43
|
+
src/quiz_manager.py
|
|
40
44
|
src/repo_inspector.py
|
|
41
45
|
src/repo_state.py
|
|
42
46
|
src/utils.py
|
|
@@ -59,4 +63,6 @@ tests/test_git_error.py
|
|
|
59
63
|
tests/test_git_error_parser.py
|
|
60
64
|
tests/test_git_runner.py
|
|
61
65
|
tests/test_model_provider.py
|
|
62
|
-
tests/
|
|
66
|
+
tests/test_ollama_model.py
|
|
67
|
+
tests/test_providers.py
|
|
68
|
+
tests/test_undo_redo.py
|