ToCode
Kanalga Telegramโda oโtish
ืืืคืื ืงืฆืจืื ืืืชืื ืชืื ืืืช ืื ืื ืคืจืง
Ko'proq ko'rsatish1 420
Obunachilar
Ma'lumot yo'q24 soatlar
+27 kunlar
-230 kunlar
Postlar arxiv
1 420
# ืืื ืื ืื ืืกืืื?
ืืจืืข ืกืืืืช ืืจืืืืืช ืืืืื ืื ืื ื ืืืชืืื ืงืื ืืกืืื:
1. ืื ืื ื ืขืืืื ืื ืืกืคืืง ืืืืจืื ืืช ืืืื ืืืืืื ืื ืืืขืื ืืื ืืืชืื ืคืืชืจืื ืืืื ืื.
2. ืื ืื ื ืขืืืื ืื ืืืื ืื ืืกืคืืง ืืช ืืืขืื ืืื ืืืชืืงื ื Use Cases ืืืืืชืืื ืฉืื, ืืืชืขืงืฉืื ืขื ืืืืืฉ ืฉืืชืืืื ืขื ืืงืจื ืงืฆื ืฉืืฃ ืคืขื ืื ืืงืจื.
3. ืืืื ืืืืืื ืขืืืื ืื ืืกืคืืง ืืืื ืืื ืฉื ืืื ืืืชืื ืคืืชืจืื ืืืื ืื.
4. ืืืขืื ืืืืช ืืกืืืืช ืืืืจืฉืช ืืืคืื ืืืื ืกืืฃ ืืงืจื ืงืฆื.
ืืฉืืชื ืืืืจืื ืืงืื ืืืจื ืืฆื ืฉื ื ืื ืฉื ื ืืชื ืืงืืืื ืืืืื ืืช ืืชืงื ืงืื ืืกืืื ืฉื ืืชื ืืืื ืฉืืืฉืช ืืกืืืืช ืืจืืฉืื ืืช. ืื ืื ืื ื ืืืืจ ืืช ืืืฉืช ื "ืขืืื ืื ืชืืืข" ืฉืืจืื ืื ืฉืื ืืืืฉืืื ืืืคื ืงืื ืืกืืื, ืืื ืื ืืกืืื ืืืชื. ืฉืืืฉ ืืชืื ืืจืืข ืกืืืืช ืืกืืืื ืื ืจืื ืืืจ ืื ืจืืืื ืืืืช ืืงืื ืฉื ืืชื ืืคื ื ืฉื ื. ืืืื ืืืื ืืืืืช ืืืืื ืืช ืืืื ืืคืฉื ืืืชื.
1 420
# ืืืืคืกืงืจืืคื ืืืืื ืืืื ืืฉืืืืฉ ื Function Overloading
ืคืืฆ'ืจ Function Overloading ืฉื ืืืืคืกืงืจืืคื ืืื ืืืื ืืืืืช ืืืฉ ืืืฆืื - ืืื ืืื ืืืื ืืืืื ืืคื ืืืืคืืกืื ืฉื ืืคืจืืืจืื ืืืื ืงืืืคืืืฆืื ืืืืื ืืืจืกื ืฉื ืคืื ืงืฆืื ืืชืืืื ื ืืืืคืขืื ืืืชื, ืืืงืื ืืืืจืื ืืืชื ื ืืืชืื ืืืจืกื ืืืืืช ืฉื ืืคืื ืงืฆืื ืืกืื ืื JavaScript. ืืื ืืืจืืช ืืืืืืฉ ืืงืฆืช ืืืงื ืืืกืจ ืฉืื, ืืื ืขืืืื ืืืื ืืขืืืจ ืื ื ืืืืื ืืืืืชืืื ืืืชืื ืคืื ืงืฆืืืช ืขืืจ ืฉืืืื ืืืฃ ืืืคืขืื. ืื ืจืง ื ืงืคืื ืืขืืื ื ืืื.
## ืื ืื ืื ื ืืื ืื
ืื ื ืจืืฆื ืืืชืื ืคืื ืงืฆืื ืืฉื
css ืฉืืงืืืช ืืืื ื DOM ืืชืืจ ืคืจืืืจ ืจืืฉืื, ืืขืืฉืื ืืฉ ืฉืชื ืืคืฉืจืืืืช:
1. ืืคืจืืืจ ืืฉื ื ืืืื ืืืืืช ืืืคืืื CSS, ืืื ืืคืจืืืจ ืืฉืืืฉื ืืืื ืืขืจื ืฉื ืืืชื ืืืคืืื.
2. ืืคืจืืืจ ืืฉื ื ืืืื ืืืืืช ืืืืืงื, ืฉืืืคืชืืืช ืื ืืืื ืืืคืืื ื CSS ืืืขืจืืื ืืืื ืืขืจืืื ืฉืืชืืืืื ืืื.
ืืืืืื ืืืื ืืืคืขืื ืืช ืืคืื ืงืฆืื ืืฆืืจืืช ืืืืืช ืฉืืชืงืืคืื:
const el = document.querySelector('h1')!;
css(el, 'fontSize', '16px');
css(el, { background: 'red', padding: '10px' });
ืืื ืืคืขืืืช ืืืื ืื ืืชืงืืคืื:
// foo is not a valid CSS attribute name
css(el, 'foo', 'bar');
// 17 is not a valid value for 'background'
css(el, 'background', 17);
// no need for the third parameter
css(el, { background: 'red' }, 'red')
## ืืืืืฉ ืืคืื ืงืฆืื
ืืืื ืฉ css ืฆืจืืื ืืชืืื ืืฉืชื ืืชืืืืช, ืื ื ืืขืืืฃ ืืืชืื ืคืื ืงืฆืืืช ืขืืจ (ืื ืคืื ืงืฆืืืช ืขืืจ ืื ืืฉ ืฆืืจื) ืฉืืืืฉื ืื ืืชืืื ืื ืคืจื. ืืืงืจื ืฉืื ื ืคืื ืงืฆืืืช ืขืืจ ืืืช ืชืกืคืืง, ืื ืืืื ืงื ืืจืืืช ืืื ืืชืจืื ืืช ืืคืืืจืื ืืืืชืืื ืฉื ืืืคืืื ืืืื ืืืชืืืช ืืืืืืงื. ืืื ืื ื ืืชืืื ืืืชืืืช ืืคืื ืงืฆืื ืฉืืงืืืช ืืืื ื ืืืืืืงื |CSS ืืืขืืื ืช ืืช ืื ืืืืจืืช ืืขืืฆืื:
function cssSetAttributes(el: HTMLElement, css: Partial<CSSStyleDeclaration>) {
Object.assign(el.style, css);
}
ืขืืฉืื ืื ืื ื ืืืื ืื ืืื ืืช ืืช ืคืื ืงืฆืืืช ื Dispatch - ืืคืื ืงืฆืื ืฉืืจืืืช ืืช ืื ืืืชืืืืช ืืฆืจืืื ืืืคืขืื ืืช ืืืืืืฉ ืืืชืืื. ืืืื ืฉืื ืื ื ืื ืืืืขืื ืืจื ืืืื ืืชืืื ืืืขื ื, ืืคืจืืืจืื ืฉื ืคืื ืงืฆืื ืื ืืืืืื ืืงืื ืกืืืื ืฉืื ืื ืฉื ืขืจืืื ืืืื ืืืจื ืืื ืืืื ืงืฉื ืืื ืืืขืื ืืืชืื ืื ืืืืจืืช ืืืคืืกืื ืืืืืช. ืืขืฆื ืืืฉืืื ืืืืืื ืฉืื ืืคืื ืงืฆืื css ืืื ืืืืืช ืืืืื ืืชืืื ืืืขืชื ืืืืคืขืื ืืช cssSetAttributes ืขื ืืคืจืืืจืื ืฉืืชืืืืื ืืืืชื ืืชืืื. ืื ื ืจืื ืืื:
function css<T extends keyof CSSStyleDeclaration>(el: HTMLElement, attr: T, value: CSSStyleDeclaration[T]): void;
function css(el: HTMLElement, css: Partial<CSSStyleDeclaration>): void;
function css(el: HTMLElement, cssOrAttr: any, value?: any) {
if (value) {
cssSetAttributes(el, { [cssOrAttr]: value });
} else {
cssSetAttributes(el, cssOrAttr);
}
}
ืืืืงืช ืชืคืงืืืื ืืจืืจื ืืื ืคืื ืงืฆืืืช ื dispatch (ืืืช ืฉืื ืืืชืืืืช ืืชื ืงืืืช ืืืื, ืืืื ืฆืจืืื ืืืืืื ืื ืืขืฉืืช) ืืืื ืืืืืืฉ ืื ืืืืืืฉืื ืืฉืื ืื, ืืื ืืืคืชื ืืืชืืืช Function Overloading ืืขืื ืืืืืคืกืงืจืืคื.
ืืืืื ืื ืืจืืืช ืืช ืืงืื ืืืื ืืคืขืืื ืืืฉืืง ืืืชื ืืงืืืคื ืืงืืฉืืจ: https://codepen.io/ynonp/pen/zYLONxe?editors=1010 ืื ืืืฉ ืืื ืืืืืข:
<iframe height="300" style="width: 100%;" scrolling="no" title="Untitled" src="https://codepen.io/ynonp/embed/zYLONxe?default-tab=html%2Cresult" frameborder="no" loading="lazy" allowtransparency="true" allowfullscreen="true">
See the Pen <a href="https://codepen.io/ynonp/pen/zYLONxe">
Untitled</a> by Ynon Perek (<a href="https://codepen.io/ynonp">@ynonp</a>)
on <a href="https://codepen.io">CodePen</a>.
</iframe>1 420
# ืืืื ืืืืชื: ืืคืงืืื readarray ื bash
ื bash ืืฉ ืืช ืืคืงืืื read ืฉืืืืจื ืืงืจืื ืงืื ืืืฉืชื ื, ืืืืขืชื ืืื ืืกืืื ืืืจืืืืช ืฉืื ืฉืื ืื ืืืืืื bash. ืืื ืชืขืืื ืืื ืืฉื ืืงื ืืืื ืืืืืช ืืืฉืชื ื:
ubuntu@primary:~$ read name < <(echo ynon)
ubuntu@primary:~$ echo "$name"
ynon
ืืื ืจืง ืชื ืกื ืืืขืืืจ ืืฉืื ืฉืืื ืื ืืืืืช ืืืืืืชื ืืืชื. ืื ื ืืืืืื read ืืืืงืช ืืช ืืจืืืืื ืืชืืืืช ืืฉืืจื, ืกืชื ืื ืืชืืฉืง ืื:
ubuntu@primary:~$ read name < <(echo " one")
ubuntu@primary:~$ echo "$name"
one
ืืื ืืคืื ืืฉ ืืื ืฉืืจืืช, read ืคืฉืื ืชืืจืืง ืืช ืื ืื ืฉืื ืืืจื ืืฉืืจื ืืจืืฉืื ื:
ubuntu@primary:~$ read name < <(cowsay hello)
ubuntu@primary:~$ echo "$name"
_______
ืื ืืื ืืื ืืคืฉืจ ืืคืชืืจ, ืืื ืืฉืืืืื ืืืืื ืืืชืจ ืื ืืืืื ืคืฉืืืื ืืืชืจ. ืืคืงืืื readarray ืืื ืืืจืกื ืืฉืืืจืืช ืฉื read ืฉื ืืขืื ืืงืจืื ืืืกืฃ ืฉื ืฉืืจืืช ืืชืื ืืขืจื, ืืื ืืืคื ืืื ืืืชืจ ืืื ืกืืื ืืงืื. ืื ืชืืจืื ืืืืืื ืืฉื ืื ืขื ืืจืืื ืืืชืืื ืขื readarray:
ubuntu@primary:~$ readarray lines < <(echo " one")
ubuntu@primary:~$ echo "$lines"
one
ืืืืช ืืืืืื ืืฉืืืฉืืช, ืฉืืืคืืกื ืืคืขื ืืช ืื ืืฉืืจืืช:
ubuntu@primary:~$ readarray lines < <(cowsay hello)
ubuntu@primary:~$ echo "${lines[@]}"
_______
< hello >
-------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
ืืืชืจ ืืื, ืืืื ืฉืืคืื ื ืฉืืจ ืืชืืจ ืืขืจื ืืคืฉืจ ืืืฉืช ืืื ืฉืืจื ืืื ื ืืืฉื:
echo "${lines[1]}"
ื readarray ืืฉ ืื ืืจืื ืืคืฉืจืืืืช ืืืชืืื ืืืื ืืืชื -t ืฉืืืืง ืืช ืชื ืืจืืืช ืืฉืืจื ืืื ืฉืืจืช ืงืื, ืืืชื -n ืฉืืืคืฉืจ ืืืืืื ืืช ืืกืคืจ ืืฉืืจืืช ืฉื ืงืจื, ืืืชื -s ืฉืืืคืฉืจ ืืืื ืขื ืืฉืืจืืช ืืจืืฉืื ืืช.
ื .ื. ืืืื ืฉืืชื ืื ืืงืจืืื ืืืฉืื ื ืขื ืื ืืืฆืื ืฉืืืื. ืื ืื ื ืืืืื ืืืืชื ืฉืื ืืืชืื:
ubuntu@primary:~$ cowsay hello | readarray lines
ืืื ืื ืื ืืขืืื. ืกืืื | ืคืืชื Sub Shell, ืืืืขืจื lines ืืืืืจ ืืืืชื Shell ืคื ืืื. ืื ื ืคืขืื ืคืงืืื ืืืืช ืืืืจืื ื ื ืกื ืืืืคืืก ืืช lines ื Shell ืฉืื ื ื ืงืื ืืขืจื ืจืืง.1 420
# ืจืืืงื ืืคืงื ืืืืฉืื ืืกืื ืืจืื ื ืืื Anti Pattern
ืื ืงืืืคืื ื ืืช ืจืืืงื ืืงืืืช ืขืจื ื prop ืืฆืจืืื ืืืฆืื ืืืืข ืืืืฉื ืืืขืจื ืืื, ืืืื ื ืืืืขืื ืื ืืฉืืืจ ืืช ืชืืฆืืช ืืืืฉืื ื State ื ืคืจื ืืคืฉืื ืืืฉื ืืืชื ืื Render, ืืืืืื:
function Twice({ x }) {
return <p>{x} * 2 = {x * 2}</p>
}
ืืื ืืฉืืืืืจ ืืืืฉืื ืืกืื ืืจืื ื ืื ืื ื ื ืืืื ืืืชืืืื - ื ืืืจืื ืฉืืฉ useEffect, ืืืฉืืื ืฉืืืื ืืืฉื ืืช ืืขืจื ืืืืื ืืคืงื, ืืฉืืืจ ืืืชื ืืกืืืื ื ืคืจื ืืื ืืจื ืืจ ืืืืฉ ืืฉืืืื ืืืื. ืืฉืื ืืื:
// Don't Do This:
function DataFromApi({ id }) {
const [name, setName] = useState(null);
useEffect(() => {
fetch(`/api/product/${id}`)
.then(p => p.json())
.then(p => setName(p.name));
}, [id]);
if (!name) {
return <p>Loading...</p>
}
return <p>Product Name = {name}</p>
}
ืืื ืืืช Anti Pattern. ืืื ืืืขืืืช ืืืจืืืืืช ืขื ืืืืฉื:
1. ืื ืืงืืืคืื ื ืื ืืืฆืืช ืืืืกื ืืืืืจืช, ืืขืจื ืฉืืื ื ืืืง ืืฆืจืื ืืืืื ืืืชื ืืืืฉ. ืืกืืืื ืืื ืื ืืงืื ืืกืคืืง "ืืฆืื" ืืื ืืฉืืืจ ืื ืืืืข ืฉืืืืข ืืืจืฉืช (ืื ืืืืข ืฉืืชืืืฆืชื ืืืฉื ืืืืคื ืืืื).
2. ืืฉ ืื ื ื ืืื ืืืขืืช ืืืขืจื ื Dependencies ืฉื useEffect ืืขืชืื ืืจืื ืืืชืจ ืงืจืืืืช ืืื ืฉื ืืื ืืื, ืืืขืืืืช ืืืื ืืืื ืงืฉืืช ืืืืืื. ืกืืืื ืืื ืฉืืืืฉืื ืฉืืื ืืจืืฅ ืืจืื ืืืชืจ ืคืขืืื ืืื ืฉืืชื ืืืืช ืฆืจืืืื.
ืืฉืื ืื ื ืจืืฆืื ืืืฉื ืืืืข ืืฆืืจื ืืกืื ืืจืื ืืช ืืืืฉืชืืฉ ืืชืืฆืื ืืงืืืคืื ื ืื, ืืจืื ืืืชืจ ืืืืืฅ ืืืคืจืื ืืื "ืื ื ืจืืฆื ืืืฉื ืืช ืืืืืข ืืื" ืืืื "ืื ื ืฆืจืื ืืืืฆืื ืืช ืืืืืข ืฉืืืฉื ืืืืืกื ืืื ืืืฆืื ืืืชื". ืืงืืืคืื ื ืื ืืืจืืืช ืจืง ืขื ืืืืง ืืฉื ื, ืืื ืืช ืืชืืืช ืืืืฉืื ืืฉืืืจืช ืืชืืฆืืืช ืืืื ืืืฆืข ืืืืฅ ืืขืฅ. ืจืืืืงืก ืืกืคืง ืคืืชืจืื ืืื ืืืืคื ืืืื, ืืืฉืืืืืจ ืืชืงืฉืืจืช ืกืคืจืืืช ืืื swr ืื react-query ืืฆืืขืืช ืคืืชืจืื ืืื ืชืื ืฉืืืืฉ ื Context.1 420
# ืืฉืืงืื ืขื ืืืืคืกืงืจืืคื - ืืฆืืจืช ืืืคืืก ืืืื ืืงืก ืืืงื ืืืขืจื
ื ืืงื ืืขืจื ืฉื ืคืจืืืื ืงืืืขืื, ืืืฉื ืืขืจื ืฉื ืฆืืขืื:
const colors = ['red', 'blue', 'green', 'white'];
ืืขืืฉืื ื ืจืฆื ืืืชืื ืคืื ืงืฆืื ืฉืืงืืืช ืืื ืืงืก ืฉื ืฆืืข ืืชืื ืืืขืจื ืืืืืืจื ืืช ืฉื ืืฆืืข. ื ืืกืืื ืจืืฉืื ืขืฉืื ืืืืืช:
function getColorName(index: number) {
return colors[index];
}
ืืื ืขืืื ืืืืื ืืื ืื ืื ื ืื ื ืื ืื ืืืืืงืช ืืืืคืืกืื - ืื ื ืืืื ืืืคืขืื ืืช ืืคืื ืงืฆืื ืขื ืืื ืืงืกืื ืืืงืืื ืื ืื ืืืงืืื ืืืื ืืขืืื:
// compiles OK
getColorName(1);
// also compiles OK - but 129 is not a valid index
getColorName(129);
ืื ืืชื ืื ืฉืื ืฉืืืืืื ืืืชืื ืืคืื ืชืืืื ืืชืงื ืืช ืืคืื ืงืฆืื ืืขืืจืช ืืืืื ืืืคืืกืื ืืืืจืืืื:
function getColorName(index: 0|1|2|3) {
return colors[index];
}
ืืื ืืืช ืืขืื ืื ืขืืฉืื ืื ืคืขื ืฉื ืขืืื ืืช ืืืขืจื ื ืฆืืจื ืืขืืื ืื ืืช ืืคืื ืงืฆืื. ืืจืืจ ืฉืืคืฉืจ ืืืืฆืื ืืช ืืืืจืช ืืืืคืืก ืืืคืื ืงืฆืื ื Type Alias, ืืื ืขืืืื ื ืฆืืจื ืืชืืืง ืืืชื ืื ืคืจื ืืืืขืจื.
ืืืืื ืืืชืจ ืืืชืืจ ืฉืืืกื ืืช ืืงืื ืืืคืื ืืืื ืืืืฆืจ ืืื ืืืช ืืช ืืืชื ืืืืื. ืืื ืขืืืื ืจืืฉืื ืฉื ืฆืืจื ืืื ื Utility Type ืืื ืฉืืืคื ืืืคืืก ืืืจืืืชื ืฉืืืืฆื ืืกืคืจ ืืืกืคืจ ืขืฆืื, ืืืืืจ ืืืคื ืืช ืืืืคืืก '2' ืืืืคืืก 2:
type StringToNumber<T extends string, A extends any[] = []> =
T extends keyof [0, ...A] ? A['length'] : StringToNumber<T, [0, ...A]>
ืืงืื ืงืฆืช ืืืืจ ืืื ืืืืื ืื ืคืื ืงืฆืื ืจืงืืจืกืืืืช ืฉืืืคืฉืช ืืช ืืขืจื ืืืืืชื ืฉื ืืืกืคืจ ืืืืฆืขืืช ืืืื ืฉื ืืขืจื. ืืื ืื ืคืขื ืื ืกื ืืขืจื ืงืฆืช ืืืชืจ ืืืื ืืืืืงืช ืื ืืืกืคืจ T ืืื ืืื ืืงืก ืืืงื ืืืืชื ืืขืจื, ืืจืง ืืฉืืฆืื ื ืืช ืืืขืจื ืฉ T ืืื ืืื ืืงืก ืืืงื ืื ืื ืื ื ืขืืฆืจืื ืืืืืืจืื ืืช ืืืื ืืืขืจื.
ืืืฉืชืืฉืื ืื ืืื ืืืืฆืจ ืืืคืืกืื ืืืืคื ืืื:
// Two == 2
type Two = StringToNumber<'2'>;
// Three == 3
type Three = StringToNumber<'3'>;
ืืกืืคืืจ ืจืง ืืฉืชืคืจ ืืฉืื ื ืื ืกื ืืืคืื ืืืกืคืจ ืืฉืื ืฉืืื ืืืื ืื ืืกืคืจ. ืืงืื ืืื ืื ืืชืงืืคื ืื ืืื ืืขืจื ืฉ hello ืืื ืืื ืืงืก ืืืงื ืื:
type Error = StringToNumber<'hello'>;
ืขื ืืฉืืืื ืืืืคืืื:
Type instantiation is excessively deep and possibly infinite.(2589)
ืืื ืืืื ืื ืื ืื ื ืืืืืื "ืืชืคืืก" ืืช ืืฉืืืื ืืืืฉืชืืฉ ืื ืืื ืืืจืืง ืืคืชืืืช ืืืืชืจืื ืืขืืจืช Mapped Types. ืืจืขืืื ืืื ืืงืืช ืืช ืื ืืืคืชืืืช ื items, ืฉืื ืื ืืืื ืืงืกืื (ืืชืืจ ืืืจืืืืช) ืืื ืื ืืืืคืืื length ืืื ืฉืืจ ืืคืื ืงืฆืืืช ืฉื ืืืขืจื, ืืืกื ื ืืื ืจืง ืืช ืืื ืฉืืคืฉืจ ืืืืืจ ืืืกืคืจ, ืืขื ืืืจื ืื ืืืืืจ ืืืชื ืืืกืคืจืื. ืืกืืฃ ื ืคืขืื keyof ืขื ืืชืืฆืื ืื ืงืื ืืช ืืืืื ืืืกืคืจืื ืฉืืืคืฉื ื. ืื ืืงืื:
type ValidIndex = keyof {
[i in keyof typeof items as (i extends string ? StringToNumber<i> : never)]: 2;
}
ืืขืจื 2 ืืกืืฃ ืืื ืฉืจืืจืืชื ืืืืจื, ืื keyof ืืืจืืง ืืืชื. ืื ื never ืื ืืฉืื ืื ืืื ืืืืจืง, ืืื ืื ืื ืืืืคืื ืืืืคื ืืืืืืื ืืฉืืื ืืช ืืืคืชืืืช ืฉืื ืืฆืืืื. ืืชืืฆืื:
// Compiles OK - as 2 is a valid index in the array
const valid: ValidIndex = 2;
// Compilation error - 10 is not a valid index
const invalid: ValidIndex = 10;1 420
# ืจืืข, ืืื ืื ืขืืื?
ืืื ืืคืจืืืืืืจืงืื ืืฉืคืืช ืืชืื ืืช ืฉืืฆื ืื ืืจืืืช, ืืื ืคืขืจ ืืื ืืืืช ืืฉืขืืช ืื ืืจืฉืช ืืฉืืื ืืืืืข ืืงืื ืฉืขืืื ืืืืืช ืืฉืขืืช ืื ืืจืฉืช ืืฉืืื ืืืืื ืืื ืืื ืขืืื.
ืืจืื ืืืงืจืื ืื ืืืจื ืฉืืฉืืชื ืฉืื ื ืืืื ืืื ืืงืื ืขืืื, ืืื ืฆืจืื ืขืื ืืื ืฉืขืืช ืฉื ืืืืื ืืืฉืงืขื ืืื ืืืืื ืฉืืขืฆื ืื ืืื ืชื ื ืืื ืืคืขื ืืจืืฉืื ื, ืืืืืืง ืืช ืืืื ื. ืืคืขืืื ืจืง ืืฉืืืขืชื ืืืืจ ืขื ืื ืฉืื ืขื ืืงืื ืื ืืืกืืืจ ืืืชื ืืืชื ืคืชืืื ืืื ืชื ืฉืคืกืคืกืชื ืืื ื ืงืืืืช ืืฉืืืืช.
ืืื ืืืื ืืืชื ื ืืืื ืืขืืืช-
1. ืืจืื ืืชืขืฉืื ืืฉ ืืืฅ ืืืืืข ืืคืืฆ'ืจืื ืขืืืืื ืืืจ. ืืฉืคื ืืื "ืืืก ืืงืื ืขืืื ืคืืงืก ืืขืืฉืื ืื ื ืืืฉื ืืงืจืื ืืช ืื ืืชืืขืื ืืื ืืืืื ืืื ืื ืขืืื ืื ืื ืืื" ืื ืืชืงืื ืืืื ื.
2. ืื ืืืชืื ืชืื ืขืฆืื ืื ืืชืืืืื ืืืืฉืื ืืขืืื ืขื ืงืื ืฉืขืืื, ืื ืื ืื ื ืื ืืืืืื ืื ืื ืืืืจ "ืืืืื ืืช ืืงืื ืขื ืืกืืฃ". ืจืื ืืืื ืืืจื ืฉืงืื ืขืืื ืื ืื ื ืืจืืืฉืื ืฉืื ืื ื ืืืื ืื ืืืชื ืื ืืื.
3. ืืืืจื ืืื, ืงืื ืฉืื ืื ื ืื ืืืื ืื ืืืืฆืจ ืชืืคืขืืช ืืืืื ืืืืืื ืฉืืืื ืื ื ืงืฉื ืืืฆืื. ืืืืฉื ืื ืืชืขืื ืืืืื, ืืคืืื ืืื ืงืืืืช ืฉืื ืื ื ืื ืจืืื ื.
ืืคืืชืจืื? ืืืขืชื ืืคืืชืจืื ืืืืื ืืื ืืฉืืืจ ืืืจืื ืืืจื ืฉืืชืืชื ืืืชื, ืืื ืืืืื ืขื ืคืืฆ'ืจ ืืืื ืขื ืฉืกืืืืชื ืืืชืื ืขืืืจื ืืืืงืืช ืืืืงืืจ ืืช ืื ืืืฉืืืืช ืฉื ืืืชื ืงืื. ืืื ืืฉืื ืื ืืืฉืืืจ ืืืจืื ื"ืื ืขืืื ืืื ื ืืืืืจ ืืขืฉืืช ืจืืคืงืืืจืื ื ืืืชืงื ืืืจ ืื". ืืืืจ ืื ืื ืืืืข ืืฃ ืคืขื, ืืืืืงื ืืจืืคืงืืืจืื ื ืืืื ืืืฉืืฃ ืขืื ืืื ืืืืื ืฉืืกืชืชืจืื ืฉื. ืื ืื ืืืืจ ืืฉืื ืขืืื, ืื ืืืืจ ืืฉืื ืืืืจ.
1 420
# ืคืืชืจืื Advent Of Code 2022 ืืื 6 ืืืื ืืงืก
ืืืจื ืฉืืื ืงืฆืช ืืขืืืคืช ืขื ืืืืืื ืืืจื ื ืืฉืืืืช ืฉืืคืฉืจ ืืคืชืืจ ืืฉืืจื ืืืช ืฉื ืืื ืืงืก, ืืืฉืืื ืฉื ืืื 6 ืืืชื ืืืืื ืืช ืืฆืืื ืช ืืืืืืจ ืืืืืืืช ืืืฉืชื ืื ืฉื Bash. ืืืฉืืื ืืคืขื ืืื ืืงืืช ืืืจืืืช ืชืืืื ืืืืฆืื ืืช ืืืื ืืงืก ืฉื ืืชื ืืจืืฉืื ืฉืืจืืขืช ืืชืืืื ืฉืืคื ืื ืฉืื ืื ืืื ืืืฉื ื. ืืืืืื ืืืชื ืืืืจืืืช ืืื:
mjqjpqmgbljsphdztnvjfqwrcgsmlb
ืืื ืื ื ืจืืืื ืฉืืงืจืืื ืืฉืืื ืืืืื ืืคืขื ืืจืืฉืื ื ืฉืืืคืืขืื 4 ืชืืืื ืฉืื ืื ืืื ืืชืืืื jqpm ืืืื ืืืื ืืงืก ืฉื ืืชื ืฉืืืจืืื (ืืืืช g) ืืื 7.
ืืฉืืื ืืืฆืื ืืืชื ืืคืฉืจ ืืชืช ื bash ืืขืืื:
1. ื ืจืืฅ ืืืืืื ืขื ืืฉืชื ื ืืืืื i ืฉืืชืืื ื-1.
2. ืืื ืขืจื ืฉื i ื ืืชืื ืืืืืจืืืช ืืช 4 ืืชืืืื ืืื ืืืืงืื ื i ืืขืืจืช cut.
3. ื ืฉืื ืืช egrep ืืืคืฉ ืชื ืืคืื ืืืืจืืืช. ืื ืืื ืื ืืฆื ืืคืฉืจ ืืฆืืช ืืืืืืื ืืืืืคืืก ืืช i+4-1
ืืื ืื ืฉืืงืื ื ืฉืืจ ืืงืืืฅ input.txt ืชืืื ืืช ื bash ืืืชืืืื ืืื:
#!/bin/bash
i=1
while cat input.txt | cut -c $i- | cut -c -4 | egrep '(\w).*\1' >& /dev/null
do
(( i++ ))
done
echo $(( i + 4 - 1))
ืื ืืฉืืจื ืืืช:
i=1; while cat input.txt| cut -c $i- | cut -c -4 | egrep '(\w).*\1' >& /dev/null ; do; (( i ++ )); done; echo $(( i + 4 - 1))
ืฉืืืฉ ื ืงืืืืช ืืงืืช ืืืชืืื ืืช:
1. ืืจืื ืคืขืืื ื ืื ืืคืฆื ืชื ืื ืืืื ืชื ืืื ื Pipeline. ืืืงืจื ืฉืื ื ืืฉืืื ืืืชืื 4 ืชืืืื ืืื ืืืงืื i ืืคืฉืจ ืืฉืืืจ ืืช ืืฉืื ืืื ืืฉืืื ืืืฆืืจ ืคืงืืืช cut ืืืช, ืืื ืืืชืจ ืงื ืืคืฆื ืืช ืื ืืฉืชื ืคืงืืืืช cut ืืืช ืืืจื ืืฉื ืื, ืืืช ืืชืืืื ืืืืงืื ื i ืืืฉื ืื ืืืชืืช 4 ืชืืืื.
2. ืืืื ื ืื ืฉื bash ืคืงืืืช while ืืืฆืขืช ืคืงืืื ืฉืืื ืืงืืืช ืฉืื ืืฉืื ืื ืขืื ืืคืงืืื ืืฆืืืื.
3. ืกืืืจืืื ืขืืืืื ืืคืืืื ื bash "ืืืจืืื" ืืืขืืื ืฉื bash ืืขืืื ืืฉืืื ื ืจืืื, ืืืืื ืื ืขืืืฃ ืืืฉืชืืฉ ืืื ืืฉืจืืฆืื ืืืฆืข ืคืขืืืืช ืืจืืชืืืืืช ืขื ืืฉืชื ืื.
ืืืจืืช ืฉืืกืงืจืืคืืื ืืฉ ืืขืืืช ืชืืืืงื ืืืจืื ืืืงืจืื ืืืชืจ ืงื ืืืชืื ืืืฉ ืืืฉืจ ืืขืืื ืงืืื, ืื ืขืืืื ืืื ืขืืืื ืขืืฆืืชื ืืืืืื ืืืฉืืืืช ืงืื ืืช, ืืืืืช ืืคืืจืืืืืืืช, ืงืืืช ืืืชืืื ืืืืืืืช ืืืฉืชืืฉ ืืงืืืช ืืื ืืืืื ืืงืืืืื ืืืื ืืงืก.1 420
- ืงื ืืืืืจ ืืืื ื. ืจืง ืืืื ืฉืืืืืืืืก ื ืืกืข ืืจืืืจืก ืื ืืืืจ ืฉืื ืื ื ืืืืืื. ืืืืช ืฉืื ืื ืืืืืืืืก ืืฉ ืืืื ืืืืืง ืืื ืื. ืื ืจืง ืชืชื ืื ืืชืืืช ืฉื ืชืื ื ืืื ืืจืืข ืืกืข ืืฉื. ืืืชืจ ืืื, ืืื ืฉืืืจ ืืช ืื ืืืชืืืืช ืฉื ืืชืื ืืช ืฉืืื ืืืจ ืจืื, ืืื ืฉืื ื ืื ืืืืืื. ืชืืฉืื ืขื ืื ืืื ืืืื ืืกืข ืฉืืื ืื ืื. ืกืื ืืื ืฉื ืืื ืืงืกืื ื ืงืจื Branch-ืื, ืฉืื ืืขืฆื ืฉืืืช ืืืชืจ ื ืืืื ืืชืื ืืช. ืืืื ืฉืืืืื ืืชืื ืืขืืคืจืื, ืืคืฉืจ ืชืืื ืืืืกืืฃ ืขืื "ืจืฉืืืืช", ืืืืืจ ืขืื ืฉืืืช ืืชืื ืืช ืฉืื ื, ืืื ืืืืื ืืช ืืฉืืืช ืืื ืชืื ืืช. ืื ื ืืืื ืืจืืืช ืืช ืื ืืฉืืืช ืฉืืื ืืชื ืขื ืขืืฉืื ืขื:
$ git branch -v
* (HEAD detached at b39bd7e) b39bd7e second stop
main fb7fdb6 fourth stop
ืืื ื ืจืืื ืืช ืืฉื ืืืืืื HEAD ืฉืชืืื ืืชืืืก ืืชืื ื ืื ืืืืืืืืก ื ืืฆื ืืจืืข, ืืืช ืืฉื main ืฉืืืืืง ืืืืื ืืชืื ื fb7fdb6. ืืื ื ืืจืืข ืื ืงืคืืฅ ืืช ืืืืืืืืก ืืืจื ื main, ืฉืืื ืืจืืข ืืชืื ื ืืื ืจืืืงื ืืืกืืื:
$ git switch main
Previous HEAD position was b39bd7e second stop
Switched to branch 'main'
ืขืืฉืื ืืื ืืืจ ืืจืื ืืช ืื ืืืกืืื ืื ืืชืืื ื ืืื ืงืืื ืืจืืืงื ืืืืชืจ, ืืื ื ืงืืื ืืืืื "ืืจืืืช" ืืช ืื ืฉืืื ืืคื ืื:
$ git log --oneline | cat
fb7fdb6 fourth stop
43ea893 third stop
b39bd7e second stop
f812a16 initial commit
ืฉื ื ืืกืืืื ืืืจืืืืื ืฉื "ืฉืืืช" ืฉืืื ืืืืืง ืื branch ื tag, ืืฉืืืืื ืืื ืืื ืืื ืฉ branch ืืชืงืื ืืืืคื ืืืืืืื ืืฉืื ื ืืืฆืจ ืชืื ืืช ืืืฉืืช (ืืืื ืื ืืืจืืช ืฉืื ืืชืืืกืชื ืืืื ืขื ืขืืฉืื, ืืืจืื ืฅ main ืืืื ืืช ืืืืื ืฉื ืืชืื ื ืืจืืืงื ืืืืชืจ), ื tag ื ืฉืืจ ืืืงืื ืื ืืฆืจื ื ืืืชื. ืืืื ืืคืงืืื git log ืืืืขืช ืืงืื ืชืื ืช ืืชืืื, ืื ืฉืื ืืฉื ื ืืืคื ืืชื ืืคืจืืืงื ืชืืื ืืืงืืื git log main ืืืจืืืช ืืช ืืืื ืืื ืืชืื ืช main.
- ืื ื ืืืฉื ืฉืื ื ืืชืืื ืืืืื. ืื ืืขืฆื ืืืืืืืืก ืืื ืืื ืชืืงืืืช ืืขืืืื ืฉืื. ืืฉืืื ื ืืกืข ืืื ืชืื ืืช ืืงืืฆืื ืฉืื ื ืจืืื ืืฉืชื ืื, ืืืื ืชืื ื ืืื ืืืื ืืจืืืช ืืช ืืืชืืืช ืฉื ืืชืื ื ืืงืืืืช ืืื ืื ืกืืข ืืืื. ืืฉืืื ืื ืกืืข ืงืืืื ืืืื ืื ืื ืคืืชื ืืช ืกืคืจ ืืืชืืืืช ืฉืื ืืื ืืืืข ืืืืืข ืื ืืชืื ืืช ืจืืืงืืช, ืืืงืืฆืื ืฉืื ืืฃ ืคืขื ืื ืืืื ืืืืืื. ื ืืื?
- ืืืขื, ืืืืช ืฉืืขืื ืฉืชืื ืืช ืื ืืคืฉืจ ืืืืื ืืจืืข ืฉื ืืฆืจื, ืืช ืกืคืจ ืืืชืืืืช ืืคืฉืจ ืืฉื ืืช ืื ืืืื. ืืคืงืืื ืืืื ืืืืงืช ืืช ืืืชืืืช ืฉื ืืชืื ื ืืืืจืื ื ืืกืคืจ (main) ืืืืงืืื ืจืืฉืืช ืืช ืืืชืืืช ืฉื ืืชืื ื ืืฉื ืื ืืื ืืฉื main:
git reset --hard b39bd7e
ื ื ืกื ืขืืฉืื ืืช ืืืจืืงืื ืฉืืืื ื ืื ืืคืชืข ืืืืืช:
$ git log main --oneline| cat
b39bd7e second stop
f812a16 initial commit
$ git branch -v | cat
* main b39bd7e second stop
ืืกืคืจ ืืืชืืืืช ืฉืื ืืฉื main ืืืืืง ืขืืฉืื ืืื ืชืื ื b39bd7e. ืืชืื ื fb7fdb6 ืขืืืื ื ืืฆืืช ืืฉืืื ื, ืืื ืืฉืืื ืืืืืข ืืืื ืื ื ืืืื ืืืฉืชืืฉ ืืืชืืืช ืืืืืืงืช ืฉืื. ืืคื ื ืฉื ืฉืื ืื ื ืืืกืืฃ ืืืชื ืืกืคืจ ืืืชืืืืช ืขื ืฉื ืืืฉ:
$ git branch dev fb7fdb6
ืืขืืฉืื ืืฉ ืื ืฉืชื ืืชืืืืช ืืกืคืจ:
$ git branch -v
dev fb7fdb6 fourth stop
* main b39bd7e second stop
ืืื ื ืฉืื ืืืื ืืืืืจ ืืืชืืืช ืืจืืืงื ืืืืชืจ:
$ git switch dev
$ git log --oneline
fb7fdb6 fourth stop
43ea893 third stop
b39bd7e second stop
f812a16 initial commit
- ื ืฉืืข ืืืืืฅ. ืืืื ืื ืืกืชืืจ ืขื merge-ืื? ืจืืืืืกืื? ืฆ'ืจื ืคืืง?
- ืื ืฆืจืื ืืืืืืจ ืขื ืืื, ืืื ืืฉืืืื ืื ืืช ืืืืื ืฉืื ืืจืื ืืืชืจ ืงื ืืฆืืช ืืืฆืืื ืืืืืื. ืืืืชื ืฉืื ืืืืฉืืจ ืืืงืฉืงืฉ ืืื ืื ื ืจืืื ืืช ืืืืืืืืก ืฉืื ืืืืข. ืขื ืืจื'ืื, ืจืืืืืกืื ืืื ืืฉืืจ ื ืฆืืจื ืืืืฉืื ืืืืจ ืืืื ืืืจ. ืื, ืืืืขื ืฉืืืชื - ืืฉ ืืืืงืื ืงืืจืก ืืื ื ืืืจ ืฉืืกืืืจ ืืช ืืคืงืืืืช ืืื ืขื ืืืืื ืืื ืืื ืฉืืชืืื ืืื. ื ืชืจืื ืืชืื ื ืืืื.1 420
# ืืื ืืื ืืกื ืืื ืืจืฃ
- ืืชื ืืืืข ืืืื ืขืืืจ ืืืฉืื ืขื ืืื ืืชืืจ ืืจืฃ ืืืืื.
- ืืจืฃ ืื?
- ืืจืฃ ืืืืื. ืืจืฃ ืืื ืืืกืฃ ืฉื ืืืืืงืืื ืฉืื ืฉื ืืื ืขืฉืืืื ืืืืืช ืืงืืฉืจืื ืื ืืื, ืืืืืื ืืืืจ ืฉืืงืืฉืืจ ืืื ืฉื ื ืืืืืงืืื ืืื ืืืืืื ืืื. ืชืืฉืื ืขื ืืกืืื ืฉื ืืืืืืืก - ืืคืฉืจ ืืฆืืืจ ืื ืชืื ื ืขื ืืืกืืื ืืชืืจ ืขืืืื ืขื ืืืฃ, ืืื ืืืืืืืืก ื ืืกืข ืืชืื ื ื ืืชืื ื ื ื ืฆืืืจ ืืฅ ืืื ืฉืชืืื ืืคื ืืืืื ืื ืกืืขื.
- ืืื ืืื ืืืืืืืก ืงืฉืืจ ืืืื?
- ืืื ืฉืืืืืืืืก ื ืืกืข ืืชืื ืช ืืืืฆื ืืชืื ืช ืืืขื, ืื ืืงืื ืฉืื ืืชืงืื ืื ืงืืืช ืืืชืืื (ืืืื ืื ืืชืืืช ืืขืืื ืขื ืืคืจืืืงื) ืขื ื ืงืืืช ืืืขื (ืืืื ืื ืืืืืช ืืงืืืจ ืืช ืืคืจืืืงื ืืืขืืืจ ืืืชืื ืืฉืื ืืืฉ). ืืื ืื ืงืฆืช ืฉืื ื ืืชืื ืืช ืืืืืืืก ืื ืืืืืืืืก ืืชืืื ืื ืกืืขื ืืฉืืื ืืืืข ืืื ืืจืื ืื ืืืกืืื, ืืืืื ืื ืื ื ืืชืืืืื ืืงืืื ืืฉืื ืคืขื ืื ืื ื ืืืืืื ืืจืืืช ืจืง ืืช ืืชืื ื ืืืื. ืืื ืืืืื ืืืืชืจ ืืฉืื ืืื ืืืืื ืื ืกืืขื.
- ืื ืืืืื ื ืืืืื ืื ืกืืขื?
- ืืืืืืืืก ื ืืกืข ืืชืื ืช ืืืืฆื ืืชืื ืช ืืืขื, ืื ืืฉืฆืืืจื ื ืืืชื ืืชืืจ ืืจืฃ ืื ืคืขื ืฆืืืจื ื ืืฅ ืืืชืื ื ืืชืื ื ืืืื. ืืฉืืื ืืงืืช ืืช ืืื ืืืืื ืืืืช ืืืื ืืคืฉืจ ืืืืืื ืฉืื ืคืขื ืฉืื ืื ื ืขืืฉืื ืงืืืื ืื ืื ื ืืื ืื ืชืื ืช ืืืืืืืก ืืืฉื ืขื ืืืกืืื, ืืืชืื ื ืืืืช ืืืืืืื ืืงืืคืกื ืืช ืื ืืงืืฆืื ืืคืจืืืงื. ืืืื ืื ืืืช ืืชืื ื ืื ืื ื ืื ืืืืขืื ืื ืชืืืื ืืชืื ื ืฉืืืจืื (ืื ืื ืืคืืื ืชืืื ืืืช ืืืื), ืื ืขื ืื ืชืื ื ืืื ืืืชื ืืช ืืืชืืืช ืฉื ืืชืื ื ืฉืืืชื ืืคื ืื. ืืฆืืจื ืืืืช ืื ืคืขื ืฉืืืืืืืก ืขืืฆืจ ืืชืื ื ืืื ืชืืื ืืืื ืื ืกืืข ืืชืื ื ืฉืืืชื ืืคื ืื, ืืื ืืฉืื ืฉืื ืืื ืื ืืืืข ืื ืืืชืืืช ืฉื ืืชืื ื ืืืื.
- ืขืืืื ืื ืืื ืชื. ืืื ืืงืืืื ืงืฉืืจ ืืชืื ืช ืืืืืืืก?
- ืืื ื ื ืกื ืืช ืื ืืงืื. ืื ื ืืืฆืจ ืคืจืืืงื ืืืฉ ืขื ืืื ืืชืืงืื ืื ืืืืืช:
$ git init .
ืืืชื ืฉืืืืืช ืืืืื ืงืืืฅ ืืฉืืืจ ืืืชื ืืงืืคืกื - ืืืช ืืชืื ื ืืจืืฉืื ื:
$ echo hello world > readme.txt
$ git add readme.txt
$ git commit -m 'initial commit'
ืื ื ืืืื ืืจืืืช ืืช ืื ืืชืื ืืช ืขื ืคืงืืืช git log, ืืื ืืจืืข ืืฉ ืฉื ืจืง ืืืช:
$ git log --oneline
f812a16 initial commit
ืืชืื ื ืืืืช ืฉืื ืืื ืืฉ ืฉื - f812a16. ืื ืืืื ืืืืืื ืฉื ืืชืื ื ืืืืช. ื ืืฉืื ืืื ืืช ืขืื ืืื ืชืื ืืช ืืืกืืื:
$ echo second stop > status.txt
$ git add .
$ git commit -m 'second stop'
[main b39bd7e] second stop
$ echo third stop > status.txt
$ git add .
$ git commit -m 'third stop'
[main 43ea893] third stop
$ echo fourth stop > status.txt
$ git add .
$ git commit -m 'fourth stop'
[main fb7fdb6] fourth stop
ืืืื ืขืืฉืื ืืจืื ืืช ืื ืืชืื ืืช:
$ git log --oneline
fb7fdb6 fourth stop
43ea893 third stop
b39bd7e second stop
f812a16 initial commit
ืืื ืืืืจ ืืืฉืื ืืื ืืื ืืืืืื: ืื ืชืื ื "ืืฆืืืขื" ืขื ืืชืื ื ืฉืืื ืืคื ืื. ืื ื ืืืื ืืจืืืช ืืช ืื ืขื cat-file:
$ git cat-file commit fb7fdb6
tree 2394fdb509358a49d452574536bec528d119ba06
parent 43ea893b8bda3420d7a794ef14a7246d94f88ced
author ynonp <ynonperek@gmail.com> 1670589664 +0200
committer ynonp <ynonperek@gmail.com> 1670589664 +0200
fourth stop
ืืืจื ืืชืืืืช parent ืื ื ืจืืื ืืช ืฉื ืืชืื ื ืืฉืืืฉืืช, ืื ืืชืื ื ืืจืืืขืืช "ืืืืขืช" ืฉืืคื ืื ืืืชื ืืชืื ื ืืฉืืืฉืืช (ืืื ืืฉื ืฉืืืคืืข ืืื ืืื ืืืชืจ ืืจืื ืืืฉื ืื ืื ื ืืฉืชืืฉ, ืืื ืื ืืืชื ืงืืืื ืืงืืฆืืจ ืืื ืจืง ืืฉืืืื ื). ืืชื ืืืื ืื ืืืืฉืื ืืช ืืืฉืืง ืืืจืืืช ืฉืื ืชืื ื ืืืจืช ืืืืจื ืจืง ืืช ืืชืื ื ืฉืืื ืืคื ืื. ืืืช ืืกืืื ืฉ git log ืขืฉืื ืืืืืช ืื ืื ืืืืื - ืืจืืจืช ืืืืื ืฉืื ืืื ืืืจืืืช ืืช ืืืชื ืืจืฃ, ืืื ืืืชืื ื ืื ืื ื ื ืืฆื ืืืืืจื ืขื ืชืืืืช ืืคืจืืืงื.
- ืจืืข ืจืืข, ืื ืืืืื ื "ืืชืื ื ืื ืืชื ื ืืฆื?" - ืืคืฉืจ ืื ืกืืข ืืื ืืชืื ืืช?
- ืืจืืจ. ืืืช ืื ืืคืืื ืื. ืืคืงืืื git switch ืืืงืืช ืืืชื ืืชืื ื ืืืจืช. ืื ื ืืืืื:
$ git switch --detach b39bd7e
HEAD is now at b39bd7e second stop
ืืื ืขื ืืคืจืืืงื ืืจืื ืื ื ืืช ืืงืืฆืื ืืื ืฉืื ืืื ืืฉืืืื ื ืืชืื ื ืืฉื ืื. ืืื ืืฉืืก ืืืืืชื ืืื ืืคืื ืฉื git log:
$ git log --oneline
b39bd7e second stop
f812a16 initial commit
ืืชืื ื ืืฉื ืื ืืืืื ืืืกืชืื ืจืง "ืืืืจื" ืืชืื ื ืืจืืฉืื ื, ืืืื ืื ืื ืฉืื ืื ื ืจืืืื ืืืื. ืืชืื ืืช ืืฉืืืฉืืช ืืืจืืืขืืช ืืื ื ืืืกืืื.
- ืื? ืืืงืช ืื ืืช ืื ืืคืจืืืงื?? ืื ืืื ืื ื ืืืืจ ืขืืฉืื ืื ืงืืืช ืืืชืืื?1 420
# ืืืืงืืช ืืืืื ืืืืืช
ืืื ืืื ืงืจืืืจืืื ืื ืฉืืชื ืืืืืื ืืืืฅ ืืื ืืจืืืช ืื ืืืืงืืช ืืืืืื ืฉืืื ืขืืืืืช ืืฉืืืืื, ืื ืืชื ืืฉืืืื-
1. ืืชื ืืจืืฆืื ืืช ืืืืืงื ืืขืชืื ืงืจืืืืช (ืืืฉื ืืืจื ืื ืฉืืืจื), ืืืชืืฆืืืช ืืชืขืืื ืืช ืื ืืืื ืืชืื ืกืืืืช ืืคืืชืื ืฉืืื.
2. ืืืืืงื ื ืืฉืืช ืืฉืืชื ืฉืืืจืื ืืฉืื, ืืืฉืืื ื ืืฉืืช ืืชื ืืืื ืื ืืืืืง ืื ืฉืืจืชื.
3. ืืืืืงื ื ืืฉืืช ืืฉืืฉื ืื ืืฉืื ืืืืชื ืืืืืืงื, ืืืืงืจื ืืื ืืชืืงืื ืฉืื ืื ืืืงื ืืื ืืืชืจ ืืื ืืื (ืืืืก ืืื ืฉืืงื ืืฉื ืืช ืืช ืืืืืืงื ืืงืื ืืืงืืจื).
4. ืืชื ืืจืืืฉืื ืื ืื ืืืืื ืก ืืงืื ืืืืืงื ืืืขืฉืืช ืฉื Refactor, ืืืืืง ืืื ืฉืืชื ืืจืืืฉืื ืื ืื ืขื ืงืื ืจืืื ืฉืืื.
5. ืืชื ืืจืืืฉืื ืื ืื ืืฉื ืืช ืืืงืื ืืงืื ืืืขืจืืช, ืื ืืชื ืืืืขืื ืฉืื ืชืฉืืจื ืืฉืื ืืฉืื ืชืืื ืืืื ืืืืงื ืฉืชืงืคืืฅ.
6. ืจืื ืืืื ืืืฉืืืฆืขืื ืืงืื ืฉืื ืืืื ืฉืื ืืฉืคืืขืื ืืฉืืจืืช ืขื ืืืืจ ืฉืืืชื ืืืืืงื ืืืืงืช, ืืืืืงื ืืืฉืืื ืืขืืืจ.
7. ืืืืืงื ืืื ืชืืคืขืืช ืืืืื - ืงืื ืืืืงื ืื ืืฉืื ืคืชืืื ืืืื ืืืืฉืื, ืืืืื ืืชืื ืืชืฉืืื ืื ืืขืฉื ืื ืืืจ "ืืกืืื" ืืืจ ืืืขืจืืช.
ืืจืืข ืฉืื ืื ื ืืชืืืืื ืืืกืชืื ืขื ืืืืงืืช ืืืืื ืืชืืจ ืืืฆืจ ืฉืื ืื ื ืืืงืื ืฉืื, ืื ืื ื ืืืืืื ืื ืืืืืช ืืืงืืจืชืืื ืืืคืืื: ืืื ืฉืขืืืจืืช ืื ื ื ืฉืืจืืช, ืืช ืืื ืฉืืคืฉืจ ืืฉืคืจ ื ืฉืคืจ, ืืืช ืืืจืืขืืช ื ืืืง.
Endi mavjud! Telegram Tadqiqoti 2025 โ yilning asosiy insaytlari 
