GitHub Cheat Sheet

    Привет, Хабр! В очередной раз на глаза попался очень интересный репозиторий. Эта шпаргалка по самым тайным и функциональным возможностям Git и GitHub появилась благодаря выступлениям Зака Холмана одну из статей которого я уже переводил Git and GitHub Secrets на Aloha Ruby Conference 2012 и More Git and GitHub Secrets на WDCNZ 2013. Стоит сказать о том, что проект набрал свыше 1000 старов менее чем за 12 часов. Приведу несколько примеров:

    Hub — Git Wrapper


    Hub — это оболочка над Git, которая сокращает потраченное время на лишнее нажатии клавиш при работе с Git.
    $ hub clone tiimgreen/toc
    > git clone https://github.com/tiimgreen/toc.git
    

    На hub можно сделать алиас git и все будет выглядеть еще удобнее:
    # Remote
    $ git remote add rtomayko
    > git remote add rtomayko git://github.com/rtomayko/CURRENT_REPO.git
    
    #Fetch
    $ git fetch mislav
    > git remote add mislav git://github.com/mislav/REPO.git
    
    #Fork
    $ git fork
    [ repo forked on GitHub ]
    > git remote add -f YOUR_USER git@github.com:YOUR_USER/CURRENT_REPO.git
    



    Предыдущая ветка


    Для перехода в предыдущую директорию мы используем:
    $ cd -
    

    Аналогично можно переключаться между веткам в Git:
    $ git checkout -
    # Switched to branch 'master'
    
    $ git checkout -
    # Switched to branch 'next'
    
    $ git checkout -
    # Switched to branch 'master'
    


    Закрытие Issues коммитами


    Для этого в коммите нужно указать номер Issue и добавить слово однокоренное с fix/fixes/fixed или close/closes/closed:
    $ git commit -m "Fix cock up, fixes #12"
    

    image

    Checking out Pull Requests


    Если вы хотите выполнить checkout для pull requests, вам сначала нужно забрать его:
    $ git fetch origin '+refs/pull/*/head:refs/pull/*'
    

    После чего уже произвести сам checkout:
    $ git checkout refs/pull/42
    


    Просмотр истории коммитов конкретного автора


    Для этого нужно добавить параметр ?author=username в URL:
    https://github.com/rails/rails/commits/master?author=dhh
    


    Стилизованный Git Log


    $ git log --all --graph --decorate --oneline --abbrev-commit
    

    image

    Git Query


    Git Query позволяет вам находить предыдущие коммиты по сообщениям, где «query» искомая фраза:
    $ git show :/query
    


    И еще целое множество различных секретов на github-cheet-sheet.

    Спасибо всем за внимание.
    • +40
    • 16,9k
    • 8
    Поделиться публикацией

    Похожие публикации

    Комментарии 8

      +1
      Хм. Если использовать hub, то придется привыкать конечно. Я сейчас работаю над проектом с меркуриалом, в уме «hg status», руки набирают — «git status»
      Если же сделать alias — то есть вариант что забудешь, какая команда все-таки используется в настоящем git, хотя это не страшно конечно если работаешь только за своим компом
        +3
        Извините, что немного не в тему, но нет ли враппера гит, притворяющегося меркуриалом?

        $ hgit up commit
        > git checkout commit

        $ hgit cat file
        > git show file

        Сложнее со всякими rebase, mq, переключением ветвей, тегами.

        Хорошо бы, чтобы враппер по умолчанию писал транслированную команду гита, чтобы помочь пользователю изучать гит.
          +2
          Может, вам подойдёт hg-git?
          Но если ваша цель «изучать гит», то, конечно, он не поможет.
          +2
          Мне кажется штука скорее вредная, чем полезная. Если бы можно было полностью заменить git этим враппером (забыть оригинальный синтаксис git), то да, было бы хорошо. Но ведь не только на GitHub приходится работать. Т.е. нужно будет помнить и команды git, и команды hub.
            –1
            С одной стороны вы правы, но некоторым достаточно одного GitHub. И другие то маленькие лайфхаки из поста работают без hub враппера…
            +1
            Для команды log опция --oneline подразумевает опцию --abbrev-commit.
            Выдержка из man-а:
            --oneline
            This is a shorthand for "--pretty=oneline --abbrev-commit" used together.
            Так что у вас в примере стилизованный git-log можно убрать --abbrev-commit. Я обнаружил, потому что у меня есть похожий алиас, но я не использую --abbrev-commit и всё выглядит так же.
              +1
              Закрытие Issues коммитами

              Для этого в коммите нужно указать номер Issue и добавить слово однокоренное с fix/fixes/fixed или close/closes/closed:
              Кстати, работает ещё resolved. Обнаружила совершенно случайно. Возможно ещё какие-то, если у кого-то есть список — пожалуйста, поделитесь.

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое