@fredlackey/devutils 0.0.1 → 0.0.3
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.
- package/README.md +5 -5
- package/package.json +1 -1
- package/src/commands/install.js +374 -36
- package/src/installs/adobe-creative-cloud.js +527 -25
- package/src/installs/adobe-creative-cloud.md +605 -0
- package/src/installs/appcleaner.js +303 -26
- package/src/installs/appcleaner.md +699 -0
- package/src/installs/apt-transport-https.js +390 -0
- package/src/installs/apt-transport-https.md +678 -0
- package/src/installs/atomicparsley.js +624 -26
- package/src/installs/atomicparsley.md +795 -0
- package/src/installs/aws-cli.js +779 -26
- package/src/installs/aws-cli.md +727 -0
- package/src/installs/balena-etcher.js +688 -26
- package/src/installs/balena-etcher.md +761 -0
- package/src/installs/bambu-studio.js +912 -26
- package/src/installs/bambu-studio.md +780 -0
- package/src/installs/bash-completion.js +554 -23
- package/src/installs/bash-completion.md +833 -0
- package/src/installs/bash.js +399 -26
- package/src/installs/bash.md +993 -0
- package/src/installs/beyond-compare.js +585 -26
- package/src/installs/beyond-compare.md +813 -0
- package/src/installs/build-essential.js +511 -26
- package/src/installs/build-essential.md +977 -0
- package/src/installs/ca-certificates.js +618 -0
- package/src/installs/ca-certificates.md +937 -0
- package/src/installs/caffeine.js +490 -26
- package/src/installs/caffeine.md +839 -0
- package/src/installs/camtasia.js +577 -25
- package/src/installs/camtasia.md +762 -0
- package/src/installs/chatgpt.js +458 -26
- package/src/installs/chatgpt.md +814 -0
- package/src/installs/chocolatey.js +447 -0
- package/src/installs/chocolatey.md +661 -0
- package/src/installs/chrome-canary.js +472 -26
- package/src/installs/chrome-canary.md +641 -0
- package/src/installs/chromium.js +645 -26
- package/src/installs/chromium.md +838 -0
- package/src/installs/claude-code.js +558 -26
- package/src/installs/claude-code.md +1173 -0
- package/src/installs/curl.js +361 -26
- package/src/installs/curl.md +714 -0
- package/src/installs/cursor.js +561 -26
- package/src/installs/cursor.md +970 -0
- package/src/installs/dbschema.js +674 -26
- package/src/installs/dbschema.md +925 -0
- package/src/installs/dependencies.md +435 -0
- package/src/installs/development-tools.js +600 -0
- package/src/installs/development-tools.md +977 -0
- package/src/installs/docker.js +1010 -25
- package/src/installs/docker.md +1109 -0
- package/src/installs/drawio.js +1001 -26
- package/src/installs/drawio.md +795 -0
- package/src/installs/elmedia-player.js +328 -25
- package/src/installs/elmedia-player.md +556 -0
- package/src/installs/ffmpeg.js +870 -25
- package/src/installs/ffmpeg.md +852 -0
- package/src/installs/file.js +464 -0
- package/src/installs/file.md +987 -0
- package/src/installs/gemini-cli.js +793 -26
- package/src/installs/gemini-cli.md +1153 -0
- package/src/installs/git.js +382 -26
- package/src/installs/git.md +907 -0
- package/src/installs/gitego.js +931 -26
- package/src/installs/gitego.md +1172 -0
- package/src/installs/go.js +913 -26
- package/src/installs/go.md +958 -0
- package/src/installs/google-chrome.js +801 -25
- package/src/installs/google-chrome.md +862 -0
- package/src/installs/gpg.js +412 -73
- package/src/installs/gpg.md +1056 -0
- package/src/installs/homebrew.js +1015 -26
- package/src/installs/homebrew.md +988 -0
- package/src/installs/imageoptim.js +950 -26
- package/src/installs/imageoptim.md +1119 -0
- package/src/installs/installers.json +2297 -0
- package/src/installs/jq.js +382 -26
- package/src/installs/jq.md +809 -0
- package/src/installs/keyboard-maestro.js +701 -26
- package/src/installs/keyboard-maestro.md +825 -0
- package/src/installs/latex.js +771 -26
- package/src/installs/latex.md +1095 -0
- package/src/installs/lftp.js +338 -26
- package/src/installs/lftp.md +907 -0
- package/src/installs/lsb-release.js +346 -0
- package/src/installs/lsb-release.md +814 -0
- package/src/installs/messenger.js +829 -26
- package/src/installs/messenger.md +900 -0
- package/src/installs/microsoft-office.js +550 -26
- package/src/installs/microsoft-office.md +760 -0
- package/src/installs/microsoft-teams.js +782 -25
- package/src/installs/microsoft-teams.md +886 -0
- package/src/installs/node.js +886 -26
- package/src/installs/node.md +1153 -0
- package/src/installs/nordpass.js +698 -26
- package/src/installs/nordpass.md +921 -0
- package/src/installs/nvm.js +977 -26
- package/src/installs/nvm.md +1057 -0
- package/src/installs/openssh.js +734 -64
- package/src/installs/openssh.md +1056 -0
- package/src/installs/pandoc.js +644 -26
- package/src/installs/pandoc.md +1036 -0
- package/src/installs/pinentry.js +492 -26
- package/src/installs/pinentry.md +1142 -0
- package/src/installs/pngyu.js +851 -26
- package/src/installs/pngyu.md +896 -0
- package/src/installs/postman.js +781 -26
- package/src/installs/postman.md +940 -0
- package/src/installs/procps.js +425 -0
- package/src/installs/procps.md +851 -0
- package/src/installs/safari-tech-preview.js +355 -25
- package/src/installs/safari-tech-preview.md +533 -0
- package/src/installs/sfnt2woff.js +640 -26
- package/src/installs/sfnt2woff.md +795 -0
- package/src/installs/shellcheck.js +463 -26
- package/src/installs/shellcheck.md +1005 -0
- package/src/installs/slack.js +722 -25
- package/src/installs/slack.md +865 -0
- package/src/installs/snagit.js +566 -25
- package/src/installs/snagit.md +844 -0
- package/src/installs/software-properties-common.js +372 -0
- package/src/installs/software-properties-common.md +805 -0
- package/src/installs/spotify.js +858 -25
- package/src/installs/spotify.md +901 -0
- package/src/installs/studio-3t.js +803 -26
- package/src/installs/studio-3t.md +918 -0
- package/src/installs/sublime-text.js +780 -25
- package/src/installs/sublime-text.md +914 -0
- package/src/installs/superwhisper.js +687 -25
- package/src/installs/superwhisper.md +630 -0
- package/src/installs/tailscale.js +727 -26
- package/src/installs/tailscale.md +1100 -0
- package/src/installs/tar.js +389 -0
- package/src/installs/tar.md +946 -0
- package/src/installs/termius.js +780 -26
- package/src/installs/termius.md +844 -0
- package/src/installs/terraform.js +761 -26
- package/src/installs/terraform.md +899 -0
- package/src/installs/tidal.js +752 -25
- package/src/installs/tidal.md +864 -0
- package/src/installs/tmux.js +328 -26
- package/src/installs/tmux.md +1030 -0
- package/src/installs/tree.js +393 -26
- package/src/installs/tree.md +833 -0
- package/src/installs/unzip.js +460 -0
- package/src/installs/unzip.md +879 -0
- package/src/installs/vim.js +403 -26
- package/src/installs/vim.md +1040 -0
- package/src/installs/vlc.js +803 -26
- package/src/installs/vlc.md +927 -0
- package/src/installs/vscode.js +825 -26
- package/src/installs/vscode.md +1002 -0
- package/src/installs/wget.js +415 -0
- package/src/installs/wget.md +791 -0
- package/src/installs/whatsapp.js +710 -25
- package/src/installs/whatsapp.md +854 -0
- package/src/installs/winpty.js +352 -0
- package/src/installs/winpty.md +620 -0
- package/src/installs/woff2.js +535 -26
- package/src/installs/woff2.md +977 -0
- package/src/installs/wsl.js +572 -0
- package/src/installs/wsl.md +699 -0
- package/src/installs/xcode-clt.js +520 -0
- package/src/installs/xcode-clt.md +351 -0
- package/src/installs/xcode.js +542 -26
- package/src/installs/xcode.md +573 -0
- package/src/installs/yarn.js +806 -26
- package/src/installs/yarn.md +1074 -0
- package/src/installs/yq.js +636 -26
- package/src/installs/yq.md +944 -0
- package/src/installs/yt-dlp.js +683 -26
- package/src/installs/yt-dlp.md +946 -0
- package/src/installs/yum-utils.js +297 -0
- package/src/installs/yum-utils.md +648 -0
- package/src/installs/zoom.js +740 -25
- package/src/installs/zoom.md +884 -0
- package/src/scripts/README.md +567 -45
- package/src/scripts/STATUS.md +208 -0
- package/src/scripts/afk.js +395 -7
- package/src/scripts/backup-all.js +731 -9
- package/src/scripts/backup-source.js +711 -8
- package/src/scripts/brewd.js +373 -7
- package/src/scripts/brewi.js +505 -9
- package/src/scripts/brewr.js +512 -9
- package/src/scripts/brews.js +462 -9
- package/src/scripts/brewu.js +488 -7
- package/src/scripts/c.js +185 -7
- package/src/scripts/ccurl.js +325 -8
- package/src/scripts/certbot-crontab-init.js +488 -8
- package/src/scripts/certbot-init.js +641 -9
- package/src/scripts/ch.js +339 -7
- package/src/scripts/claude-danger.js +253 -8
- package/src/scripts/clean-dev.js +419 -8
- package/src/scripts/clear-dns-cache.js +525 -7
- package/src/scripts/clone.js +417 -7
- package/src/scripts/code-all.js +420 -7
- package/src/scripts/count-files.js +195 -8
- package/src/scripts/count-folders.js +195 -8
- package/src/scripts/count.js +248 -8
- package/src/scripts/d.js +203 -7
- package/src/scripts/datauri.js +373 -8
- package/src/scripts/delete-files.js +363 -7
- package/src/scripts/docker-clean.js +410 -8
- package/src/scripts/dp.js +426 -7
- package/src/scripts/e.js +375 -9
- package/src/scripts/empty-trash.js +497 -7
- package/src/scripts/evm.js +428 -9
- package/src/scripts/fetch-github-repos.js +441 -10
- package/src/scripts/get-channel.js +329 -8
- package/src/scripts/get-course.js +384 -11
- package/src/scripts/get-dependencies.js +290 -9
- package/src/scripts/get-folder.js +783 -10
- package/src/scripts/get-tunes.js +411 -10
- package/src/scripts/get-video.js +352 -9
- package/src/scripts/git-backup.js +561 -9
- package/src/scripts/git-clone.js +477 -9
- package/src/scripts/git-pup.js +303 -7
- package/src/scripts/git-push.js +380 -8
- package/src/scripts/h.js +607 -9
- package/src/scripts/hide-desktop-icons.js +483 -7
- package/src/scripts/hide-hidden-files.js +522 -7
- package/src/scripts/install-dependencies-from.js +440 -9
- package/src/scripts/ips.js +647 -10
- package/src/scripts/iso.js +354 -8
- package/src/scripts/killni.js +561 -7
- package/src/scripts/ll.js +451 -8
- package/src/scripts/local-ip.js +310 -8
- package/src/scripts/m.js +508 -8
- package/src/scripts/map.js +293 -8
- package/src/scripts/mkd.js +287 -7
- package/src/scripts/ncu-update-all.js +441 -8
- package/src/scripts/nginx-init.js +702 -12
- package/src/scripts/npmi.js +366 -7
- package/src/scripts/o.js +495 -8
- package/src/scripts/org-by-date.js +321 -7
- package/src/scripts/p.js +208 -7
- package/src/scripts/packages.js +313 -8
- package/src/scripts/path.js +209 -7
- package/src/scripts/ports.js +582 -8
- package/src/scripts/q.js +290 -8
- package/src/scripts/refresh-files.js +378 -10
- package/src/scripts/remove-smaller-files.js +500 -8
- package/src/scripts/rename-files-with-date.js +517 -9
- package/src/scripts/resize-image.js +523 -9
- package/src/scripts/rm-safe.js +653 -8
- package/src/scripts/s.js +525 -9
- package/src/scripts/set-git-public.js +349 -7
- package/src/scripts/show-desktop-icons.js +459 -7
- package/src/scripts/show-hidden-files.js +456 -7
- package/src/scripts/tpa.js +265 -8
- package/src/scripts/tpo.js +264 -7
- package/src/scripts/u.js +489 -7
- package/src/scripts/vpush.js +422 -8
- package/src/scripts/y.js +267 -7
- package/src/utils/common/os.js +94 -2
- package/src/utils/ubuntu/apt.js +13 -7
- package/src/utils/windows/choco.js +82 -26
- package/src/utils/windows/winget.js +89 -27
|
@@ -0,0 +1,907 @@
|
|
|
1
|
+
# Installing Git
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Git is a free and open-source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Originally created by Linus Torvalds in 2005 for Linux kernel development, Git has become the most widely used version control system in the world.
|
|
6
|
+
|
|
7
|
+
Git enables developers to:
|
|
8
|
+
|
|
9
|
+
- Track changes in source code during software development
|
|
10
|
+
- Coordinate work among multiple developers
|
|
11
|
+
- Maintain a complete history of all changes
|
|
12
|
+
- Branch and merge code with minimal friction
|
|
13
|
+
- Work offline and sync changes when connected
|
|
14
|
+
|
|
15
|
+
This guide documents Git installation procedures for all platforms supported by DevUtils CLI.
|
|
16
|
+
|
|
17
|
+
## Dependencies
|
|
18
|
+
|
|
19
|
+
### macOS (Homebrew)
|
|
20
|
+
- **Required:**
|
|
21
|
+
- `homebrew` - Install via `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"` or run `dev install homebrew`
|
|
22
|
+
- **Optional:** None
|
|
23
|
+
- **Auto-installed:** None
|
|
24
|
+
|
|
25
|
+
### Ubuntu (APT/Snap)
|
|
26
|
+
- **Required:** None (APT package manager is pre-installed on Ubuntu)
|
|
27
|
+
- **Optional:**
|
|
28
|
+
- `software-properties-common` - Install via `sudo apt-get install -y software-properties-common` (required only if using the Git Core PPA for the latest version)
|
|
29
|
+
- **Auto-installed:** Git runtime dependencies are automatically installed by APT
|
|
30
|
+
|
|
31
|
+
### Raspberry Pi OS (APT/Snap)
|
|
32
|
+
- **Required:** None (APT package manager is pre-installed on Raspberry Pi OS)
|
|
33
|
+
- **Optional:**
|
|
34
|
+
- `software-properties-common` - Install via `sudo apt-get install -y software-properties-common` (required only if using the Git Core PPA for the latest version)
|
|
35
|
+
- **Auto-installed:** Git runtime dependencies are automatically installed by APT
|
|
36
|
+
|
|
37
|
+
### Amazon Linux (DNF/YUM)
|
|
38
|
+
- **Required:** None (DNF/YUM package manager is pre-installed on Amazon Linux)
|
|
39
|
+
- **Optional:** None
|
|
40
|
+
- **Auto-installed:** Git runtime dependencies are automatically installed by DNF/YUM
|
|
41
|
+
|
|
42
|
+
### Windows (Chocolatey/winget)
|
|
43
|
+
- **Required:**
|
|
44
|
+
- `chocolatey` - Install via PowerShell (Administrator): `Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))` or run `dev install chocolatey`
|
|
45
|
+
- **Optional:** None
|
|
46
|
+
- **Auto-installed:**
|
|
47
|
+
- Git Bash (Bash emulation environment)
|
|
48
|
+
- Git GUI (graphical interface)
|
|
49
|
+
- Git Credential Manager (credential storage helper)
|
|
50
|
+
|
|
51
|
+
### Git Bash (Manual/Portable)
|
|
52
|
+
- **Required:**
|
|
53
|
+
- `git` - Git for Windows must be installed (Git Bash is bundled with it). Download from https://git-scm.com/download/win or install via `choco install git -y`
|
|
54
|
+
- **Optional:** None
|
|
55
|
+
- **Auto-installed:** None
|
|
56
|
+
|
|
57
|
+
## Prerequisites
|
|
58
|
+
|
|
59
|
+
Before installing Git on any platform, ensure:
|
|
60
|
+
|
|
61
|
+
1. **Internet connectivity** - Required to download Git packages
|
|
62
|
+
2. **Administrative privileges** - Required for system-wide installation (sudo on Linux/macOS, Administrator on Windows)
|
|
63
|
+
3. **Terminal access** - Required to run installation commands
|
|
64
|
+
4. **Platform-specific package manager** - See Dependencies section above for required package managers
|
|
65
|
+
|
|
66
|
+
## Platform-Specific Installation
|
|
67
|
+
|
|
68
|
+
### macOS (Homebrew)
|
|
69
|
+
|
|
70
|
+
#### Prerequisites
|
|
71
|
+
|
|
72
|
+
- macOS 10.15 (Catalina) or later (macOS 14 Sonoma or later recommended)
|
|
73
|
+
- Homebrew package manager installed
|
|
74
|
+
- Command line access via Terminal.app or iTerm2
|
|
75
|
+
|
|
76
|
+
macOS may include a pre-installed version of Git via Xcode Command Line Tools. However, Homebrew typically provides a more recent version. This guide documents the Homebrew installation method.
|
|
77
|
+
|
|
78
|
+
If Homebrew is not installed, install it first:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
#### Installation Steps
|
|
85
|
+
|
|
86
|
+
Run the following command to install Git:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
brew install --quiet git
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
The `--quiet` flag suppresses non-essential output, making the installation suitable for automation and scripts.
|
|
93
|
+
|
|
94
|
+
#### Verification
|
|
95
|
+
|
|
96
|
+
Confirm the installation succeeded:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
git --version
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Expected output (version numbers may vary):
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
git version 2.52.0
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Verify the Homebrew version is being used (not the system version):
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
which git
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Expected output for Apple Silicon Macs:
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
/opt/homebrew/bin/git
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Expected output for Intel Macs:
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
/usr/local/bin/git
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
#### Troubleshooting
|
|
127
|
+
|
|
128
|
+
**Problem**: `git --version` shows an older version after installation
|
|
129
|
+
|
|
130
|
+
**Solution**: The system version of Git (from Xcode Command Line Tools) may be taking precedence. Ensure Homebrew's bin directory is in your PATH before `/usr/bin`:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zshrc
|
|
134
|
+
source ~/.zshrc
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
For Intel Macs, use `/usr/local/bin` instead of `/opt/homebrew/bin`.
|
|
138
|
+
|
|
139
|
+
**Problem**: `brew: command not found`
|
|
140
|
+
|
|
141
|
+
**Solution**: Homebrew is not installed or not in PATH. Install Homebrew first, then add it to your PATH:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**Problem**: Permission errors during installation
|
|
148
|
+
|
|
149
|
+
**Solution**: Homebrew should not require sudo. If you encounter permission errors, fix Homebrew permissions:
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
sudo chown -R $(whoami) /opt/homebrew
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
### Ubuntu/Debian (APT)
|
|
158
|
+
|
|
159
|
+
#### Prerequisites
|
|
160
|
+
|
|
161
|
+
- Ubuntu 20.04 LTS or later, or Debian 11 (Bullseye) or later
|
|
162
|
+
- sudo privileges
|
|
163
|
+
- Internet connectivity
|
|
164
|
+
|
|
165
|
+
Ubuntu and Debian include Git in their default repositories. For the latest stable version, use the Git Core PPA (Ubuntu) or the default repository (Debian).
|
|
166
|
+
|
|
167
|
+
#### Installation Steps
|
|
168
|
+
|
|
169
|
+
**Step 1: Update package lists and install Git**
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
173
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y git
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
The `DEBIAN_FRONTEND=noninteractive` environment variable ensures no interactive prompts appear during installation, making this suitable for scripts and automation.
|
|
177
|
+
|
|
178
|
+
**Step 2 (Optional): Install the latest stable version via PPA (Ubuntu only)**
|
|
179
|
+
|
|
180
|
+
The default Ubuntu repositories may contain an older version of Git. To install the latest stable version:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y software-properties-common
|
|
184
|
+
sudo add-apt-repository -y ppa:git-core/ppa
|
|
185
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
186
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y git
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
#### Verification
|
|
190
|
+
|
|
191
|
+
Confirm the installation succeeded:
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
git --version
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Expected output (version numbers may vary):
|
|
198
|
+
|
|
199
|
+
```
|
|
200
|
+
git version 2.52.0
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Verify the installation location:
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
which git
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Expected output:
|
|
210
|
+
|
|
211
|
+
```
|
|
212
|
+
/usr/bin/git
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
#### Troubleshooting
|
|
216
|
+
|
|
217
|
+
**Problem**: `E: Unable to locate package git`
|
|
218
|
+
|
|
219
|
+
**Solution**: Update your package lists:
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
**Problem**: PPA installation fails on Debian
|
|
226
|
+
|
|
227
|
+
**Solution**: PPAs are Ubuntu-specific. On Debian, use the default repository or compile from source. The default repository version is typically sufficient for most use cases.
|
|
228
|
+
|
|
229
|
+
**Problem**: `add-apt-repository: command not found`
|
|
230
|
+
|
|
231
|
+
**Solution**: Install the software-properties-common package:
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y software-properties-common
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
**Problem**: Old version of Git despite using PPA
|
|
238
|
+
|
|
239
|
+
**Solution**: Ensure the PPA is active and update:
|
|
240
|
+
|
|
241
|
+
```bash
|
|
242
|
+
sudo add-apt-repository -y ppa:git-core/ppa
|
|
243
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
244
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y git
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
### Raspberry Pi OS (APT)
|
|
250
|
+
|
|
251
|
+
#### Prerequisites
|
|
252
|
+
|
|
253
|
+
- Raspberry Pi OS (Bookworm or Bullseye recommended)
|
|
254
|
+
- Raspberry Pi 3B+ or later (any model supported by Raspberry Pi OS)
|
|
255
|
+
- sudo privileges
|
|
256
|
+
- Internet connectivity
|
|
257
|
+
|
|
258
|
+
Raspberry Pi OS is based on Debian, so Git installation follows the Debian/APT method. Git is available in the default repositories and works on both 32-bit (armhf) and 64-bit (arm64) architectures.
|
|
259
|
+
|
|
260
|
+
#### Installation Steps
|
|
261
|
+
|
|
262
|
+
First, verify your architecture:
|
|
263
|
+
|
|
264
|
+
```bash
|
|
265
|
+
uname -m
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
- `aarch64` = 64-bit ARM
|
|
269
|
+
- `armv7l` = 32-bit ARM
|
|
270
|
+
|
|
271
|
+
Install Git using APT:
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
275
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y git
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
The installation command is identical for both 32-bit and 64-bit Raspberry Pi OS.
|
|
279
|
+
|
|
280
|
+
#### Verification
|
|
281
|
+
|
|
282
|
+
Confirm the installation succeeded:
|
|
283
|
+
|
|
284
|
+
```bash
|
|
285
|
+
git --version
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
Expected output (version numbers may vary):
|
|
289
|
+
|
|
290
|
+
```
|
|
291
|
+
git version 2.39.2
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
Note: Raspberry Pi OS repositories may contain a slightly older version than Ubuntu PPA or Homebrew. This is expected and the version provided is fully functional.
|
|
295
|
+
|
|
296
|
+
Verify the installation location:
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
which git
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
Expected output:
|
|
303
|
+
|
|
304
|
+
```
|
|
305
|
+
/usr/bin/git
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
#### Troubleshooting
|
|
309
|
+
|
|
310
|
+
**Problem**: Installation is slow
|
|
311
|
+
|
|
312
|
+
**Solution**: Raspberry Pi SD cards can be slow. Use a high-quality SD card (Class 10 or A1/A2 rated) or boot from USB/SSD for better performance.
|
|
313
|
+
|
|
314
|
+
**Problem**: `E: Unable to fetch some archives`
|
|
315
|
+
|
|
316
|
+
**Solution**: Network connectivity issues. Check your internet connection and retry:
|
|
317
|
+
|
|
318
|
+
```bash
|
|
319
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
320
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y git
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
**Problem**: Package conflicts or broken dependencies
|
|
324
|
+
|
|
325
|
+
**Solution**: Fix broken packages before installing:
|
|
326
|
+
|
|
327
|
+
```bash
|
|
328
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -f
|
|
329
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y git
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
**Problem**: Git version is very old
|
|
333
|
+
|
|
334
|
+
**Solution**: Ensure your Raspberry Pi OS is up to date:
|
|
335
|
+
|
|
336
|
+
```bash
|
|
337
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
338
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y
|
|
339
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y git
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
### Amazon Linux (DNF/YUM)
|
|
345
|
+
|
|
346
|
+
#### Prerequisites
|
|
347
|
+
|
|
348
|
+
- Amazon Linux 2023 (AL2023) or Amazon Linux 2 (AL2)
|
|
349
|
+
- sudo privileges
|
|
350
|
+
- EC2 instance or compatible environment
|
|
351
|
+
|
|
352
|
+
Amazon Linux 2023 uses DNF as the default package manager. Amazon Linux 2 uses YUM. Git is included in the default Amazon Linux repositories.
|
|
353
|
+
|
|
354
|
+
**Important**: Amazon Linux 2 reaches end of support on June 30, 2026. Migrate to Amazon Linux 2023 for long-term support.
|
|
355
|
+
|
|
356
|
+
#### Installation Steps
|
|
357
|
+
|
|
358
|
+
**For Amazon Linux 2023 (AL2023):**
|
|
359
|
+
|
|
360
|
+
```bash
|
|
361
|
+
sudo dnf install -y git
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
**For Amazon Linux 2 (AL2):**
|
|
365
|
+
|
|
366
|
+
```bash
|
|
367
|
+
sudo yum install -y git
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
The `-y` flag automatically confirms installation, enabling non-interactive execution.
|
|
371
|
+
|
|
372
|
+
#### Verification
|
|
373
|
+
|
|
374
|
+
Confirm the installation succeeded:
|
|
375
|
+
|
|
376
|
+
```bash
|
|
377
|
+
git --version
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
Expected output (version numbers may vary):
|
|
381
|
+
|
|
382
|
+
```
|
|
383
|
+
git version 2.40.1
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
Verify the installation location:
|
|
387
|
+
|
|
388
|
+
```bash
|
|
389
|
+
which git
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
Expected output:
|
|
393
|
+
|
|
394
|
+
```
|
|
395
|
+
/usr/bin/git
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
#### Troubleshooting
|
|
399
|
+
|
|
400
|
+
**Problem**: `No match for argument: git` on Amazon Linux 2
|
|
401
|
+
|
|
402
|
+
**Solution**: Update the yum cache and retry:
|
|
403
|
+
|
|
404
|
+
```bash
|
|
405
|
+
sudo yum makecache
|
|
406
|
+
sudo yum install -y git
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
**Problem**: Git version is older than expected
|
|
410
|
+
|
|
411
|
+
**Solution**: Amazon's repositories prioritize stability over bleeding-edge versions. The version provided is tested and compatible with Amazon Linux. If you require a newer version, compile from source.
|
|
412
|
+
|
|
413
|
+
**Problem**: `Cannot find a valid baseurl for repo`
|
|
414
|
+
|
|
415
|
+
**Solution**: Network or repository configuration issue. Check connectivity and repository settings:
|
|
416
|
+
|
|
417
|
+
```bash
|
|
418
|
+
# For AL2023
|
|
419
|
+
sudo dnf check-update
|
|
420
|
+
|
|
421
|
+
# For AL2
|
|
422
|
+
sudo yum check-update
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
**Problem**: Permission denied errors
|
|
426
|
+
|
|
427
|
+
**Solution**: Ensure you are using sudo:
|
|
428
|
+
|
|
429
|
+
```bash
|
|
430
|
+
sudo dnf install -y git
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
---
|
|
434
|
+
|
|
435
|
+
### Windows (Chocolatey)
|
|
436
|
+
|
|
437
|
+
#### Prerequisites
|
|
438
|
+
|
|
439
|
+
- Windows 10 version 1903 or higher (64-bit), or Windows 11
|
|
440
|
+
- Administrator PowerShell or Command Prompt
|
|
441
|
+
- Chocolatey package manager installed
|
|
442
|
+
|
|
443
|
+
If Chocolatey is not installed, install it first by running this command in an Administrator PowerShell:
|
|
444
|
+
|
|
445
|
+
```powershell
|
|
446
|
+
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
#### Installation Steps
|
|
450
|
+
|
|
451
|
+
Run the following command in an Administrator PowerShell or Command Prompt:
|
|
452
|
+
|
|
453
|
+
```powershell
|
|
454
|
+
choco install git -y
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
The `-y` flag automatically confirms all prompts, enabling fully non-interactive installation suitable for automation and scripts.
|
|
458
|
+
|
|
459
|
+
**Optional**: Install Git with additional Unix tools in PATH:
|
|
460
|
+
|
|
461
|
+
```powershell
|
|
462
|
+
choco install git -y --params "'/GitAndUnixToolsOnPath'"
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
This adds common Unix utilities (like `ls`, `cat`, `grep`) to your Windows PATH alongside Git.
|
|
466
|
+
|
|
467
|
+
After installation, close and reopen your terminal to ensure PATH changes take effect.
|
|
468
|
+
|
|
469
|
+
#### Verification
|
|
470
|
+
|
|
471
|
+
Open a new Command Prompt or PowerShell window, then run:
|
|
472
|
+
|
|
473
|
+
```powershell
|
|
474
|
+
git --version
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
Expected output (version numbers may vary):
|
|
478
|
+
|
|
479
|
+
```
|
|
480
|
+
git version 2.52.0.windows.1
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
Verify the installation location:
|
|
484
|
+
|
|
485
|
+
```powershell
|
|
486
|
+
where git
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
Expected output:
|
|
490
|
+
|
|
491
|
+
```
|
|
492
|
+
C:\Program Files\Git\cmd\git.exe
|
|
493
|
+
```
|
|
494
|
+
|
|
495
|
+
#### Troubleshooting
|
|
496
|
+
|
|
497
|
+
**Problem**: `git: command not found` or `'git' is not recognized`
|
|
498
|
+
|
|
499
|
+
**Solution**: Close and reopen your terminal window. If the problem persists, verify Git is in your PATH:
|
|
500
|
+
|
|
501
|
+
```powershell
|
|
502
|
+
$env:PATH -split ';' | Select-String -Pattern 'Git'
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
If Git is not listed, add it manually:
|
|
506
|
+
|
|
507
|
+
```powershell
|
|
508
|
+
$env:PATH += ";C:\Program Files\Git\cmd"
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
To make this permanent, add the path via System Properties > Environment Variables.
|
|
512
|
+
|
|
513
|
+
**Problem**: Chocolatey installation fails
|
|
514
|
+
|
|
515
|
+
**Solution**: Ensure you are running PowerShell as Administrator. Right-click PowerShell and select "Run as administrator".
|
|
516
|
+
|
|
517
|
+
**Problem**: SSL/TLS errors during installation
|
|
518
|
+
|
|
519
|
+
**Solution**: Update your security protocols:
|
|
520
|
+
|
|
521
|
+
```powershell
|
|
522
|
+
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
|
|
523
|
+
choco install git -y
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
**Problem**: Git installed but Git Bash not working
|
|
527
|
+
|
|
528
|
+
**Solution**: Git Bash is installed with Git. Access it from the Start Menu or run:
|
|
529
|
+
|
|
530
|
+
```powershell
|
|
531
|
+
"C:\Program Files\Git\bin\bash.exe"
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
---
|
|
535
|
+
|
|
536
|
+
### WSL (Ubuntu)
|
|
537
|
+
|
|
538
|
+
#### Prerequisites
|
|
539
|
+
|
|
540
|
+
- Windows 10 version 2004 or higher, or Windows 11
|
|
541
|
+
- WSL 2 enabled with Ubuntu distribution installed
|
|
542
|
+
- sudo privileges within WSL
|
|
543
|
+
|
|
544
|
+
WSL runs Ubuntu (or another Linux distribution) within Windows. Git must be installed separately within WSL, as it does not share binaries with Windows Git.
|
|
545
|
+
|
|
546
|
+
#### Installation Steps
|
|
547
|
+
|
|
548
|
+
Open your WSL Ubuntu terminal and run:
|
|
549
|
+
|
|
550
|
+
```bash
|
|
551
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
552
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y git
|
|
553
|
+
```
|
|
554
|
+
|
|
555
|
+
**Optional**: Install the latest stable version via PPA:
|
|
556
|
+
|
|
557
|
+
```bash
|
|
558
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y software-properties-common
|
|
559
|
+
sudo add-apt-repository -y ppa:git-core/ppa
|
|
560
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
561
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y git
|
|
562
|
+
```
|
|
563
|
+
|
|
564
|
+
#### Verification
|
|
565
|
+
|
|
566
|
+
Confirm the installation succeeded:
|
|
567
|
+
|
|
568
|
+
```bash
|
|
569
|
+
git --version
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
Expected output (version numbers may vary):
|
|
573
|
+
|
|
574
|
+
```
|
|
575
|
+
git version 2.52.0
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
Verify the installation location:
|
|
579
|
+
|
|
580
|
+
```bash
|
|
581
|
+
which git
|
|
582
|
+
```
|
|
583
|
+
|
|
584
|
+
Expected output:
|
|
585
|
+
|
|
586
|
+
```
|
|
587
|
+
/usr/bin/git
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
#### Troubleshooting
|
|
591
|
+
|
|
592
|
+
**Problem**: Git version differs between WSL and Windows
|
|
593
|
+
|
|
594
|
+
**Solution**: This is expected behavior. WSL and Windows maintain separate Git installations. Use the appropriate Git for each environment:
|
|
595
|
+
|
|
596
|
+
- Inside WSL terminal: Use Linux Git (`/usr/bin/git`)
|
|
597
|
+
- In Windows PowerShell/CMD: Use Windows Git (`C:\Program Files\Git\cmd\git.exe`)
|
|
598
|
+
|
|
599
|
+
**Problem**: Git Credential Manager issues between WSL and Windows
|
|
600
|
+
|
|
601
|
+
**Solution**: Configure Git to use Windows Git Credential Manager from within WSL:
|
|
602
|
+
|
|
603
|
+
```bash
|
|
604
|
+
git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager.exe"
|
|
605
|
+
```
|
|
606
|
+
|
|
607
|
+
**Problem**: Line ending issues (CRLF vs LF)
|
|
608
|
+
|
|
609
|
+
**Solution**: Configure Git to handle line endings appropriately for WSL:
|
|
610
|
+
|
|
611
|
+
```bash
|
|
612
|
+
git config --global core.autocrlf input
|
|
613
|
+
```
|
|
614
|
+
|
|
615
|
+
**Problem**: Permission errors in WSL
|
|
616
|
+
|
|
617
|
+
**Solution**: Ensure you are using sudo for installation:
|
|
618
|
+
|
|
619
|
+
```bash
|
|
620
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y git
|
|
621
|
+
```
|
|
622
|
+
|
|
623
|
+
---
|
|
624
|
+
|
|
625
|
+
### Git Bash (Windows Installation)
|
|
626
|
+
|
|
627
|
+
#### Prerequisites
|
|
628
|
+
|
|
629
|
+
- Windows 10 or Windows 11 (64-bit or ARM64)
|
|
630
|
+
- Administrator access for installation
|
|
631
|
+
- Internet connectivity
|
|
632
|
+
|
|
633
|
+
Git Bash is a terminal emulator for Windows that provides a Bash shell environment along with Git. It is included with Git for Windows and does not require a separate installation.
|
|
634
|
+
|
|
635
|
+
**Note**: Git Bash is automatically installed when you install Git on Windows via Chocolatey or the official installer. This section documents the Chocolatey method for consistency with other Windows installations.
|
|
636
|
+
|
|
637
|
+
#### Installation Steps
|
|
638
|
+
|
|
639
|
+
Run the following command in an Administrator PowerShell or Command Prompt:
|
|
640
|
+
|
|
641
|
+
```powershell
|
|
642
|
+
choco install git -y
|
|
643
|
+
```
|
|
644
|
+
|
|
645
|
+
This installs:
|
|
646
|
+
|
|
647
|
+
- Git command-line tools
|
|
648
|
+
- Git Bash (Bash emulation environment)
|
|
649
|
+
- Git GUI (graphical interface)
|
|
650
|
+
- Git Credential Manager
|
|
651
|
+
|
|
652
|
+
After installation, close and reopen your terminal to ensure PATH changes take effect.
|
|
653
|
+
|
|
654
|
+
**Launching Git Bash**:
|
|
655
|
+
|
|
656
|
+
- From Start Menu: Search for "Git Bash"
|
|
657
|
+
- From Command Prompt: Run `"C:\Program Files\Git\bin\bash.exe"`
|
|
658
|
+
- From File Explorer: Right-click in a folder and select "Git Bash Here" (if context menu integration was enabled)
|
|
659
|
+
|
|
660
|
+
#### Verification
|
|
661
|
+
|
|
662
|
+
Open Git Bash from the Start Menu, then run:
|
|
663
|
+
|
|
664
|
+
```bash
|
|
665
|
+
git --version
|
|
666
|
+
```
|
|
667
|
+
|
|
668
|
+
Expected output (version numbers may vary):
|
|
669
|
+
|
|
670
|
+
```
|
|
671
|
+
git version 2.52.0.windows.1
|
|
672
|
+
```
|
|
673
|
+
|
|
674
|
+
Verify Bash is working:
|
|
675
|
+
|
|
676
|
+
```bash
|
|
677
|
+
echo $BASH_VERSION
|
|
678
|
+
```
|
|
679
|
+
|
|
680
|
+
Expected output (version numbers may vary):
|
|
681
|
+
|
|
682
|
+
```
|
|
683
|
+
5.2.26(1)-release
|
|
684
|
+
```
|
|
685
|
+
|
|
686
|
+
#### Troubleshooting
|
|
687
|
+
|
|
688
|
+
**Problem**: "Git Bash Here" context menu option is missing
|
|
689
|
+
|
|
690
|
+
**Solution**: This option is only available if enabled during installation. To add it retroactively, reinstall Git with the context menu option:
|
|
691
|
+
|
|
692
|
+
```powershell
|
|
693
|
+
choco uninstall git -y
|
|
694
|
+
choco install git -y --params "'/GitAndUnixToolsOnPath /WindowsTerminal'"
|
|
695
|
+
```
|
|
696
|
+
|
|
697
|
+
**Problem**: `the input device is not a TTY` error when running interactive commands
|
|
698
|
+
|
|
699
|
+
**Solution**: Git Bash's mintty terminal has TTY compatibility issues with some commands. Use the `winpty` prefix:
|
|
700
|
+
|
|
701
|
+
```bash
|
|
702
|
+
winpty docker run -it ubuntu bash
|
|
703
|
+
```
|
|
704
|
+
|
|
705
|
+
Or add an alias to your `~/.bashrc`:
|
|
706
|
+
|
|
707
|
+
```bash
|
|
708
|
+
echo 'alias docker="winpty docker"' >> ~/.bashrc
|
|
709
|
+
source ~/.bashrc
|
|
710
|
+
```
|
|
711
|
+
|
|
712
|
+
**Problem**: Path conversion issues (forward slashes being converted)
|
|
713
|
+
|
|
714
|
+
**Solution**: Git Bash automatically converts Unix-style paths to Windows paths. To prevent this, use double leading slashes or set `MSYS_NO_PATHCONV`:
|
|
715
|
+
|
|
716
|
+
```bash
|
|
717
|
+
# Use double leading slash
|
|
718
|
+
/c/Users/username/project
|
|
719
|
+
|
|
720
|
+
# Or disable path conversion for a command
|
|
721
|
+
MSYS_NO_PATHCONV=1 some-command /path/to/file
|
|
722
|
+
```
|
|
723
|
+
|
|
724
|
+
**Problem**: Git Bash is slow to start
|
|
725
|
+
|
|
726
|
+
**Solution**: Disable Git status in the prompt by editing `~/.bashrc`:
|
|
727
|
+
|
|
728
|
+
```bash
|
|
729
|
+
export GIT_PS1_SHOWDIRTYSTATE=
|
|
730
|
+
export GIT_PS1_SHOWUNTRACKEDFILES=
|
|
731
|
+
```
|
|
732
|
+
|
|
733
|
+
---
|
|
734
|
+
|
|
735
|
+
## Post-Installation Configuration
|
|
736
|
+
|
|
737
|
+
After installing Git on any platform, configure your identity. This information is included in every commit you create.
|
|
738
|
+
|
|
739
|
+
### Configure User Identity
|
|
740
|
+
|
|
741
|
+
Set your name and email address:
|
|
742
|
+
|
|
743
|
+
```bash
|
|
744
|
+
git config --global user.name "Your Name"
|
|
745
|
+
git config --global user.email "your.email@example.com"
|
|
746
|
+
```
|
|
747
|
+
|
|
748
|
+
Verify your configuration:
|
|
749
|
+
|
|
750
|
+
```bash
|
|
751
|
+
git config --global --list
|
|
752
|
+
```
|
|
753
|
+
|
|
754
|
+
### Configure Default Branch Name
|
|
755
|
+
|
|
756
|
+
Set the default branch name for new repositories (recommended: `main`):
|
|
757
|
+
|
|
758
|
+
```bash
|
|
759
|
+
git config --global init.defaultBranch main
|
|
760
|
+
```
|
|
761
|
+
|
|
762
|
+
### Configure Line Endings
|
|
763
|
+
|
|
764
|
+
Configure how Git handles line endings:
|
|
765
|
+
|
|
766
|
+
**On macOS and Linux:**
|
|
767
|
+
|
|
768
|
+
```bash
|
|
769
|
+
git config --global core.autocrlf input
|
|
770
|
+
```
|
|
771
|
+
|
|
772
|
+
**On Windows:**
|
|
773
|
+
|
|
774
|
+
```bash
|
|
775
|
+
git config --global core.autocrlf true
|
|
776
|
+
```
|
|
777
|
+
|
|
778
|
+
### Configure Default Editor
|
|
779
|
+
|
|
780
|
+
Set your preferred text editor for commit messages:
|
|
781
|
+
|
|
782
|
+
```bash
|
|
783
|
+
# For VS Code
|
|
784
|
+
git config --global core.editor "code --wait"
|
|
785
|
+
|
|
786
|
+
# For Vim
|
|
787
|
+
git config --global core.editor "vim"
|
|
788
|
+
|
|
789
|
+
# For Nano
|
|
790
|
+
git config --global core.editor "nano"
|
|
791
|
+
```
|
|
792
|
+
|
|
793
|
+
### Configure Credential Storage
|
|
794
|
+
|
|
795
|
+
Enable credential caching to avoid re-entering passwords:
|
|
796
|
+
|
|
797
|
+
**On macOS:**
|
|
798
|
+
|
|
799
|
+
```bash
|
|
800
|
+
git config --global credential.helper osxkeychain
|
|
801
|
+
```
|
|
802
|
+
|
|
803
|
+
**On Linux:**
|
|
804
|
+
|
|
805
|
+
```bash
|
|
806
|
+
git config --global credential.helper cache
|
|
807
|
+
```
|
|
808
|
+
|
|
809
|
+
**On Windows:**
|
|
810
|
+
|
|
811
|
+
Git Credential Manager is installed automatically with Git for Windows and is the default credential helper.
|
|
812
|
+
|
|
813
|
+
---
|
|
814
|
+
|
|
815
|
+
## Common Issues
|
|
816
|
+
|
|
817
|
+
### Issue: "Please tell me who you are" Error
|
|
818
|
+
|
|
819
|
+
**Symptoms**: Git refuses to commit with the message "Please tell me who you are"
|
|
820
|
+
|
|
821
|
+
**Solution**: Configure your user identity:
|
|
822
|
+
|
|
823
|
+
```bash
|
|
824
|
+
git config --global user.name "Your Name"
|
|
825
|
+
git config --global user.email "your.email@example.com"
|
|
826
|
+
```
|
|
827
|
+
|
|
828
|
+
### Issue: SSL Certificate Errors
|
|
829
|
+
|
|
830
|
+
**Symptoms**: `SSL certificate problem: unable to get local issuer certificate`
|
|
831
|
+
|
|
832
|
+
**Solution**: This often occurs in corporate environments with proxy servers. Configure Git to use the system certificate store:
|
|
833
|
+
|
|
834
|
+
```bash
|
|
835
|
+
git config --global http.sslBackend schannel # Windows
|
|
836
|
+
git config --global http.sslBackend openssl # macOS/Linux
|
|
837
|
+
```
|
|
838
|
+
|
|
839
|
+
**Warning**: Do not disable SSL verification (`http.sslVerify false`) as this creates security vulnerabilities.
|
|
840
|
+
|
|
841
|
+
### Issue: Permission Denied (publickey) When Cloning
|
|
842
|
+
|
|
843
|
+
**Symptoms**: `Permission denied (publickey)` when cloning from GitHub/GitLab
|
|
844
|
+
|
|
845
|
+
**Solution**: SSH keys are not configured. Generate an SSH key and add it to your Git hosting service:
|
|
846
|
+
|
|
847
|
+
```bash
|
|
848
|
+
ssh-keygen -t ed25519 -C "your.email@example.com"
|
|
849
|
+
eval "$(ssh-agent -s)"
|
|
850
|
+
ssh-add ~/.ssh/id_ed25519
|
|
851
|
+
```
|
|
852
|
+
|
|
853
|
+
Then copy the public key to your Git hosting service:
|
|
854
|
+
|
|
855
|
+
```bash
|
|
856
|
+
cat ~/.ssh/id_ed25519.pub
|
|
857
|
+
```
|
|
858
|
+
|
|
859
|
+
### Issue: Git Commands Are Slow
|
|
860
|
+
|
|
861
|
+
**Symptoms**: Git operations (status, diff, log) are slow
|
|
862
|
+
|
|
863
|
+
**Solutions**:
|
|
864
|
+
|
|
865
|
+
- **Large repositories**: Enable Git's filesystem monitor:
|
|
866
|
+
|
|
867
|
+
```bash
|
|
868
|
+
git config --global core.fsmonitor true
|
|
869
|
+
```
|
|
870
|
+
|
|
871
|
+
- **Many files**: Enable Git's untracked cache:
|
|
872
|
+
|
|
873
|
+
```bash
|
|
874
|
+
git config --global core.untrackedCache true
|
|
875
|
+
```
|
|
876
|
+
|
|
877
|
+
- **Windows/WSL**: Store repositories on the native filesystem (Windows filesystem for Windows Git, Linux filesystem for WSL Git)
|
|
878
|
+
|
|
879
|
+
### Issue: "fatal: not a git repository"
|
|
880
|
+
|
|
881
|
+
**Symptoms**: Git commands fail with "fatal: not a git repository"
|
|
882
|
+
|
|
883
|
+
**Solution**: You are not in a Git repository directory. Either navigate to a repository or initialize one:
|
|
884
|
+
|
|
885
|
+
```bash
|
|
886
|
+
# Initialize a new repository
|
|
887
|
+
git init
|
|
888
|
+
|
|
889
|
+
# Or clone an existing repository
|
|
890
|
+
git clone https://github.com/user/repo.git
|
|
891
|
+
```
|
|
892
|
+
|
|
893
|
+
---
|
|
894
|
+
|
|
895
|
+
## References
|
|
896
|
+
|
|
897
|
+
- [Git Official Website](https://git-scm.com/)
|
|
898
|
+
- [Git Official Documentation](https://git-scm.com/doc)
|
|
899
|
+
- [Git Installation for macOS](https://git-scm.com/download/mac)
|
|
900
|
+
- [Git Installation for Windows](https://git-scm.com/download/win)
|
|
901
|
+
- [Git Installation for Linux](https://git-scm.com/download/linux)
|
|
902
|
+
- [Git for Windows Project](https://gitforwindows.org/)
|
|
903
|
+
- [Homebrew Git Formula](https://formulae.brew.sh/formula/git)
|
|
904
|
+
- [Chocolatey Git Package](https://community.chocolatey.org/packages/git)
|
|
905
|
+
- [Ubuntu Git PPA](https://launchpad.net/~git-core/+archive/ubuntu/ppa)
|
|
906
|
+
- [Microsoft Learn: Git on WSL](https://learn.microsoft.com/en-us/windows/wsl/tutorials/wsl-git)
|
|
907
|
+
- [Amazon Linux Documentation](https://docs.aws.amazon.com/linux/)
|