ಎರಡು ತಿಂಗಳ ಅಭಿವೃದ್ಧಿಯ ನಂತರ, ವಿತರಿಸಿದ ಮೂಲ ನಿಯಂತ್ರಣ ವ್ಯವಸ್ಥೆ Git 2.35 ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡಲಾಗಿದೆ. Git ಅತ್ಯಂತ ಜನಪ್ರಿಯ, ವಿಶ್ವಾಸಾರ್ಹ ಮತ್ತು ಉನ್ನತ-ಕಾರ್ಯಕ್ಷಮತೆಯ ಆವೃತ್ತಿ ನಿಯಂತ್ರಣ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ, ಇದು ಶಾಖೆಯ ಮತ್ತು ವಿಲೀನದ ಆಧಾರದ ಮೇಲೆ ಹೊಂದಿಕೊಳ್ಳುವ ರೇಖಾತ್ಮಕವಲ್ಲದ ಅಭಿವೃದ್ಧಿ ಸಾಧನಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. ಇತಿಹಾಸದ ಸಮಗ್ರತೆ ಮತ್ತು ಹಿಂದಿನ ಬದಲಾವಣೆಗಳಿಗೆ ಪ್ರತಿರೋಧವನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು, ಪ್ರತಿ ಕಮಿಟ್ನಲ್ಲಿ ಸಂಪೂರ್ಣ ಹಿಂದಿನ ಇತಿಹಾಸದ ಸೂಚ್ಯ ಹ್ಯಾಶಿಂಗ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ; ಡೆವಲಪರ್ಗಳ ಡಿಜಿಟಲ್ ಸಹಿಗಳೊಂದಿಗೆ ವೈಯಕ್ತಿಕ ಟ್ಯಾಗ್ಗಳು ಮತ್ತು ಕಮಿಟ್ಗಳನ್ನು ಪ್ರಮಾಣೀಕರಿಸಲು ಸಹ ಸಾಧ್ಯವಿದೆ.
ಹಿಂದಿನ ಬಿಡುಗಡೆಗೆ ಹೋಲಿಸಿದರೆ, ಹೊಸ ಆವೃತ್ತಿಯು 93 ಡೆವಲಪರ್ಗಳ ಸಹಾಯದಿಂದ ಸಿದ್ಧಪಡಿಸಲಾದ 494 ಬದಲಾವಣೆಗಳನ್ನು ಒಳಗೊಂಡಿದೆ, ಅವರಲ್ಲಿ 35 ಮಂದಿ ಯೋಜನೆಗೆ ಹೊಸಬರು. ಪ್ರಮುಖ ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳು ಸೇರಿವೆ:
- Git ಆಬ್ಜೆಕ್ಟ್ಗಳಿಗೆ ಡಿಜಿಟಲ್ ಸಹಿ ಮಾಡಲು SSH ಕೀಗಳನ್ನು ಬಳಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ವಿಸ್ತರಿಸಲಾಗಿದೆ. ಬಹು ಕೀಗಳ ಸಿಂಧುತ್ವವನ್ನು ಪ್ರತ್ಯೇಕಿಸಲು, OpenSSH "valid-before" ಮತ್ತು "valid-after" ನಿರ್ದೇಶನಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಈ ನಿರ್ದೇಶನಗಳು ಡೆವಲಪರ್ನ ಕೀಯನ್ನು ತಿರುಗಿಸಿದ ನಂತರ ಸರಿಯಾದ ಸಹಿ ಸಂಸ್ಕರಣೆಯನ್ನು ಖಚಿತಪಡಿಸುತ್ತವೆ. ಹಿಂದೆ, ಹಳೆಯ ಮತ್ತು ಹೊಸ ಕೀಲಿಯೊಂದಿಗೆ ರಚಿಸಲಾದ ಸಹಿಗಳನ್ನು ಬೇರ್ಪಡಿಸುವಲ್ಲಿ ಸಮಸ್ಯೆ ಇತ್ತು: ಹಳೆಯ ಕೀಲಿಯನ್ನು ಅಳಿಸುವುದರಿಂದ ಅದರೊಂದಿಗೆ ರಚಿಸಲಾದ ಸಹಿಗಳ ಪರಿಶೀಲನೆಯನ್ನು ತಡೆಯುತ್ತದೆ, ಆದರೆ ಅದನ್ನು ಬಿಡುವುದರಿಂದ ಹಳೆಯ ಕೀಲಿಯೊಂದಿಗೆ ಹೊಸ ಸಹಿಗಳನ್ನು ರಚಿಸಲು ಅನುಮತಿಸುತ್ತದೆ, ಅದನ್ನು ಈಗಾಗಲೇ ಮತ್ತೊಂದು ಕೀಲಿಯಿಂದ ಬದಲಾಯಿಸಲಾಗಿದ್ದರೂ ಸಹ. valid-before ಮತ್ತು valid-after ಬಳಸಿ, ಸಹಿ ರಚನೆಯ ಸಮಯದ ಆಧಾರದ ಮೇಲೆ ನೀವು ಕೀಗಳ ಸಿಂಧುತ್ವವನ್ನು ಪ್ರತ್ಯೇಕಿಸಬಹುದು.
- ಸಂಘರ್ಷದ ಮಾಹಿತಿಯನ್ನು ವಿಲೀನಗೊಳಿಸಲು ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಮೋಡ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುವ merge.conflictStyle ಸೆಟ್ಟಿಂಗ್, ಈಗ "zdiff3" ಮೋಡ್ ಅನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ, ಇದು ಸಂಘರ್ಷದ ಆರಂಭದಲ್ಲಿ ಅಥವಾ ಕೊನೆಯಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಎಲ್ಲಾ ಪ್ರಮಾಣಿತ ಸಾಲುಗಳನ್ನು ಸಂಘರ್ಷದ ಪ್ರದೇಶದ ಹೊರಗೆ ಚಲಿಸುತ್ತದೆ, ಇದು ಮಾಹಿತಿಯ ಹೆಚ್ಚು ಸಾಂದ್ರೀಕೃತ ಪ್ರಸ್ತುತಿಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
- "git stash" ಆಜ್ಞೆಯು ಈಗ "--staged" ಮೋಡ್ ಅನ್ನು ಹೊಂದಿದೆ. ಈ ಮೋಡ್ ನಿಮಗೆ ಸ್ಟ್ಯಾಶ್ಗೆ ಸೇರಿಸಲಾದ ಬದಲಾವಣೆಗಳನ್ನು ಮಾತ್ರ ಸ್ಟ್ಯಾಶ್ ಮಾಡಲು ಅನುಮತಿಸುತ್ತದೆ, ಉದಾಹರಣೆಗೆ ನೀವು ಕೆಲವು ಸಂಕೀರ್ಣ ಬದಲಾವಣೆಗಳನ್ನು ತಾತ್ಕಾಲಿಕವಾಗಿ ಸ್ಥಗಿತಗೊಳಿಸಬೇಕಾದಾಗ ಈಗಾಗಲೇ ಇರುವದನ್ನು ಸೇರಿಸಲು ಮತ್ತು ನಂತರ ಉಳಿದವುಗಳೊಂದಿಗೆ ವ್ಯವಹರಿಸಲು. ಈ ಮೋಡ್ "git commit" ಆಜ್ಞೆಯನ್ನು ಹೋಲುತ್ತದೆ, ಇದು ಹಂತ ಹಂತವಾಗಿ ಮಾಡಿದ ಬದಲಾವಣೆಗಳನ್ನು ಮಾತ್ರ ಬರೆಯುತ್ತದೆ, ಆದರೆ ಹೊಸ commit ಅನ್ನು ರಚಿಸುವ ಬದಲು, "git stash --staged" ಫಲಿತಾಂಶವನ್ನು ತಾತ್ಕಾಲಿಕ ಸ್ಟ್ಯಾಶ್ ಪ್ರದೇಶಕ್ಕೆ ಉಳಿಸುತ್ತದೆ. ನಿಮಗೆ ಬದಲಾವಣೆಗಳು ಬೇಕಾದಾಗ, ನೀವು ಅವುಗಳನ್ನು "git stash pop" ನೊಂದಿಗೆ ಮತ್ತೆ ಪಾಪ್ ಮಾಡಬಹುದು.
- "git log" ಆಜ್ಞೆಗೆ "--format=%(describe)" ಎಂಬ ಹೊಸ ಸ್ವರೂಪ ನಿರ್ದಿಷ್ಟಕಾರಕವನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದು "git log" ನ ಔಟ್ಪುಟ್ ಅನ್ನು "git describe" ಆಜ್ಞೆಯ ಔಟ್ಪುಟ್ನೊಂದಿಗೆ ಸಂಯೋಜಿಸಲು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. "git describe" ಗಾಗಿ ನಿಯತಾಂಕಗಳನ್ನು ನಿರ್ದಿಷ್ಟಕಾರಕದೊಳಗೆ ನೇರವಾಗಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿದೆ ("--format=%(describe:match=") ,ಹೊರಗಿಡಿ= )"), ಇದು ಸಂಕ್ಷಿಪ್ತ ಟ್ಯಾಗ್ಗಳನ್ನು ಸಹ ಒಳಗೊಂಡಿರಬಹುದು ("—format=%(describe:tags= )") ಮತ್ತು ವಸ್ತುಗಳನ್ನು ಗುರುತಿಸಲು ಹೆಕ್ಸಾಡೆಸಿಮಲ್ ಅಕ್ಷರಗಳ ಸಂಖ್ಯೆಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ ("—format=%(describe:abbrev= )"). ಉದಾಹರಣೆಗೆ, ಬಿಡುಗಡೆ ಅಭ್ಯರ್ಥಿ ಲೇಬಲ್ ಹೊಂದಿರದ ಟ್ಯಾಗ್ಗಳ ಕೊನೆಯ 8 ಕಮಿಟ್ಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು ಮತ್ತು 8-ಅಕ್ಷರ ಐಡಿಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು, ನೀವು ಈ ಆಜ್ಞೆಯನ್ನು ಬಳಸಬಹುದು: $ git log -8 --format='%(describe:exclude=*-rc*,abbrev=13)' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1-643-g2b95d94b056ab v2.34.1-642-gb56bd95bbc8f7 v2.34.1-203-gffb9f2980902d v2.34.1-640-gdf3c41adeb212 v2.34.1-639-g36b65715a4132
- user.signingKey ಸೆಟ್ಟಿಂಗ್ ಈಗ "ssh-" ಪ್ರಕಾರ ಮತ್ತು ಕೀಗೆ ಪೂರ್ಣ ಫೈಲ್ ಮಾರ್ಗಕ್ಕೆ ಸೀಮಿತವಾಗಿರದೆ, ಹೊಸ ಕೀ ಪ್ರಕಾರಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ಪರ್ಯಾಯ ಪ್ರಕಾರಗಳನ್ನು "key::" ಪೂರ್ವಪ್ರತ್ಯಯವನ್ನು ಬಳಸಿಕೊಂಡು ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿದೆ, ಉದಾಹರಣೆಗೆ, ECDSA ಕೀಗಳಿಗಾಗಿ "key::ecdsa-sha2-nistp256".
- "--ಹಿಸ್ಟೋಗ್ರಾಮ್" ಮೋಡ್ನಲ್ಲಿ ಚೇಂಜ್ಲಾಗ್ ಅನ್ನು ರಚಿಸುವ ವೇಗವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಹೆಚ್ಚಿಸಲಾಗಿದೆ, ಹಾಗೆಯೇ ಬಣ್ಣ ವ್ಯತ್ಯಾಸದಲ್ಲಿನ ಅಂತರಗಳನ್ನು ಹೈಲೈಟ್ ಮಾಡುವುದನ್ನು ನಿಯಂತ್ರಿಸುವ "--color-moved-ws" ಆಯ್ಕೆಯನ್ನು ಬಳಸುವಾಗ.
- ವಿಲೀನ ಸಂಘರ್ಷಗಳನ್ನು ವಿಶ್ಲೇಷಿಸುವಾಗ, ವ್ಯತ್ಯಾಸಗಳನ್ನು ವೀಕ್ಷಿಸುವಾಗ ಅಥವಾ ಹುಡುಕಾಟವನ್ನು ನಿರ್ವಹಿಸುವಾಗ Vim ಗೆ ನಿಖರವಾದ ಜಂಪ್ ಮಾಹಿತಿಯನ್ನು ಒದಗಿಸಲು ಬಳಸಲಾಗುವ "git jump" ಆಜ್ಞೆಯು ಈಗ ವಿಲೀನ ಸಂಘರ್ಷಗಳ ವ್ಯಾಪ್ತಿಯನ್ನು ಸಂಕುಚಿತಗೊಳಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು "foo" ಡೈರೆಕ್ಟರಿಗೆ ಸೀಮಿತಗೊಳಿಸಲು, ನೀವು "git jump merge - foo" ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು ಮತ್ತು "ಡಾಕ್ಯುಮೆಂಟೇಶನ್" ಡೈರೆಕ್ಟರಿಯನ್ನು ಪ್ರಕ್ರಿಯೆಯಿಂದ ಹೊರಗಿಡಲು, ನೀವು "git jump merge - ':^Documentation'" ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು.
- ವಸ್ತುಗಳ ಗಾತ್ರವನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಮೌಲ್ಯಗಳಿಗೆ "ಅನ್ಸೈನ್ಡ್ ಲಾಂಗ್" ಬದಲಿಗೆ "size_t" ಪ್ರಕಾರದ ಬಳಕೆಯನ್ನು ಪ್ರಮಾಣೀಕರಿಸುವ ಕೆಲಸವನ್ನು ಕೈಗೊಳ್ಳಲಾಗಿದೆ, ಇದು LLP64 ಡೇಟಾ ಮಾದರಿಯನ್ನು ಹೊಂದಿರುವ ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗಳು ಸೇರಿದಂತೆ ಎಲ್ಲಾ ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗಳಲ್ಲಿ 4 GB ಗಿಂತ ದೊಡ್ಡದಾದ ಫೈಲ್ಗಳಿಗೆ "ಕ್ಲೀನ್" ಮತ್ತು "ಸ್ಮಡ್ಜ್" ಫಿಲ್ಟರ್ಗಳನ್ನು ಅನ್ವಯಿಸಲು ಸಾಧ್ಯವಾಗಿಸಿದೆ, ಅಲ್ಲಿ "ಅನ್ಸೈನ್ಡ್ ಲಾಂಗ್" ಪ್ರಕಾರವು 4 ಬೈಟ್ಗಳಿಗೆ ಸೀಮಿತವಾಗಿದೆ.
- "git am" ಆಜ್ಞೆಯು ಈಗ "--empty=(stop|drop|keep)" ಆಯ್ಕೆಯನ್ನು ಹೊಂದಿದೆ. ಮೇಲ್ಬಾಕ್ಸ್ನಿಂದ ಪ್ಯಾಚ್ಗಳನ್ನು ಪಾರ್ಸ್ ಮಾಡುವಾಗ ಪ್ಯಾಚ್ಗಳನ್ನು ಹೊಂದಿರದ ಖಾಲಿ ಇಮೇಲ್ಗಳ ನಡವಳಿಕೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ಇದು ನಿಮ್ಮನ್ನು ಅನುಮತಿಸುತ್ತದೆ. "stop" ಮೌಲ್ಯವು ಸಂಪೂರ್ಣ ಪ್ಯಾಚ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಕೊನೆಗೊಳಿಸುತ್ತದೆ, "drop" ಖಾಲಿ ಪ್ಯಾಚ್ ಅನ್ನು ಬಿಟ್ಟುಬಿಡುತ್ತದೆ ಮತ್ತು "keep" ಖಾಲಿ ಕಮಿಟ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ.
- git reset, git diff, git blame, git fetch, git pull, ಮತ್ತು git ls-files ಆಜ್ಞೆಗಳು ಈಗ ಸ್ಪಾರ್ಸ್ ಸೂಚ್ಯಂಕಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತವೆ, ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸುತ್ತವೆ ಮತ್ತು ಸ್ಪಾರ್ಸ್-ಚೆಕ್ಔಟ್ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸುವ ರೆಪೊಸಿಟರಿಗಳಲ್ಲಿ ಜಾಗವನ್ನು ಉಳಿಸುತ್ತವೆ.
- 'git sparse-checkout init' ಆಜ್ಞೆಯನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದ್ದು, ಬದಲಿಗೆ 'git sparse-checkout set' ಅನ್ನು ಬಳಸಬೇಕು.
- ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಶಾಖೆಗಳು ಮತ್ತು ಟ್ಯಾಗ್ಗಳಂತಹ ಉಲ್ಲೇಖಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು ಹೊಸ "ರಿಫ್ಟೇಬಲ್" ಬ್ಯಾಕೆಂಡ್ನ ಆರಂಭಿಕ ಅನುಷ್ಠಾನವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಹೊಸ ಬ್ಯಾಕೆಂಡ್ JGit ಯೋಜನೆಯಿಂದ ಬಳಸಲ್ಪಟ್ಟಂತೆ ಬ್ಲಾಕ್ ಸಂಗ್ರಹಣೆಯನ್ನು ಬಳಸುತ್ತದೆ ಮತ್ತು ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಉಲ್ಲೇಖಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು ಅತ್ಯುತ್ತಮವಾಗಿಸಲಾಗಿದೆ. ಬ್ಯಾಕೆಂಡ್ ಇನ್ನೂ ರೆಫ್ಸ್ ಸಿಸ್ಟಮ್ನೊಂದಿಗೆ ಸಂಯೋಜಿಸಲ್ಪಟ್ಟಿಲ್ಲ ಮತ್ತು ಪ್ರಾಯೋಗಿಕ ಬಳಕೆಗೆ ಸಿದ್ಧವಾಗಿಲ್ಲ.
- "git grep" ಆಜ್ಞೆಯ ಬಣ್ಣದ ಪ್ಯಾಲೆಟ್ ಅನ್ನು GNU grep ಉಪಯುಕ್ತತೆಗೆ ಹೊಂದಿಕೆಯಾಗುವಂತೆ ಹೊಂದಿಸಲಾಗಿದೆ.
ಮೂಲ: opennet.ru
