We Make your Working Easy.
آموزش دستورات پر کاربرد git و  github
		git    version
		برای فهمیدن ورژن git نصب شده:
git –versiongit   config
		برای تنظیم نام:
git config –global user.name “Mehdi Raeisi”برای تنظیم email:
git config –global user.email admin@mehdira.comبرای مشاهده نام تنظیم شده:
git config –global user.nameبرای مشاهده email تنظیم شده:
git config –global user.emailبرای مشاهده تمامی تنظیمات انجام شده:
git config –listgit   init
		برای ایجاد یک repository خالی:
(فولدر جاری به عنوان repository در نظر گرفته می شود.)
git initبرای ایجاد یک repository خالی با نام انتخابی:
(فولدری با نام انتخابی به عنوان repository در نظر گرفته می شود.)
git init myRepositoryNamegit   clone
		برای انتقال repository از github به سیستم:
git clone https://github.com/mehdira/git-crash-course.gitبرای انتقال repository از github به سیستم، با تعیین نامی جدید:
git clone https://github.com/mehdira/git-crash-course.git newRepositoryNamegit   add
		برای add کردن فایل جدید یا تغییر کرده به stage:
git add myFileName.formatبرای add کردن همه فایل هایی که در پروژه تغییر کرده اند به stage:
git add .git add *
git add -A
git   rm
		برای حذف فایل انتخابی در stage:
git rm myFileName.formatgit   reset
		برای برگرداندن فایل تغییر یافته از stage به حالت قبل از git add یا git rm:
git reset HEAD myFileName.formatgit   commit
		برای تایید تغییرات موجود در stage:
git commit -m “my about text”برای تغییر و ویرایش پیام آخرین commit:
git ommit –amend -m “new my about text”git   status
		برای نمایش فایلهای در دست تغییر و فایلهای موجود در ناحیه stage که هنوز commit نشده اند:
git statusبرای نمایش git status به صورت خلاصه:
git status -sgit   branch
		برای ایجاد یک branch جدید:
git branch -M myBranchNameبرای نمایش branch های موجود در یک repository:
git branchبرای حذف یک branch موجود:
git branch -D myBranchNamegit   checkout
		برای جابجایی بین branch ها:
git checkout myBranchNameبرای ایجاد یک branch جدید و انتقال به آن:
git checkout -b myNewBranchNameبرای برگرداندن به وضعیت اولیه در فایلهایی که به اشتباه merge شده اند:
git checkout -m fileName.formatgit   remote
		برای مشاهده لیستی از remote های مربوط به repository:
git remoteبرای حذف یک remote از repository:
git remote rm remoteNameبرای دسترسی به repository موجود در github از remote استفاده می شود:
git remote add remoteName urlمثال-
git remote add origin https://github.com/mehdira3000/myGitPracticing3.git
- origin: نام مستعار لینک است. یعنی remote اصلی. (یک نام رایج است)
 
- http://github.com/… .git: آدرس کپی شده در سایت github.com
 
git   push
		برای انتقال پروژه (repository) از کامپیوتر به github (با استفاده از دستور remote):
git push -u remoteName myBranchNameمثال-
git push -u origin master					برای انتقال پروژه (repository) از کامپیوتر به github (بدون استفاده از دستور remote):
git push https://github.com/mehdira3000/myRepositoryName.git masterباید قبل از استفاده از دستور git push، منبع و قسمت بالایی git تنظیم شود:
git push –set-upstream shortName branchNameمثال-
git push –set-upstream origin featureBranch					git   pull
		برای گرفتن تغییرات از repository موجود در github:
git pull remoteNameمثال-
git pull origin					git   fetch
		برای دانلود تغییرات سایر اعضای تیم از github:
git fetchgit fetch origin main
این دستور اطلاعات مربوط به همه commitها، رفرنس ها و … را دانلود می کند. بنابراین قبل از اعمال این تغییرات در repository کامپیوتر خود، می توان آنها را مرور کرد.
git   stash
		برای ذخیره کردن موقت فایلهای ویرایش شده commit نشده:
git stashبرای دیدن لیست فایلهای stash(دخیره موقت) شده:
git stash listبرای اضافه کردن یک stash به branch:
git stash applyبا دستورات git stash apply و git stash pop، می توان تغییرات ذخیره شده را دوباره اعمال کرد. هر دو فرمان تغییرات ذخیره شده در آخرین stash را دوباره اعمال می کنند. یک stash apply تغییرات را مجددا اعمال می کند درحالیکه stash pop تغییرات را از stash حذف کرده و مجددا آنها را روی نسخه کاری اعمال می کند.
git   log
		برای مشاهده همه commit های قبلی branch جاری (با شروع از آخرین commit):
git logبرای مشاهده همه commit های قبلی branch مورد نظر (با شروع از آخرین commit):
git log branchNameبرای مشاهده همه commit های قبلی از همه branch ها (با شروع از آخرین commit):
git log –allبرای مشاهده همه commit های قبلی حاصل از merge شدن branch ها (با شروع از آخرین commit):
git log –mergesgit   whatchanged
		برای مشاهده log های commitهاست و به جای این دستور، استفاده از دستور git log توصیه می شود:
git whatchangedgit   shortlog
		برای مشاهده خلاصه ای از دستور git log: و نیز برای دانستن اینکه چه کسی روی چه چیزی کار کرده است:
git shortloggit   show
		برای مشاهده جزئیات یک commit خاص:
git show commitHashCodeمثال-
git show 1fa88e2e12cff9b0fa08bc5169c81739054cfa11					در مقایسه با دستور git log، دستور git show جزئیات مربوط به یک commit خاص را نمایش می دهد.
git showgit   merge
		برای ادغام یا merge کردن branch انتخابی در branch جاری:
git merge branchNameبرای ادغام یا merge کردن branch انتخابی در branch جاری، با این شرط که تاریخچه commit های branch انتخابی در branch اصلی وارد نشود:
git merge branchName –squashgit   rebase
		برای ادغام یا merge کردن دو branch در یک branch (عملکرد آن مشابه git merge است.)
git rebase baseRebasing فرآیند ترکیب یا جابجایی دنباله ای از commitها در بالای یک commit پایه جدید است. git rebase فرآیند خطی ادغام است.
git   bisect
		برای پیدا کردن commitهای بد:
گام 1- شروع کار
git bisect startگام 2- معرفی یک commit خوب به git:
git bisect good a123گام 3- معرفی یک commit بد به git:
git bisect bad z123git   cherry-pick
		برای انتخاب یک commit از یک branch و اعمال آن به branch های دیگر:
git cherry-pick commitHashCodegit   archive
		برای ترکیب چند فایل در قالب یک فایل واحد:
git archive –format zip HEAD > archive-HEAD.zipدستور git archive چند فایل را در یک فایل واحد ترکیب می کند. مانند ابزار zip است یعنی می تواند فایلها را از حالت فشرده خارج کرده و به هرکدام از فایلها به طور جداگانه دسترسی بدهد. یک فایل zip از بازبینی فعلی ایجاد می کند.
هنگام گرفتن کدها با دستور git pull معمولا باید rebase (و نه merge) را اجرا کنیم. این کار از merge های متعدد جلوگیری می کند.
git pull –rebasegit   blame
		برای بررسی سطر به سطر محتوای یک فایل و تشخیص اینکه چه کسی هر تغییر را ایجاد کرده:
git blame myFileName.formatمثال-
git blame index.html					git   tag
		برای ایجاد یک tag جدید:
git tag -a tagNameتگها در git مفید هستند و از آنها می توان برای مدیریت انتشار استفاده کرد. tag را می توان مانند یک branch بدون تغییر در نظر گرفت. اهمیت آن هنگام انتشار عمومی خیلی بیشتر است.
git   verify
		برای بررسی امضای gpg مربوط به commit ها: (GPG یا GNU Privacy Guard)
git verify-commitمثال-
git verify-commit f309e6f3c44241dbf94b54c801e821d0b692d624					برای تایید tag:
git verify-taggit   diff
		برای مقایسه فایل کاری با نسخه آن در git:
git diff HEAD filename.formatمثال-
git diff HEAD index.html					برای مقایسه دو branch:
git diff branch1 branch2git   citool
		برای داشتن برنامه ای گرافیکی برای اجرای دستورات git:
git citoolgit   mv
		برای تغییر نام فایل در git:
git mv oldFileName.format newFileName.formatمثال-
git mv index.html    firstPage.html					git   help
		برای داشتن اطلاعات و راهنمایی مربوط به دستورات git:
git help gitCommandمثال-
git help push					git   clean
		برای حذف فایلهایی که هنوز با git add به repository اضافه نشده اند:
git cleanبرای تنظیم ide پیشفرض git:
git config –global core.editor myIDEمثال-
git config –global core.editor emacs					برای ایجاد alias برای دستورات پرکاربرد git:
git config –global alias.myAlias myGitCommandمثال-
git config –global alias.i init
توسط alias می توانیم برای دستورات پرکاربرد خود، نامهای مستعاری تعریف کرده و با آنها دستورات خود را اجرا کنیم.
برای مشاهده درست داکومنتهای فارسی در دستور git status:
git config –global core.quotepath falseHave your Mobile Application
It has never been easier to have your mobile application by us.
Our Vision
We are proud of all our work yet these deserve a spot up-front.
Our hope is to asist you to achieve value through our producted softwares and applications.
We are expert technology and you are expert in your business, so we can help togheter by useing the knowledg of both fields to having the best product.
Together with you, we find the proper solution for our problem.
														










