@fredlackey/devutils 0.0.17 → 0.0.19

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.
Files changed (331) hide show
  1. package/README.md +32 -150
  2. package/package.json +5 -82
  3. package/bin/dev.js +0 -16
  4. package/files/README.md +0 -0
  5. package/files/claude/.claude/commands/setup-context.md +0 -3
  6. package/files/monorepos/_archive/README.md +0 -36
  7. package/files/monorepos/_legacy/README.md +0 -36
  8. package/files/monorepos/ai-docs/README.md +0 -33
  9. package/files/monorepos/apps/README.md +0 -24
  10. package/files/monorepos/docs/README.md +0 -40
  11. package/files/monorepos/packages/README.md +0 -25
  12. package/files/monorepos/research/README.md +0 -29
  13. package/files/monorepos/scripts/README.md +0 -24
  14. package/src/cli.js +0 -72
  15. package/src/commands/README.md +0 -41
  16. package/src/commands/configure.js +0 -199
  17. package/src/commands/identity.js +0 -1630
  18. package/src/commands/ignore.js +0 -247
  19. package/src/commands/install.js +0 -526
  20. package/src/commands/setup.js +0 -246
  21. package/src/commands/status.js +0 -223
  22. package/src/commands/update.js +0 -142
  23. package/src/commands/version.js +0 -100
  24. package/src/completion.js +0 -284
  25. package/src/constants.js +0 -45
  26. package/src/ignore/claude-code.txt +0 -10
  27. package/src/ignore/docker.txt +0 -18
  28. package/src/ignore/linux.txt +0 -23
  29. package/src/ignore/macos.txt +0 -36
  30. package/src/ignore/node.txt +0 -55
  31. package/src/ignore/terraform.txt +0 -37
  32. package/src/ignore/vscode.txt +0 -18
  33. package/src/ignore/windows.txt +0 -35
  34. package/src/index.js +0 -0
  35. package/src/installs/README.md +0 -399
  36. package/src/installs/adobe-creative-cloud.js +0 -546
  37. package/src/installs/adobe-creative-cloud.md +0 -605
  38. package/src/installs/appcleaner.js +0 -321
  39. package/src/installs/appcleaner.md +0 -699
  40. package/src/installs/apt-transport-https.js +0 -390
  41. package/src/installs/apt-transport-https.md +0 -678
  42. package/src/installs/atomicparsley.js +0 -642
  43. package/src/installs/atomicparsley.md +0 -795
  44. package/src/installs/aws-cli.js +0 -797
  45. package/src/installs/aws-cli.md +0 -727
  46. package/src/installs/balena-etcher.js +0 -710
  47. package/src/installs/balena-etcher.md +0 -761
  48. package/src/installs/bambu-studio.js +0 -1143
  49. package/src/installs/bambu-studio.md +0 -780
  50. package/src/installs/bash-completion.js +0 -575
  51. package/src/installs/bash-completion.md +0 -833
  52. package/src/installs/bash.js +0 -417
  53. package/src/installs/bash.md +0 -993
  54. package/src/installs/beyond-compare.js +0 -603
  55. package/src/installs/beyond-compare.md +0 -813
  56. package/src/installs/brave-browser.js +0 -968
  57. package/src/installs/brave-browser.md +0 -650
  58. package/src/installs/build-essential.js +0 -529
  59. package/src/installs/build-essential.md +0 -977
  60. package/src/installs/ca-certificates.js +0 -618
  61. package/src/installs/ca-certificates.md +0 -937
  62. package/src/installs/caffeine.js +0 -508
  63. package/src/installs/caffeine.md +0 -839
  64. package/src/installs/camtasia.js +0 -596
  65. package/src/installs/camtasia.md +0 -762
  66. package/src/installs/chatgpt.js +0 -476
  67. package/src/installs/chatgpt.md +0 -814
  68. package/src/installs/chocolatey.js +0 -456
  69. package/src/installs/chocolatey.md +0 -661
  70. package/src/installs/chrome-canary.js +0 -419
  71. package/src/installs/chrome-canary.md +0 -641
  72. package/src/installs/chromium.js +0 -667
  73. package/src/installs/chromium.md +0 -838
  74. package/src/installs/claude-code.js +0 -576
  75. package/src/installs/claude-code.md +0 -1173
  76. package/src/installs/cloudflare-warp.js +0 -900
  77. package/src/installs/cloudflare-warp.md +0 -1047
  78. package/src/installs/comet-browser.js +0 -588
  79. package/src/installs/comet-browser.md +0 -731
  80. package/src/installs/curl.js +0 -379
  81. package/src/installs/curl.md +0 -714
  82. package/src/installs/cursor.js +0 -579
  83. package/src/installs/cursor.md +0 -970
  84. package/src/installs/dbeaver.js +0 -924
  85. package/src/installs/dbeaver.md +0 -939
  86. package/src/installs/dbschema.js +0 -692
  87. package/src/installs/dbschema.md +0 -925
  88. package/src/installs/dependencies.md +0 -453
  89. package/src/installs/development-tools.js +0 -600
  90. package/src/installs/development-tools.md +0 -977
  91. package/src/installs/docker.js +0 -1029
  92. package/src/installs/docker.md +0 -1109
  93. package/src/installs/drawio.js +0 -1019
  94. package/src/installs/drawio.md +0 -795
  95. package/src/installs/elmedia-player.js +0 -347
  96. package/src/installs/elmedia-player.md +0 -556
  97. package/src/installs/ffmpeg.js +0 -889
  98. package/src/installs/ffmpeg.md +0 -852
  99. package/src/installs/file.js +0 -464
  100. package/src/installs/file.md +0 -987
  101. package/src/installs/gemini-cli.js +0 -811
  102. package/src/installs/gemini-cli.md +0 -1153
  103. package/src/installs/git.js +0 -400
  104. package/src/installs/git.md +0 -907
  105. package/src/installs/gitego.js +0 -949
  106. package/src/installs/gitego.md +0 -1172
  107. package/src/installs/go.js +0 -931
  108. package/src/installs/go.md +0 -958
  109. package/src/installs/google-antigravity.js +0 -913
  110. package/src/installs/google-antigravity.md +0 -1075
  111. package/src/installs/google-chrome.js +0 -833
  112. package/src/installs/google-chrome.md +0 -862
  113. package/src/installs/gpg.js +0 -480
  114. package/src/installs/gpg.md +0 -1056
  115. package/src/installs/homebrew.js +0 -1033
  116. package/src/installs/homebrew.md +0 -988
  117. package/src/installs/imageoptim.js +0 -968
  118. package/src/installs/imageoptim.md +0 -1119
  119. package/src/installs/installers.json +0 -4032
  120. package/src/installs/installers.json.tmp +0 -3953
  121. package/src/installs/jq.js +0 -400
  122. package/src/installs/jq.md +0 -809
  123. package/src/installs/keyboard-maestro.js +0 -719
  124. package/src/installs/keyboard-maestro.md +0 -825
  125. package/src/installs/kiro.js +0 -864
  126. package/src/installs/kiro.md +0 -1015
  127. package/src/installs/latex.js +0 -789
  128. package/src/installs/latex.md +0 -1095
  129. package/src/installs/lftp.js +0 -356
  130. package/src/installs/lftp.md +0 -907
  131. package/src/installs/lsb-release.js +0 -346
  132. package/src/installs/lsb-release.md +0 -814
  133. package/src/installs/messenger.js +0 -847
  134. package/src/installs/messenger.md +0 -900
  135. package/src/installs/microsoft-office.js +0 -568
  136. package/src/installs/microsoft-office.md +0 -760
  137. package/src/installs/microsoft-teams.js +0 -801
  138. package/src/installs/microsoft-teams.md +0 -886
  139. package/src/installs/moom.js +0 -326
  140. package/src/installs/moom.md +0 -570
  141. package/src/installs/node.js +0 -904
  142. package/src/installs/node.md +0 -1153
  143. package/src/installs/nordpass.js +0 -716
  144. package/src/installs/nordpass.md +0 -921
  145. package/src/installs/nordvpn.js +0 -892
  146. package/src/installs/nordvpn.md +0 -1052
  147. package/src/installs/nvm.js +0 -995
  148. package/src/installs/nvm.md +0 -1057
  149. package/src/installs/ohmyzsh.js +0 -529
  150. package/src/installs/ohmyzsh.md +0 -1094
  151. package/src/installs/openssh.js +0 -804
  152. package/src/installs/openssh.md +0 -1056
  153. package/src/installs/pandoc.js +0 -662
  154. package/src/installs/pandoc.md +0 -1036
  155. package/src/installs/parallels-desktop.js +0 -431
  156. package/src/installs/parallels-desktop.md +0 -446
  157. package/src/installs/pinentry.js +0 -510
  158. package/src/installs/pinentry.md +0 -1142
  159. package/src/installs/pngyu.js +0 -869
  160. package/src/installs/pngyu.md +0 -896
  161. package/src/installs/postman.js +0 -799
  162. package/src/installs/postman.md +0 -940
  163. package/src/installs/procps.js +0 -425
  164. package/src/installs/procps.md +0 -851
  165. package/src/installs/safari-tech-preview.js +0 -374
  166. package/src/installs/safari-tech-preview.md +0 -533
  167. package/src/installs/sfnt2woff.js +0 -658
  168. package/src/installs/sfnt2woff.md +0 -795
  169. package/src/installs/shellcheck.js +0 -481
  170. package/src/installs/shellcheck.md +0 -1005
  171. package/src/installs/slack.js +0 -741
  172. package/src/installs/slack.md +0 -865
  173. package/src/installs/snagit.js +0 -585
  174. package/src/installs/snagit.md +0 -844
  175. package/src/installs/software-properties-common.js +0 -372
  176. package/src/installs/software-properties-common.md +0 -805
  177. package/src/installs/spotify.js +0 -877
  178. package/src/installs/spotify.md +0 -901
  179. package/src/installs/studio-3t.js +0 -823
  180. package/src/installs/studio-3t.md +0 -918
  181. package/src/installs/sublime-text.js +0 -804
  182. package/src/installs/sublime-text.md +0 -914
  183. package/src/installs/superwhisper.js +0 -706
  184. package/src/installs/superwhisper.md +0 -630
  185. package/src/installs/tailscale.js +0 -745
  186. package/src/installs/tailscale.md +0 -1100
  187. package/src/installs/tar.js +0 -389
  188. package/src/installs/tar.md +0 -946
  189. package/src/installs/termius.js +0 -798
  190. package/src/installs/termius.md +0 -844
  191. package/src/installs/terraform.js +0 -779
  192. package/src/installs/terraform.md +0 -899
  193. package/src/installs/tfenv.js +0 -778
  194. package/src/installs/tfenv.md +0 -1091
  195. package/src/installs/tidal.js +0 -771
  196. package/src/installs/tidal.md +0 -864
  197. package/src/installs/tmux.js +0 -346
  198. package/src/installs/tmux.md +0 -1030
  199. package/src/installs/tree.js +0 -411
  200. package/src/installs/tree.md +0 -833
  201. package/src/installs/unzip.js +0 -460
  202. package/src/installs/unzip.md +0 -879
  203. package/src/installs/vim.js +0 -421
  204. package/src/installs/vim.md +0 -1040
  205. package/src/installs/vlc.js +0 -821
  206. package/src/installs/vlc.md +0 -927
  207. package/src/installs/vscode.js +0 -843
  208. package/src/installs/vscode.md +0 -1002
  209. package/src/installs/wget.js +0 -420
  210. package/src/installs/wget.md +0 -791
  211. package/src/installs/whatsapp.js +0 -729
  212. package/src/installs/whatsapp.md +0 -854
  213. package/src/installs/winpty.js +0 -352
  214. package/src/installs/winpty.md +0 -620
  215. package/src/installs/woff2.js +0 -553
  216. package/src/installs/woff2.md +0 -977
  217. package/src/installs/wsl.js +0 -572
  218. package/src/installs/wsl.md +0 -699
  219. package/src/installs/xcode-clt.js +0 -520
  220. package/src/installs/xcode-clt.md +0 -351
  221. package/src/installs/xcode.js +0 -560
  222. package/src/installs/xcode.md +0 -573
  223. package/src/installs/yarn.js +0 -824
  224. package/src/installs/yarn.md +0 -1074
  225. package/src/installs/yq.js +0 -654
  226. package/src/installs/yq.md +0 -944
  227. package/src/installs/yt-dlp.js +0 -701
  228. package/src/installs/yt-dlp.md +0 -946
  229. package/src/installs/yum-utils.js +0 -297
  230. package/src/installs/yum-utils.md +0 -648
  231. package/src/installs/zoom.js +0 -759
  232. package/src/installs/zoom.md +0 -884
  233. package/src/installs/zsh.js +0 -455
  234. package/src/installs/zsh.md +0 -1008
  235. package/src/scripts/README.md +0 -617
  236. package/src/scripts/STATUS.md +0 -208
  237. package/src/scripts/afk.js +0 -411
  238. package/src/scripts/backup-all.js +0 -746
  239. package/src/scripts/backup-source.js +0 -727
  240. package/src/scripts/brewd.js +0 -389
  241. package/src/scripts/brewi.js +0 -520
  242. package/src/scripts/brewr.js +0 -527
  243. package/src/scripts/brews.js +0 -477
  244. package/src/scripts/brewu.js +0 -504
  245. package/src/scripts/c.js +0 -201
  246. package/src/scripts/ccurl.js +0 -341
  247. package/src/scripts/certbot-crontab-init.js +0 -504
  248. package/src/scripts/certbot-init.js +0 -657
  249. package/src/scripts/ch.js +0 -355
  250. package/src/scripts/claude-danger.js +0 -268
  251. package/src/scripts/clean-dev.js +0 -435
  252. package/src/scripts/clear-dns-cache.js +0 -541
  253. package/src/scripts/clone.js +0 -435
  254. package/src/scripts/code-all.js +0 -437
  255. package/src/scripts/count-files.js +0 -211
  256. package/src/scripts/count-folders.js +0 -211
  257. package/src/scripts/count.js +0 -264
  258. package/src/scripts/d.js +0 -219
  259. package/src/scripts/datauri.js +0 -389
  260. package/src/scripts/delete-files.js +0 -380
  261. package/src/scripts/docker-clean.js +0 -426
  262. package/src/scripts/dp.js +0 -442
  263. package/src/scripts/e.js +0 -390
  264. package/src/scripts/empty-trash.js +0 -513
  265. package/src/scripts/evm.js +0 -444
  266. package/src/scripts/fetch-github-repos.js +0 -456
  267. package/src/scripts/get-channel.js +0 -345
  268. package/src/scripts/get-course.js +0 -399
  269. package/src/scripts/get-dependencies.js +0 -306
  270. package/src/scripts/get-folder.js +0 -799
  271. package/src/scripts/get-tunes.js +0 -426
  272. package/src/scripts/get-video.js +0 -367
  273. package/src/scripts/git-backup.js +0 -577
  274. package/src/scripts/git-clone.js +0 -493
  275. package/src/scripts/git-pup.js +0 -319
  276. package/src/scripts/git-push.js +0 -396
  277. package/src/scripts/h.js +0 -622
  278. package/src/scripts/hide-desktop-icons.js +0 -499
  279. package/src/scripts/hide-hidden-files.js +0 -538
  280. package/src/scripts/install-dependencies-from.js +0 -456
  281. package/src/scripts/ips.js +0 -663
  282. package/src/scripts/iso.js +0 -370
  283. package/src/scripts/killni.js +0 -577
  284. package/src/scripts/ll.js +0 -467
  285. package/src/scripts/local-ip.js +0 -325
  286. package/src/scripts/m.js +0 -524
  287. package/src/scripts/map.js +0 -309
  288. package/src/scripts/mkd.js +0 -351
  289. package/src/scripts/ncu-update-all.js +0 -457
  290. package/src/scripts/nginx-init.js +0 -718
  291. package/src/scripts/npmi.js +0 -382
  292. package/src/scripts/o.js +0 -511
  293. package/src/scripts/org-by-date.js +0 -338
  294. package/src/scripts/p.js +0 -224
  295. package/src/scripts/packages.js +0 -330
  296. package/src/scripts/path.js +0 -225
  297. package/src/scripts/ports.js +0 -597
  298. package/src/scripts/q.js +0 -305
  299. package/src/scripts/refresh-files.js +0 -394
  300. package/src/scripts/remove-smaller-files.js +0 -516
  301. package/src/scripts/rename-files-with-date.js +0 -533
  302. package/src/scripts/resize-image.js +0 -539
  303. package/src/scripts/rm-safe.js +0 -669
  304. package/src/scripts/s.js +0 -540
  305. package/src/scripts/set-git-public.js +0 -365
  306. package/src/scripts/show-desktop-icons.js +0 -475
  307. package/src/scripts/show-hidden-files.js +0 -472
  308. package/src/scripts/tpa.js +0 -280
  309. package/src/scripts/tpo.js +0 -280
  310. package/src/scripts/u.js +0 -505
  311. package/src/scripts/vpush.js +0 -437
  312. package/src/scripts/y.js +0 -283
  313. package/src/utils/README.md +0 -95
  314. package/src/utils/common/apps.js +0 -143
  315. package/src/utils/common/display.js +0 -157
  316. package/src/utils/common/network.js +0 -185
  317. package/src/utils/common/os.js +0 -294
  318. package/src/utils/common/package-manager.js +0 -301
  319. package/src/utils/common/privileges.js +0 -138
  320. package/src/utils/common/shell.js +0 -216
  321. package/src/utils/macos/apps.js +0 -228
  322. package/src/utils/macos/brew.js +0 -315
  323. package/src/utils/ubuntu/apt.js +0 -307
  324. package/src/utils/ubuntu/desktop.js +0 -292
  325. package/src/utils/ubuntu/snap.js +0 -344
  326. package/src/utils/ubuntu/systemd.js +0 -286
  327. package/src/utils/windows/choco.js +0 -465
  328. package/src/utils/windows/env.js +0 -246
  329. package/src/utils/windows/registry.js +0 -269
  330. package/src/utils/windows/shell.js +0 -240
  331. package/src/utils/windows/winget.js +0 -489
@@ -1,907 +0,0 @@
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/)