10 نکته سودمند درباره Git
یکشنبه 19 آذر 1396در طول چند سال گذشته، Git بسیار محبوب شده است و به یکی از پر استفادهترین سیستمهای کنترل ورژن تبدیل شده است. Git توسط توسعهدهندگان برنامهنویسی با زبانهای مختلف و تیمهای برنامهنویسی، از پروژههای open-source تا پروژههای codebases بزرگ مانند هسته لینوکس استفاده میشود.
در این مقاله نکات مفیدی را به شما ارائه میدهیم که تجربه و کار شما با git را بهبود میبخشد.
git log --no-merges
جهت یادگیری گیت میتوانید آموزش git از صفر را در سایت تاپ لرن مشاهده کنید .
این دستور git سوابق تمام commitها را نشان میدهد اما commitهایی که دو شاخه (branch) را با یکدیگر ادغام کردهاند را نادیده میگیرد. این دستور به شما اجازه میدهد تا به سرعت تمام تغییرات انجامشده در پروژه را ببینید، بدون اینکه ادغام commitها، سوابق git را بههم بریزد.
$git log --no-merges commit e75fe8bf2c5c46dbd9e1bc20d2f8b2ede81f2d93 Author: John Date: Mon Jul 10 18:04:50 2017 +0300 Add new branch. commit 080dfd342ab0dbdf69858e3b01e18584d4eade34 Author: John Date: Mon Jul 11 15:40:56 2017 +0300 Added index.php. commit 2965803c0deeac1f2427ec2f5394493ed4211655 Author: John Date: Mon Jul 13 12:14:50 2017 +0300 Added css files.
git revert --no-commit [commit]
Git revert یک commit جدید تولید میکند که تغییرات انجام شده توسط commitهای موجود را نادیده گرفته و محتوای جدیدی را ایجاد میکند. اگر میخواهید commitهای نامگذاریشده را revert کنید و از commitهای اتوماتیک جلوگیری کنید، میتوانید از flag --no-commit یا shorthand –n استفاده کنید.
git diff -w
Git diff تغییرات بین دو commit، دو درخت یا دو فایل روی دیسک را نشان میدهد. وقتی چند نفر روی یک پروژه کار میکنند، اغلب تغییراتی به دلیل تبهای موجود در ویرایشگر متن و تنظیمات فضا وجود دارد. برای رفع اختلافات ناشی از فضای خالی هنگام مقایسه خطوط، میتوانید از آن با -w استفاده کنید.
git diff --stat
تغییرات هر فایل در طول زمان را نشان میدهد. میتوانید سه پارامتر به آن اضافه کنید: width برای تغییر عرض پیشفرض، name-width برای تنظیم عرض filename و count برای محدود کردن خروجی برای اولین شماره خطوط
$ git diff --stat index.php | 83 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 43 insertions(+), 40 deletions(-)
$ git diff --stat-width=10 index.php | 83 +++--- 1 file changed, 43 insertions(+), 40 deletions(-)
^git reset --soft HEAD
میتوانید برای یک commit معین، head را ریست کنید، بدون اینکه به ایندکس فایلها و درختها دست بزنید. تمام تغییرات انجام شده بعد از این commit به مرحله "staged for commit" منتقل میشوند. بعد از آن فقط لازم است که git commit را اجرا کنید تا آنها اضافه شوند.
git stash branch [branch-name] [stash]
این دستور یک شاخه جدید به نام branch-name را ایجاد کرده و آن را چک میکند، سپس تغییرات از روی stash معینی اعمال میشوند. اگر هیچ stashای مشخص نشده باشد، از آخرین stash استفاده میکند. این دستور به شما این امکان را میدهد تا هرگونه تغییرات ذخیرهشدهای را به یک محیط امن اعمال کنید، تا بعدا بتوانید آنها را درون master ادغام کنید.
git branch -a
این دستور تمام پیگیریها از راه دور و شاخههای محلی را نشان میدهد. شما میتوانید از merged-- استفاده کنید تا فقط شاخههایی که با شاخه master ادغام شدهاند را مشاهده کنید. به این ترتیب میتوانید شاخههای خود را پیگیری کرده و آنهایی که دیگر استفاده نمیشوند را پیدا کرده و حذف کنید.
$ git branch -a dev * master remotes/origin/HEAD -> origin/master remotes/origin/dev
git commit --amend
با git commit –amend میتوانید commit قبلی خودتان را، به جای آن که یکی دیگر بسازید، تغییر دهید. اگر شما تغییرات خود را به یک شاخه ریموت push کنید، میتوانید از این دستور برای اصلاح آخرین commit، اضافه کردن آخرین تغییرات و حتی تغییر پیغام commit خود استفاده کنید.
git pull --rebase
این دستور ابتدا عمل pull را روی تغییرات اعمال میکند و سپس commitهای unpushed را بالای آخرین ورژن شاخه ریموت rebase میکند. گزینه rebase-- میتواند برای اطمینان از سوابق خطی با جلوگیری از ادغام غیرضروری commitها مورد استفاده قرار گیرد.
git add -p
وقتی از این دستور استفاده میکنید، به جای آنکه تغییرات بلافاصله به ایندکس اضافه شوند، با هر تغییر، در مورد کاری که میخواهید همراه با آن انجام دهید سوال میکند. به این ترتیب به شما اجازه میدهد تا به طور تعاملی دقیقا همان چیزی را که میخواهید انجام شود را انتخاب کنید.
diff --git a/package.json b/package.json index db78332..a814f7e 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,6 @@ }, "devDependencies": { "bootstrap-sass": "^3.3.7", - "gulp": "^3.9.1", "jquery": "^3.1.0", "laravel-elixir": "^6.0.0-11", "laravel-elixir-vue-2": "^0.2.0", Stage this hunk [y,n,q,a,d,/,e,?]?
- VisualStudio
- 3k بازدید
- 0 تشکر