10 полезных Git команд, которые облегчат работу

Ведущие разработчики поделились топом Git команд, которые незаменимы в работе с самой популярной системой контроля версий.

За последние несколько лет популярность git возросла, что позволило этой системе стать наиболее распространенной. Она используется разными программистами и командами разработчиков, начиная небольшими опен-сорс проектами и заканчивая linux kernel. Существует большое количество Git команд, которые важно знать.

Давайте же разберем топ Git команд.

git log ‐‐no-merges

Эта команда показывает всю историю коммитов, но пропускает те, в которых произошли слияния двух веток, или где был решен конфликт фиксации. Она позволяет быстро просмотреть все изменения, сделанные в проекте без скопления слияний в истории 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 создает новый коммит с содержимым, полученным из всех существующих коммитов, которые были им отменены. Если вы хотите обратить названный комит и избежать автоматических, можете использовать ‐‐no-commit или сокращение -n.

git diff -w

Git diff показывает изменения между двумя коммитами, рабочими деревьями или файлами на диске. Когда несколько человек работает над одним и тем же проектом, часто происходят изменения из-за tab текстового редактора. Чтобы игнорировать различия, вызванные пробелами при сравнении строк, можно использовать команду с -w.

git diff ‐‐stat

Показывает, как каждый файл был изменен за определенное время. Вы можете добавить 3 параметра: width для определения ширины вывода по умолчанию, name-width для установки ширины имени файла и 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^

Сбросьте head до определенного коммита, не касаясь индексного файла и рабочего дерева. Все изменения, сделанные после этой фиксации, переносятся на этап “поставлены для коммита”. Далее вам просто нужно запустить git commit, чтобы добавить их обратно.

git stash branch [branch-name] [stash]

Эта команда создает новую ветку с именем branch-name и проверяет ее, а затем применяет к ней изменения от заданного stash и сбрасывает его. Если ни один stash не указан, используется последний. Это позволяет применять любые спрятанные изменения в более безопасной среде, которая впоследствии может быть объединена с мастером.

git branch -a

Команда показывает список всех удаленных и локальных ветвей. Вы можете использовать флаг ‐‐merged, чтобы видеть только те ветки, которые полностью объединены с главной. Таким образом, вы можете отслеживать свои ветки и узнавать, какие из них больше не используются, и могут быть удалены.

$ git branch -a

  dev
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/dev

git commit ‐‐amend

С помощью git commit ‐‐amend вы можете изменить свой предыдущий коммит, вместо того чтобы создавать новый. Если вы не внесли свои изменения в удаленную ветку, можете использовать эту команду для внесения изменений в последний коммит, добавления последних изменений и даже изменения сообщения о коммите.

git pull ‐‐rebase

Git pull ‐‐rebase заставляет git сначала вытащить изменения, а затем переустановить разблокированные коммиты поверх последней версии удаленной ветки. Параметр ‐‐rebase может использоваться для создания линейной истории, избегая ненужных фиксаций.

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,?]? 

Источник

Также вам могут понравиться:

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

Библиотека программиста
18 октября 2017

Шпаргалка по Git, в которой представлены основные команды

Git сегодня - это очень популярная система контроля версий. Поэтому шпаргал...
admin
21 июня 2017

Про Git, Github и Gitflow простыми словами

Не самое исчерпывающее, но точно вполне доходчивое руководство по Git, Gith...
admin
23 февраля 2017

Git за полчаса: руководство для начинающих

В последние годы популярность git демонстрирует взрывной рост. Эта система ...