اول از همه راجب کاربرد stash ها داخل گیت بگم که برای مدیریت بهتر تغییراتتون و جا به جایی تغییرات و حفظ و نگه داری اونا حتی بین برنچ ها میتونین ازش استفاده کنین
و خب حالا وقتی تغییراتتون استش میشه انگار اونا پاک میشن، بهتر بگیم، منتقل میشن به فضای استش، و مثل یک مرحله که کامیت شده باشه اونجا هستن و امادن که شما ازشون استفاده کنین
اینم بگم که تغییرات داخل استش محدود به یه برنچ نیستن و میتونین از یه برنچ، تغییرات رو استش کنین و ببرین داخل یه برنچ دیگه
با استفاده از تغییراتی که قبلا استش کردید هم میتونین اونارو بازم برگردونین به پروژتون و انگار تازه نوشته شدن!
بریم سراغ نحوه استفاده ازش:
git stash
اگر هم میخاین یه مسیج برای استش خودتون ست کنین این دستور رو بزنین:
git stash -m "message"
برای دیدن لیست استش هاتون از دستور زیر استفاده کنین:
git stash list
خب حالا ما چطور میتونیم از این استش هامون استفاده کنیم و بریزیمشون داخل کدامون؟
ما دوتا دستور داریم برای اینکه این کار رو انجام بدیم و استش هامون رو استفاده کنیم:
git stash apply <stash index>
git stash pop <stash index>
این دستور هم مثل دستور بالاس ولی با این تفاوت که استشی که با ایندکس صدا زدین، استفاده میشه و بعدش از لیست استش ها پاک میشه و بای بای
در آخر هم ممکنه ما بخایم یه استش رو پاک کنیم ولی استفادش نکنیم پس این دستور رو میزنیم:
git stash drop <stash index>
git stash -m "before update"
git pull
git stash list
git stash pop 0
git status
git stash -m "change branch"
git checkout main
git checkout -b improv/new-branch
git stash list
git stash pop 0
#git #git_stash
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14⚡6❤🔥3
امروز قراره راجب مبحث تگ ها در گیت و alias ها توضیح بدیم
شما خیلی جاها پیش میاد که نیاز پیدا میکنین یه مرحلهای از پروژتون رو نشونه گذاری کنین، در اصل تگ ها منبع هایی هستن که به یه نقطه خاص از پروژتون اشاره دارن،
در گیت دو نوع تگ کردن وجود داره: lightweight و annotated2. تگ lightweight دقیقا مثل یک شاخه هست که تغییری نمیکنه - فقط یک نشانگر هست به یک کامیت خاص. ولی تگهای annotated یک آبجکت کامل رو در بانکاطلاعاتی گیت ذخیره میکنن.
نحوه ساخت یه تگ:
git tag -a v2.0 -m 'version v2.0'
ارسال همه تگ ها به گیت هاب:
git push --tags
ارسال یه تگ خاص به گیت هاب:
git push origin <tag_name>
حالا یسری دوستان میگن که چرا میگی ارسال به گیت هاب، منظورم همون ریپازتوری ریموت هست
پاک کردن یه تگ:
git tag -d <tag_name>
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
در اصل شما با زدن این کانفیگ ها، دارین یه کامند خلاصه میسازین، از الان به جای اینکه بنویسین checkout میتونین از co استفاده کنین که خیلی بهتره
#git #git_config #git_alias #git_tag
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥17⚡4🔥3😁1
- چیه؟ GitHub یه سایتیه که توش میتونی کدهای پروژههات رو بذاری، با همتیمیهات کار کنی و کلاً پروژه رو مدیریت کنی.
- ویژگیها: GitHub ابزارهایی داره که میتونی باهاشون مشکلات رو مدیریت کنی، تغییرات کد رو بررسی کنی (Pull Request) و حتی بعضی از کارای تکراری رو خودکار انجام بدی (مثل GitHub Actions).
- محبوبیت: GitHub خیلی بین برنامهنویسا معروفه، چون راحت میشه باهاش کار کرد و کلی ابزار دیگه هم باهاش سازگارن.
- چیه؟ GitLab هم یه سرویس شبیه GitHubه، ولی با امکانات بیشتر. علاوه بر اینکه میتونی کدها رو مدیریت کنی، ابزارهایی هم برای تست و استقرار خودکار (CI/CD) داره.
- میزبانی: GitLab رو هم میتونی روی سرورهای خودت نصب کنی و مدیریت کنی، که اگه بخوای دادههات رو کاملاً دست خودت نگه داری، خیلی خوبه.
1. میزبانی: تو GitHub معمولاً کدها روی سرورهای خودشون میزبانی میشه، ولی GitLab رو هم میتونی روی سرور خودت نصب کنی.
2. CI/CD: GitLab ابزارهای قویتری برای تست و استقرار خودکار داره. GitHub هم داره، ولی GitLab زودتر این ویژگیها رو داشت.
3. مدیریت پروژه: GitLab برای مدیریت کل پروژه از اول تا آخر ابزارای بیشتری داره. GitHub بیشتر روی مدیریت کد تمرکز داره.
4. کنترل دسترسی: GitLab تو تنظیم دسترسیها و مجوزها دقیقتره، مخصوصاً برای تیمهای بزرگ.
5. متنباز بودن: GitLab یه نسخه متنباز داره که میتونی باهاش هر تغییری که خواستی بدی. GitHub اینطوری نیست.
#git #github #gitlab
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24⚡6❤🔥5
#git #github
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21⚡13❤🔥6
توی آپدیت جدید گیت چه تغییراتی میبینیم؟ 🤔
گیت که به تازگی ورژن 2.49 رو منتشر کرده تغییرات جالبی داشته بریم و سریع با هم تغییراتش رو بررسی کنیم.
🔹 git-backfill – حل مشکل کلونهای ناقص
اگه موقع clone کردن از فیلتر --filter=blob:none استفاده کرده باشی، گاهی گیت مجبور میشد تکتک فایلها رو جدا جدا از سرور بگیره (مثل git blame). حالا git-backfill اومده که یه جا همهی فایلهای لازم رو دانلود کنه و سرعتو ببره بالا.
🔹 بهبود فشردهسازی با zlib-ng
گیت حالا میتونه از zlib-ng استفاده کنه که نسبت به نسخه قبلی ۲۵٪ سریعتره! میتونی با git version --build-options چک کنی ببینی گیتت ازش استفاده میکنه یا نه.
🔹 یه الگوریتم جدید برای فشردهسازی بهتر
گیت ۲.۴۹ یه مدل جدید از "name-hashing" داره که باعث کاهش چشمگیر حجم بستههای گیت میشه. بعضی پروژهها تا ۲۰ برابر حجم کمتری گرفتن!
🔹 پشتیبانی از Rust در libgit
اگه با Rust کار میکنی، حالا یه سری قابلیتهای پایهای گیت رو میتونی مستقیم از طریق Rust صدا بزنی.
🔹 deprecate شدن .git/branches و .git/remotes
اگه تا حالا از این پوشهها استفاده میکردی (که احتمالا نه 😅)، بدون که تو نسخه بعدی گیت کاملا حذف میشن.
🔹 قابلیت promisor remote
گیت داره راهی میسازه که سرور بتونه به کلاینت بگه "این فایلهای حجیم رو از یه جای دیگه بگیر" تا کار با پروژههای بزرگ راحتتر بشه.
🔹 آپشن جدید --revision توی git clone
حالا میتونی یه کلون خیلی سبک فقط از یه ورژن خاص از پروژه بگیری، بدون این که کل تاریخچه رو بکشی پایین.
حمایت فراموش نشه😉
اتفاقات جدیدی تو راهه...
#git #update
☕️ Telegram | Website | Discord
گیت که به تازگی ورژن 2.49 رو منتشر کرده تغییرات جالبی داشته بریم و سریع با هم تغییراتش رو بررسی کنیم.
🔹 git-backfill – حل مشکل کلونهای ناقص
اگه موقع clone کردن از فیلتر --filter=blob:none استفاده کرده باشی، گاهی گیت مجبور میشد تکتک فایلها رو جدا جدا از سرور بگیره (مثل git blame). حالا git-backfill اومده که یه جا همهی فایلهای لازم رو دانلود کنه و سرعتو ببره بالا.
🔹 بهبود فشردهسازی با zlib-ng
گیت حالا میتونه از zlib-ng استفاده کنه که نسبت به نسخه قبلی ۲۵٪ سریعتره! میتونی با git version --build-options چک کنی ببینی گیتت ازش استفاده میکنه یا نه.
🔹 یه الگوریتم جدید برای فشردهسازی بهتر
گیت ۲.۴۹ یه مدل جدید از "name-hashing" داره که باعث کاهش چشمگیر حجم بستههای گیت میشه. بعضی پروژهها تا ۲۰ برابر حجم کمتری گرفتن!
🔹 پشتیبانی از Rust در libgit
اگه با Rust کار میکنی، حالا یه سری قابلیتهای پایهای گیت رو میتونی مستقیم از طریق Rust صدا بزنی.
🔹 deprecate شدن .git/branches و .git/remotes
اگه تا حالا از این پوشهها استفاده میکردی (که احتمالا نه 😅)، بدون که تو نسخه بعدی گیت کاملا حذف میشن.
🔹 قابلیت promisor remote
گیت داره راهی میسازه که سرور بتونه به کلاینت بگه "این فایلهای حجیم رو از یه جای دیگه بگیر" تا کار با پروژههای بزرگ راحتتر بشه.
🔹 آپشن جدید --revision توی git clone
حالا میتونی یه کلون خیلی سبک فقط از یه ورژن خاص از پروژه بگیری، بدون این که کل تاریخچه رو بکشی پایین.
حمایت فراموش نشه😉
اتفاقات جدیدی تو راهه...
#git #update
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22❤🔥4⚡1
🔥23😍5❤🔥4