Forwarded from Academy and Foundation unixmens | Your skills, Your future
اسلایدهای دیروز را میتونید از این لینک مشاهده کنید :
https://www.slideshare.net/yasharesmaildokht/git2-77694712
#git #github #gitlab #yashar_esmaildokht @unixmens
https://www.slideshare.net/yasharesmaildokht/git2-77694712
#git #github #gitlab #yashar_esmaildokht @unixmens
www.slideshare.net
Git2
Git and github Presenter : yashar esmaildokht
Forwarded from Academy and Foundation unixmens | Your skills, Your future
اسلایدهای دیروز را میتونید از این لینک مشاهده کنید :
https://www.slideshare.net/yasharesmaildokht/git2-77694712
#git #github #gitlab #yashar_esmaildokht @unixmens
https://www.slideshare.net/yasharesmaildokht/git2-77694712
#git #github #gitlab #yashar_esmaildokht @unixmens
www.slideshare.net
Git2
Git and github Presenter : yashar esmaildokht
Forwarded from Academy and Foundation unixmens | Your skills, Your future
اسلایدهای دیروز را میتونید از این لینک مشاهده کنید :
https://www.slideshare.net/yasharesmaildokht/git2-77694712
#git #github #gitlab #yashar_esmaildokht @unixmens
https://www.slideshare.net/yasharesmaildokht/git2-77694712
#git #github #gitlab #yashar_esmaildokht @unixmens
www.slideshare.net
Git2
Git and github Presenter : yashar esmaildokht
مقاله git و github و ...
https://www.dropbox.com/s/dsgpmr1lv9ehkd9/git2.pdf?dl=0
#git #github @unixmens
https://www.dropbox.com/s/dsgpmr1lv9ehkd9/git2.pdf?dl=0
#git #github @unixmens
Dropbox
git2.pdf
Shared with Dropbox
گیت (به انگلیسی: Git) یک نرمافزار کنترل نسخه و از مدل نرمافزارهای آزاد و متنباز برای بازنگری کد منبع توزیع شده و مدیریت منبع کد است که برای دنبال کردن تغییر فایلهای کامپیوتری و دنبال کردن کردن کارهای انجام شده روی آنها توسط افراد مختلف است. هدف اولیه این نرمافزار برای استفاده در پروژههای نرمافزاری بودهاست ولی میتوان از آن تنها برای دنبال کردن تغییر فایلها هم استفاده کرد.
گیت ابتدا برای توسعهٔ لینوکس توسط لینوس تروالدز به وجود آمد و اکنون پروژههای فراوانی از آن الهام گرفتهاند. هر دایرکتوری کاری در گیت یک مخزن کامل با تاریخچهٔ کامل تغییرها و قابلیت بازنگری آنها است و برای کار با آن نیازی به دسترسی به شبکه یا سرور مرکزی وجود ندارد.
گیت یک نرمافزار آزاد است که تحت عنوان جیپیال نسخه ۲ توزیع شدهاست.
🔅دسته بندی:#Tool
🔅دستور نصب:
sudo apt install git-all
از ابزار های گرافیکی تحت ور میتوان به gitlab اشاره کرد
#git @unixmens
گیت ابتدا برای توسعهٔ لینوکس توسط لینوس تروالدز به وجود آمد و اکنون پروژههای فراوانی از آن الهام گرفتهاند. هر دایرکتوری کاری در گیت یک مخزن کامل با تاریخچهٔ کامل تغییرها و قابلیت بازنگری آنها است و برای کار با آن نیازی به دسترسی به شبکه یا سرور مرکزی وجود ندارد.
گیت یک نرمافزار آزاد است که تحت عنوان جیپیال نسخه ۲ توزیع شدهاست.
🔅دسته بندی:#Tool
🔅دستور نصب:
sudo apt install git-all
از ابزار های گرافیکی تحت ور میتوان به gitlab اشاره کرد
#git @unixmens
Forwarded from Academy and Foundation unixmens | Your skills, Your future (yashar esmaildokht 🐧)
مقاله git و github و ...
https://www.dropbox.com/s/dsgpmr1lv9ehkd9/git2.pdf?dl=0
#git #github @unixmens
https://www.dropbox.com/s/dsgpmr1lv9ehkd9/git2.pdf?dl=0
#git #github @unixmens
Dropbox
git2.pdf
Shared with Dropbox
Forwarded from Academy and Foundation unixmens | Your skills, Your future (yashar esmaildokht 🐧)
مقاله git و github و ...
https://www.dropbox.com/s/dsgpmr1lv9ehkd9/git2.pdf?dl=0
#git #github @unixmens
https://www.dropbox.com/s/dsgpmr1lv9ehkd9/git2.pdf?dl=0
#git #github @unixmens
Dropbox
git2.pdf
Shared with Dropbox
با دستور git-cherry-pick آشنا شویم :
در واقع
چرا از
1. انتقال تغییرات خاص بدون ادغام کامل: گاهی اوقات لازم است فقط یک یا چند تغییر مشخص را از یک شاخه به شاخه دیگری منتقل کنید، بدون اینکه همه تغییرات شاخه مبدا را ادغام کنید.
2. رفع باگها در چند شاخه: اگر یک باگ در یک شاخه برطرف شده و نیاز است همان رفع باگ در شاخههای دیگر هم اعمال شود، میتوانید از
3. کنترل دقیق بر تغییرات : برخلاف دستور
ویژگیهای
- انتخاب دقیق: به شما این امکان را میدهد که فقط تغییرات مشخصی را از یک یا چند کامیت اعمال کنید.
- تاریخچه شفاف: برخلاف
- پشتیبانی از چندین کامیت: میتوانید چندین کامیت را بهصورت همزمان انتخاب و اعمال کنید.
مثالهای `git cherry-pick`
1. انتخاب یک کامیت خاص:
فرض کنید میخواهید یک کامیت خاص با شناسه
این دستور تغییرات کامیت
2. انتخاب چندین کامیت پشت سر هم:
اگر میخواهید چندین کامیت پشت سر هم (برای مثال از
3. انتخاب چندین کامیت غیرپشت سر هم:
میتوانید کامیتهای غیرپشت سر هم را نیز انتخاب کنید:
4. بررسی تعارضها (Conflicts):
گاهی اوقات ممکن است هنگام اجرای
به طور کلی با استفاده از
#git #branch #tip #tips #linux #devops #scv
#source #control #version #sourcecontrol
https://t.iss.one/unixmens
در واقع
git cherry-pick یک دستور در Git است که برای انتخاب یک یا چند کامیت (commit) خاص از یک شاخه (branch) و اعمال آنها در شاخه فعلی استفاده میشود. به بیان ساده، این دستور به شما اجازه میدهد تا تغییرات مشخصی را از تاریخچه گیت انتخاب کرده و در شاخهای دیگر اعمال کنید.چرا از
git cherry-pick استفاده کنیم؟1. انتقال تغییرات خاص بدون ادغام کامل: گاهی اوقات لازم است فقط یک یا چند تغییر مشخص را از یک شاخه به شاخه دیگری منتقل کنید، بدون اینکه همه تغییرات شاخه مبدا را ادغام کنید.
git cherry-pick این امکان را فراهم میکند.2. رفع باگها در چند شاخه: اگر یک باگ در یک شاخه برطرف شده و نیاز است همان رفع باگ در شاخههای دیگر هم اعمال شود، میتوانید از
git cherry-pick استفاده کنید.3. کنترل دقیق بر تغییرات : برخلاف دستور
git merge که همه تغییرات یک شاخه را ادغام میکند، با استفاده از git cherry-pick میتوانید بهطور دقیق تغییرات مورد نظر خود را انتخاب و اعمال کنید.ویژگیهای
git cherry-pick- انتخاب دقیق: به شما این امکان را میدهد که فقط تغییرات مشخصی را از یک یا چند کامیت اعمال کنید.
- تاریخچه شفاف: برخلاف
git merge`، که تغییرات را بهصورت یکجا در تاریخچه گیت ثبت میکند، `git cherry-pick تغییرات را بهطور جداگانه و شفاف ثبت میکند.- پشتیبانی از چندین کامیت: میتوانید چندین کامیت را بهصورت همزمان انتخاب و اعمال کنید.
مثالهای `git cherry-pick`
1. انتخاب یک کامیت خاص:
فرض کنید میخواهید یک کامیت خاص با شناسه
abc123 را از شاخه feature-branch به شاخه فعلی اعمال کنید:git checkout main
git cherry-pick abc123
این دستور تغییرات کامیت
abc123 را در شاخه main اعمال میکند.2. انتخاب چندین کامیت پشت سر هم:
اگر میخواهید چندین کامیت پشت سر هم (برای مثال از
abc123 تا def456) را انتخاب کنید:git cherry-pick abc123..def456
3. انتخاب چندین کامیت غیرپشت سر هم:
میتوانید کامیتهای غیرپشت سر هم را نیز انتخاب کنید:
git cherry-pick abc123 def456 ghi789
4. بررسی تعارضها (Conflicts):
گاهی اوقات ممکن است هنگام اجرای
git cherry-pick با تعارض مواجه شوید. در این صورت، Git به شما اطلاع میدهد که کدام فایلها تعارض دارند و شما باید آنها را بهصورت دستی حل کنید. پس از حل تعارضها، دستورهای زیر را اجرا کنید:git add <resolved-files>
git cherry-pick --continue
به طور کلی با استفاده از
git cherry-pick میتوانید کنترل دقیقی بر تاریخچه پروژه خود داشته باشید و تغییرات دلخواه را به راحتی بین شاخههای مختلف انتقال دهید.#git #branch #tip #tips #linux #devops #scv
#source #control #version #sourcecontrol
https://t.iss.one/unixmens
Telegram
Academy and Foundation unixmens | Your skills, Your future
@unixmens_support
@yashar_esm
[email protected]
یک کانال علمی تکنولوژی
فلسفه متن باز-گنو/لینوکس-امنیت - اقتصاد
دیجیتال
Technology-driven -بیزینس های مبتنی بر تکنولوژی
Enterprise open source
ارایه دهنده راهکارهای ارتقای سازمانی - فردی - تیمی
@yashar_esm
[email protected]
یک کانال علمی تکنولوژی
فلسفه متن باز-گنو/لینوکس-امنیت - اقتصاد
دیجیتال
Technology-driven -بیزینس های مبتنی بر تکنولوژی
Enterprise open source
ارایه دهنده راهکارهای ارتقای سازمانی - فردی - تیمی
👍1
چگونه gitlab ominibus را نصب کنیم :
https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh
https://packages.gitlab.com/gitlab/gitlab-ee
در حقیقت GitLab یکی از محبوبترین پلتفرمهای DevOps Lifecycle Management است که تمام مراحل توسعه نرمافزار شامل مدیریت سورسکد، CI/CD، امنیت، مانیتورینگ و دپلویمنت را در یک بستر یکپارچه ارائه میدهد.
برای سادهسازی نصب و مدیریت این ابزار بزرگ، شرکت GitLab بستهای به نام Omnibus GitLab عرضه کرده است. این بسته شامل تمام اجزای موردنیاز GitLab (مانند دیتابیس، وبسرور، Redis، Nginx و غیره) در یک پکیج واحد است و امکان راهاندازی سریع و مدیریت آسان را فراهم میسازد
ابزار GitLab Omnibus چیست؟
این ساختار Omnibus GitLab یک بستهی all-in-one است که به جای نصب تکتک سرویسهای موردنیاز، همهی اجزا را در یک بستهی مجتمع قرار داده است.
مزایای آن:
نصب سریع تنها با یک دستور (apt-get install gitlab-ee یا yum install gitlab-ee)
مدیریت ساده توسط ابزار gitlab-ctl
کاهش پیچیدگی در پیکربندی
قابلیت بهروزرسانی یکپارچه
اجزای اصلی GitLab Omnibus
در واقع Omnibus GitLab شامل چندین سرویس حیاتی است که با هم برای اجرای کامل GitLab همکاری میکنند:
1. GitLab Rails (Core Application)
بخش اصلی اپلیکیشن که شامل GitLab Web، API و Backend است.
2. Nginx
به عنوان reverse proxy برای مدیریت درخواستهای HTTP/HTTPS.
3. PostgreSQL
پایگاهداده اصلی برای ذخیرهسازی کاربران، پروژهها، issueها، pipelineها و دادههای متنی.
4. Redis
برای cache و queue (Background Jobs و Sidekiq).
5. Sidekiq
برای اجرای پردازشهای غیرهمزمان مانند pipeline jobs و ایمیلها.
6. Gitaly
سرویس مدیریت repositoryها (جایگزین direct Git access).
7. Praefect (در معماری توزیعشده)
برای مدیریت replication در محیطهای با چندین Gitaly.
8. GitLab Shell
مدیریت کلیدهای SSH و دسترسی Git.
9. Prometheus + Grafana
برای مانیتورینگ و مشاهدهی متریک
ویژگیهای کلیدی معماری Omnibus
1. یکپارچگی → همه اجزا در یک پکیج و با حداقل وابستگی خارجی.
2. ماژولار → هر سرویس (Redis، PostgreSQL، Nginx و غیره) به صورت جداگانه قابل مدیریت است.
3. مقیاسپذیری → در نسخههای Advanced (مانند GitLab EE + Omnibus Cluster) میتوان اجزا را جدا و روی سرورهای مختلف توزیع کرد.
4. امنیت → به صورت پیشفرض HTTPS، پیکربندی firewall و hardeningهای امنیتی فراهم است.
5. مانیتورینگ داخلی → با Prometheus و Grafana، متریکها بهصورت داخلی جمعآوری میشوند
گیتلب Omnibus ابزاری استراتژیک برای تیمهای DevOps است که میخواهند بدون دغدغه نصب و پیکربندی اجزای مختلف، به سرعت یک محیط کامل GitLab را راهاندازی کنند.
معماری سطح بالای آن نشان میدهد که چگونه اجزای مختلف (وبسرور، دیتابیس، کش، مدیریت ریپازیتوری و مانیتورینگ) به صورت یکپارچه عمل میکنند تا چرخهی توسعه نرمافزار را بهینه سازند
وقتی سازمان رشد میکند، معماری Omnibus تکسرور دیگر پاسخگو نیست. در این حالت اجزای GitLab باید روی چندین سرور توزیع شوند تا:
ا. High Availability (HA) → جلوگیری از Single Point of Failure
ا. Horizontal Scaling → توانایی مدیریت حجم بالای کاربران و pipelineها
ا. Performance Optimization → پردازش همزمان حجم زیاد jobها و commitها
اجزای کلیدی در معماری Enterprise
1. Load Balancer
ورودی کلاینتها (Web/SSH/API)
توزیع درخواستها بین نودهای مختلف GitLab Web و GitLab Shell
2. Application Servers (GitLab Rails)
اجرای وب و API
میتواند در چندین نود با load balancing اجرا شود
3. Gitaly Cluster (Repository Storage)
هر repository در Gitaly نگهداری میشود
برای HA از Praefect استفاده میشود (مدیریت replication و failover)
4. Redis Cluster
برای session storage و job queue
پیکربندی Master/Replica یا Sentinel
5. PostgreSQL Cluster
پایگاهداده اصلی (HA با Patroni, repmgr یا Cloud Managed DB)
پشتیبانی از replication
6. Sidekiq Cluster
اجرای jobهای pipeline و background taskها
میتواند به صورت توزیعشده روی چند نود اجرا شود
7. Monitoring & Logging (Prometheus, Grafana, ELK)
جمعآوری متریکها، alertها و لاگها
کارگشا هست .
#gitlab #git #devops
https://t.iss.one/unixmens
https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh
https://packages.gitlab.com/gitlab/gitlab-ee
در حقیقت GitLab یکی از محبوبترین پلتفرمهای DevOps Lifecycle Management است که تمام مراحل توسعه نرمافزار شامل مدیریت سورسکد، CI/CD، امنیت، مانیتورینگ و دپلویمنت را در یک بستر یکپارچه ارائه میدهد.
برای سادهسازی نصب و مدیریت این ابزار بزرگ، شرکت GitLab بستهای به نام Omnibus GitLab عرضه کرده است. این بسته شامل تمام اجزای موردنیاز GitLab (مانند دیتابیس، وبسرور، Redis، Nginx و غیره) در یک پکیج واحد است و امکان راهاندازی سریع و مدیریت آسان را فراهم میسازد
ابزار GitLab Omnibus چیست؟
این ساختار Omnibus GitLab یک بستهی all-in-one است که به جای نصب تکتک سرویسهای موردنیاز، همهی اجزا را در یک بستهی مجتمع قرار داده است.
مزایای آن:
نصب سریع تنها با یک دستور (apt-get install gitlab-ee یا yum install gitlab-ee)
مدیریت ساده توسط ابزار gitlab-ctl
کاهش پیچیدگی در پیکربندی
قابلیت بهروزرسانی یکپارچه
اجزای اصلی GitLab Omnibus
در واقع Omnibus GitLab شامل چندین سرویس حیاتی است که با هم برای اجرای کامل GitLab همکاری میکنند:
1. GitLab Rails (Core Application)
بخش اصلی اپلیکیشن که شامل GitLab Web، API و Backend است.
2. Nginx
به عنوان reverse proxy برای مدیریت درخواستهای HTTP/HTTPS.
3. PostgreSQL
پایگاهداده اصلی برای ذخیرهسازی کاربران، پروژهها، issueها، pipelineها و دادههای متنی.
4. Redis
برای cache و queue (Background Jobs و Sidekiq).
5. Sidekiq
برای اجرای پردازشهای غیرهمزمان مانند pipeline jobs و ایمیلها.
6. Gitaly
سرویس مدیریت repositoryها (جایگزین direct Git access).
7. Praefect (در معماری توزیعشده)
برای مدیریت replication در محیطهای با چندین Gitaly.
8. GitLab Shell
مدیریت کلیدهای SSH و دسترسی Git.
9. Prometheus + Grafana
برای مانیتورینگ و مشاهدهی متریک
ویژگیهای کلیدی معماری Omnibus
1. یکپارچگی → همه اجزا در یک پکیج و با حداقل وابستگی خارجی.
2. ماژولار → هر سرویس (Redis، PostgreSQL، Nginx و غیره) به صورت جداگانه قابل مدیریت است.
3. مقیاسپذیری → در نسخههای Advanced (مانند GitLab EE + Omnibus Cluster) میتوان اجزا را جدا و روی سرورهای مختلف توزیع کرد.
4. امنیت → به صورت پیشفرض HTTPS، پیکربندی firewall و hardeningهای امنیتی فراهم است.
5. مانیتورینگ داخلی → با Prometheus و Grafana، متریکها بهصورت داخلی جمعآوری میشوند
گیتلب Omnibus ابزاری استراتژیک برای تیمهای DevOps است که میخواهند بدون دغدغه نصب و پیکربندی اجزای مختلف، به سرعت یک محیط کامل GitLab را راهاندازی کنند.
معماری سطح بالای آن نشان میدهد که چگونه اجزای مختلف (وبسرور، دیتابیس، کش، مدیریت ریپازیتوری و مانیتورینگ) به صورت یکپارچه عمل میکنند تا چرخهی توسعه نرمافزار را بهینه سازند
وقتی سازمان رشد میکند، معماری Omnibus تکسرور دیگر پاسخگو نیست. در این حالت اجزای GitLab باید روی چندین سرور توزیع شوند تا:
ا. High Availability (HA) → جلوگیری از Single Point of Failure
ا. Horizontal Scaling → توانایی مدیریت حجم بالای کاربران و pipelineها
ا. Performance Optimization → پردازش همزمان حجم زیاد jobها و commitها
اجزای کلیدی در معماری Enterprise
1. Load Balancer
ورودی کلاینتها (Web/SSH/API)
توزیع درخواستها بین نودهای مختلف GitLab Web و GitLab Shell
2. Application Servers (GitLab Rails)
اجرای وب و API
میتواند در چندین نود با load balancing اجرا شود
3. Gitaly Cluster (Repository Storage)
هر repository در Gitaly نگهداری میشود
برای HA از Praefect استفاده میشود (مدیریت replication و failover)
4. Redis Cluster
برای session storage و job queue
پیکربندی Master/Replica یا Sentinel
5. PostgreSQL Cluster
پایگاهداده اصلی (HA با Patroni, repmgr یا Cloud Managed DB)
پشتیبانی از replication
6. Sidekiq Cluster
اجرای jobهای pipeline و background taskها
میتواند به صورت توزیعشده روی چند نود اجرا شود
7. Monitoring & Logging (Prometheus, Grafana, ELK)
جمعآوری متریکها، alertها و لاگها
کارگشا هست .
#gitlab #git #devops
https://t.iss.one/unixmens
نقد و بررسی مدیریت تست در Azure DevOps و مقایسه با GitLab
#azure #devops #git #gitlab #test #QA
https://t.iss.one/unixmens
#azure #devops #git #gitlab #test #QA
https://t.iss.one/unixmens
Linkedin
نقد و بررسی مدیریت تست در Azure DevOps و مقایسه با GitLab
مدیریت چرخه حیات نرمافزار (ALM) و بهویژه مدیریت فرآیند تست، بخش حیاتی موفقیت پروژههای نرمافزاری است. Azure DevOps یکی از ابزارهای محبوب در این حوزه است و امکانات متعددی برای برنامهریزی، مدیریت کد، تست و انتشار ارائه میدهد.
👍1