گیت چطور فایل‌ها رو ذخیره می‌کنه؟

جواب کوتاه گیت فایل‌ها رو بر اساس محتواشون ذخیره میکنه و تا زمانی که فایل تغییر نکرده، نسخه‌ی ذخیره‌شده توسط گیت ثابت میمونه. جواب بلند اول کار که شما دستور git init رو اجرا می‌کنید، گیت داخل پوشه‌ی جاری یه فولدر .git می‌سازه که محتویاتش اینه: [meysampg@freedom git]$ git init Initialized empty Git repository in /srv/http/test/git/.git/ [meysampg@freedom git]$ ls -lah .git total 40K drwxr-xr-x 7 meysampg users 4.0K Mar 10 11:07 . drwxr-xr-x 3 meysampg users 4.0K Mar 10 11:07 .. drwxr-xr-x 2 meysampg users 4.0K Mar 10 11:07 branches -rw-r--r-- 1 meysampg users 92 Mar 10 11:07 config -rw-r--r-- 1 meysampg users 73 Mar 10 11:07 description -rw-r--r-- 1 meysampg users 23 Mar 10 11:07 HEAD drwxr-xr-x 2 meysampg users 4.0K Mar 10 11:07 hooks drwxr-xr-x 2 meysampg users 4.0K Mar 10 11:07 info drwxr-xr-x 4 meysampg users 4.0K Mar 10 11:07 objects drwxr-xr-x 4 meysampg users 4.0K Mar 10 11:07 refs چیزی که جواب سوال بالاست در پوشه‌ی objects نهفته‌ست. ...

10 مارس 2018 · میثم پورگنجی

آدرس‌پذیری در گو

دیو چنی توییت کرده که کد زیر چی چاپ میکنه؟ package main import "fmt" func f(u *uint) { *u++ } func main() { i := 0 f(&(uint)(i)) fmt.Println(i) } بالطبع احتمالا همه انتظار داریم حاصل ۱ باشه، ولی این کد اصلا کامپایل نمیشه :)). دلیل خیلی ساده‌ست: «در گو شما فقط میتونی آدرس چیزایی رو استفاده کنی که آدرس‌پذیر باشن.». به بیان دیگه در گو فقط برای متغیرها، پوینترها، اسلایس‌ها، عناصر یک ساختار -=struct- و آرایه‌ها میشه آدرس رو داشت و پر واضح و مبرهن‌ه که در کد فوق، پارامتر ورودی f هیچ‌کدوم از اونها نیست. در این مورد اینجا رو ببینید. ...

10 سپتامبر 2017 · میثم پورگنجی