We Make your Working Easy.​

آموزش دستورات پر کاربرد git و github

git   version


برای فهمیدن ورژن git نصب شده:

git –version

git   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 –list

git   init


برای ایجاد یک repository خالی:

(فولدر جاری به عنوان repository در نظر گرفته می شود.)

git init

برای ایجاد یک repository خالی با نام انتخابی:

(فولدری با نام انتخابی به عنوان repository در نظر گرفته می شود.)

git init myRepositoryName

git   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 newRepositoryName

git   add

برای add کردن فایل جدید یا تغییر کرده به stage:

git add myFileName.format

برای add کردن همه فایل هایی که در پروژه تغییر کرده اند به stage:

git add .
git add *
git add -A

git   rm

برای حذف فایل انتخابی در stage:

git rm myFileName.format

git   reset

برای برگرداندن فایل تغییر یافته از stage به حالت قبل از git add یا git rm:

git reset HEAD myFileName.format

git   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 -s

git   branch

برای ایجاد یک branch جدید:

git branch -M myBranchName

برای نمایش branch های موجود در یک repository:

git branch

برای حذف یک branch موجود:

git branch -D myBranchName

git   checkout

برای جابجایی بین branch ها:

git checkout myBranchName

برای ایجاد یک branch جدید و انتقال به آن:

git checkout -b myNewBranchName

برای برگرداندن به وضعیت اولیه در فایلهایی که به اشتباه merge شده اند:

git checkout -m fileName.format

git   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 fetch
git 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 –merges

git   whatchanged

برای مشاهده log های commitهاست و به جای این دستور، استفاده از دستور git log توصیه می شود:

git whatchanged

git   shortlog

برای مشاهده خلاصه ای از دستور git log: و نیز برای دانستن اینکه چه کسی روی چه چیزی کار کرده است:

git shortlog

git   show

برای مشاهده جزئیات یک commit خاص:

git show commitHashCode
مثال-
git show 1fa88e2e12cff9b0fa08bc5169c81739054cfa11

در مقایسه با دستور git log، دستور git show جزئیات مربوط به یک commit خاص را نمایش می دهد.

git show

git   merge

برای ادغام یا merge کردن branch انتخابی در branch جاری:

git merge branchName

برای ادغام یا merge کردن branch انتخابی در branch جاری، با این شرط که تاریخچه commit های branch انتخابی در branch اصلی وارد نشود:

git merge branchName –squash

git   rebase

برای ادغام یا merge کردن دو branch در یک branch (عملکرد آن مشابه git merge است.)

git rebase base
Rebasing فرآیند ترکیب یا جابجایی دنباله ای از commitها در بالای یک commit پایه جدید است. git rebase فرآیند خطی ادغام است.

git   bisect

برای پیدا کردن commitهای بد:

     گام 1- شروع کار

git bisect start

     گام 2- معرفی یک commit خوب به git:

git bisect good a123

     گام 3- معرفی یک commit بد به git:

git bisect bad z123

git   cherry-pick

برای انتخاب یک commit از یک branch و اعمال آن به branch های دیگر:

git cherry-pick commitHashCode

git   archive

برای ترکیب چند فایل در قالب یک فایل واحد:

git archive –format zip HEAD > archive-HEAD.zip
دستور git archive چند فایل را در یک فایل واحد ترکیب می کند. مانند ابزار zip است یعنی می تواند فایلها را از حالت فشرده خارج کرده و به هرکدام از فایلها به طور جداگانه دسترسی بدهد. یک فایل zip از بازبینی فعلی ایجاد می کند.

هنگام گرفتن کدها با دستور git pull معمولا باید rebase (و نه merge) را اجرا کنیم. این کار از merge های متعدد جلوگیری می کند.

git pull –rebase

git   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-tag

git   diff

برای مقایسه فایل کاری با نسخه آن در git:

git diff HEAD filename.format
مثال-
git diff HEAD index.html

برای مقایسه دو branch:

git diff branch1   branch2

git   citool

برای داشتن برنامه ای گرافیکی برای اجرای دستورات git:

git citool

git   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 false

Have 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.