this repo is for practicing. please fork this repo to you github account. in the end of practice please open a pull request to this repo with you student id and your name in the name and descritpion of pull request
- ابتدا یک
forkاز روی پروژه مشخص شده انجام میدهید - در قدم بعدی پروژه
forkشده را در دستگاه خودcloneکرده - در ادامه بر روی پروژه لوکال گیت رو تغییراتی که مشخص شده انجام خواهید داد
- با انجام هرکدام از تغییرات شما باید پروژه
forkشده را اپدیت کنید - در تمامی مراحل شما باید
resolve conflictsانجام بدهید و از مراحل انجام ان عکس گرفته - در انتهای تغییرات روی پروژه لوکال و اپدیت کردن ریپوزیتوری گیتهاب شما باید برنچ مشخص شده
pull requestبزنید روی ریپو اصلی قرار داده شده
- شما در ادیتور vscode تمام تغییرات را انجام داده و تمام دستورات را اجرا کرده و از افزونه source control حتما استفاده کرده ( برای مشخص شدن branching شما بسیار مهم است اگر ادیتور دیگری استفاده میکنید از version control یا source control ان عکس بگیرید )
- شما در هر مرحله اجرای دستورات از صفحه ترمینال خود عکس گرفته و تصویر از کل صفحه ادیتور باشد تا هم فایل اصلی هم برنچ های شما و هم صفحه ترمینال مشخص باشد
-
حتما حتما شما باید در مرحله انتهایی مانند جلسه برگزار شده از روی ریپوزیتوری گیتهاب خودتون روی برنچ پروژه اصلی
pull requestبزنید و حتما متن و پیامpulll requestبرابر شماره دانشجویی و اسم شما باشد در غیر اینصورت ممکن است نمره ای به شما تعلق نگیرد -
اگر سورس کنترل یا ابزار بر روی vscode کار نمیکند میتونید از git log --all --graph استفاده کنید
-
از تغییراتی که در گیتهاب هم میدید حتما عکس بگیرید و همرو در قالب یک پی دی اف یا zip حتما حتما به ترتیب بزارید
-
هر برنچی که درست میکنید محتویات فایل اصلی رو پاک کنید اول بعد کامیت هارو بنویسید توش
-
کلیت تمرین حول برنچینگ و resolve conlict و collaboration هستش و متن کامیت ها و متن فایل اگر به مشکلی بخوره اهمیت چندانی نداره ولی ترتیب ها رعایت بشه و شماره کامیت ها برای هر برنچ رعایت بشه حتما
-
همچنین اگر در resolve conflict به مشکلی خوردید و نمیدنستید کدوم تغییر رو ادغام کنید برنچ اصلی تر اولیت قرار بدید
- ابتدا به ادرس پروژه اصلی رفته https://github.com/Bardiya-basafa/git-github-exercise
- ریپوزیتوری را
forkکرده - در صفحه گیتهاب خودتان ریپوزیتوری را بر روی دستگاه خودتون
cloneکنید
-
در پروژه فقط یک فایل متنی وجود دارد و نیازی به اضافه کردن فایل جدید نیست و فقط با یک فایل کار خواهید کرد در این تمرین برای سادگی تمرین
-
در این تمرین برای انجام هر کامیت و تغییرات فقط بر روی فایل اصلی به این صورت عمل میشود
-
<number of the commit> from <your name or github user name>:<base branch name> /<feature branch name>
تمام تغییرات بر روی file.txt اضافه خواهد شد
یک نمونه مثال : کامیت اولی که شما روی برنچ main در دستگاه خود خواهید زد اینگونه خواهد بود
commit message = second commit from username:main
file.txt content
FIRST COMMIT from bradiya-basafa:main
second commit from your-username:main
- شما در این مرحله سه کامیت روی برنچ مین خواهید زد تغییرات را پوش کرده
-
در این مرحله از بعد از سه کامیت روی main برنچ develop را ساخته ودو کامیت خواهید زد(first and second) و سپس پوش کرده
-
سپس به ریپوی گیتهاب خودتان رفته و دو کامیت از روی گیتهاب روی برنچ develop زده (third and forth) حتما حتما از گیتهاب تغییر داده باشید و عکس بگیرید
-
سپس با توجه به مطالب گفته شده در کلاس تغییرات انجام شده روی develop را از روی گیتهاب به دستگاه خودتان وارد کنید و resolve conflicts کنید در هر مرحله resolve conflict تغییرات جدید تر را ادغام کنید
-
حال در این مرحله از روی کامیت دوم برنچ develop (با git log --all --graph هش کامیت را پیدا کنید ) برنچ feature را ساخته و دو کامیت روی این برنچ زده دقت کنید که به هیچ عنوان کامیت هارا پاک نکنید (روش برنچ روی هیستوری کامیت گفته شده)
-
برنچ feature را پوش کرده و دو کامیت دیگر روی برنچ feature بزنید
-
حال تغییرات یک کامیت قبل برنچ feature را به حالت staged برگردانده (راهنمایی : با کمک reset or checkout میتوان انجام داد)
-
حال این تغییرات را ابتدا به کمک stash روی برنچ develop اعمال کرده و resolve conflict کرده ( تغییرات جدید اعمال شود incoming) و سپس روی برنچ feature برگشته و همیت تغییرات را فقط با کمک stash اعمال کرده و دوباره کامیت کنید
-
در اخر هردو برنچ را اپدیت کرده و پوش کنید
-
در این مرحله شما باید به روی برنچ feature رفته
-
برنچ feature را rebase کنید به develop و resolve conflicts کنید
-
درانتها دو کامیت روی هر دو برنچ زده و پوش کرده
-
در این مرحله دوباره در صفحه گیتهاب یک کامیت روی برنچ feature زده و در دستگاه خودتون هم یک کامیت زده
-
سپس تغییرات جدید را از ریپوی گیتهاب گرفته و با کمک fetch و merge و برنچ origin/feature اپدیت کرده و سپس پوش میکنید
-
در این مرحله تمام تغییرات پوش شده باید باشد روی هردو برنچ گیتهاب و همه اپدیت باشند
-
به تب pull requests رفته و یک pull request از feature به روی develop باز میکنید
-
حتما توجه کنید هردو از ریپوزیتور خودتون باشه
-
سپس resolve conflict کرده و مرج میکنید وfeature را delete میکنید
-
در انتها به pull requests رفته و با اسم خودتون و شماره دانشجویی از برنچ develop خودتون به برنچ main پروژه اصلی ای fork کردید pull request بزنید
-
اسم و شماره دانشجویی خیلی مهم هستش و معیار اصلی تصحیح تمرین از اینجا هست و دیدن هیستوری کامیت شما

