Comments 51
Да, удобно… Но вот только git submodules не поддерживает. Проекты с субмодулями приходится из консоли коммитить :(
А еще школьникам, студентам, учителям могут бесплатно выделить micro план на год-два. (Так он стоит 7$)
Кроме Эклипса, плагины для VCS есть и у Visual Studio (2008/2010), сам пользуюсь Mercurial и Git напрямую из студии, — очень удобно.
кто нибудь знает, как заставить MINGW по-русски ввод понимать?
Нужен именно Mingw (то есть линуксовое окружение) или просто возможность работать с Git из консоли?

Если второе, то может помощь utf8-git-on-windows. Там набор из msysgit+tortoisegit, приведенных к единому utf8-знаменателю, вместо обычного разброда и шатания в виде cp1251 в именах файлов, cp866 в консоли и ansi во внутренних скриптах msysgit.
Чтобы кириллица нормально вводилась в MinGW bash делаем следующее:
В файлик ~/.inputrc добавляем следующие строчки
set output-meta on
set convert-meta off
А зачем держать какую-то прогу если через ssh-keygen все само делается?

И еще, напишите кто-нибудь, пожалуйста, статью как правильно работать с форкнутыми проектами и пулл реквестами. Например, как правильно забирать изменения из апстрима и не включать в пулл реквест кучу мерж коммитов, или что делать если в апстриме поменялись файлы, которые в пулл реквесте — ребэйс с форсом или отдавать мерж коммит, или это ложится на плечи самого мэйнтейнера?
git pull github
git push github brunch_name

перед этим сделать
git remote add github ilia-maslakov@github.com/ilia-maslakov/mc.git

вместо ilia-maslakov@github.com/ilia-maslakov/mc.git подставить урл доступа к репу.

и да, присоединяюсь к предложению добавить эту инфу к топику, чтобы проще было новичку форкнуть готовый проект с полной историей коммитов.
Самый основной метод:
1. Форкаете репозиторий github.com/user1/project, получаете github.com/you/project
2. Уже форкнутый репозиторий сливаете себе на комп:
git clone git@github.com:/you/project project
3. Создаёте отсылку на «родительский» репозитарий, например как на upstream
git remote add git@github.com:/user1/project upstream, чтобы потом сливать изменения с «родителя» себе git pull upstream master
4. Создаёте новую ветку
git checkout -b feature
5. Работаете, делаете коммиты, в случае необходимости отслеживания изменений в «родителе», сливаете изменения с него и вливаете в свою ветку таким образом:
git checkout master
git pull upstream master
git checkout feature
git merge master

6. Когда работу сделали, заливаете изменения в свой github-репозиторий в свою ветку:
git push origin feature
7. Теперь идёте на гитхаб, в свой репозиторий и жмёте вверху кнопочку «Pull request»
8. Слева выбираете в какую ветку будут вливаться изменения в родительском репозитории, справа — какие изменения будут браться с вашего репозитория. По примеру: справа project/master, слева project/feature.
ВЫЖНО: Договоритесь с владельцем «родительского» репозитория, в какую ветку будете вливать изменения (он может написать это в README)
9. Заполняете название и описание (название потом попадёт в описание мёрдж-коммита и станет достоянием общественности, учтите это).
10. Нажимаете Send Pull Request

Вуаля, вы его отправили. Владелец рассмотрит ваши изменения и, возможно, их примет и вольёт к себе.
На практике, лучше перед посылкой пулл-реквестов, вручную синхронизироваться с веткой, в которую будете посылать изменения, чтобы у владельца merge прошёл гладко (больше шансов, что пулл примут ;-) )
Не забудьте потом сделать git pull upstream master, чтобы увидеть изменения у себя.

Надеюсь, это мини-руководство поможет вам сделать мир чуточку лучше )))
git merge master
Вот тут, если я не ошибаюсь создастся мерж-коммит, так? A вдруг мэйнтейнер не захочет чтобы у него в истории были невнятные merge from upstream/master?

Тогда стоит посмотреть в сторону git rebase
git rebase master
Правда, стоит учесть, что git rebase меняет id коммитов, и, следовательно, его нужно делать ТОЛЬКО тогда, когда ваши изменения ещё лежат локально (т.е. ещё не за-push-ены на удалённый репозитарий)
в 3-ем пункте, чтобы сделать отсылку на оригинальный репозиторий — нужно адрес репы и upstream поменять местами:
git remote add upstream https://github.com/user1/project

источник
Использую phpStorm,Pycharm, поддержка github в виде плагина установленного по умолчанию.
Оценка 5 из 5 как продуктов вообщем так и работы плагина.
почему то в phpStorm 4.0.2 push зависает.
Не сталкивались?
может где видели описание по настройке?
Небольшое дополнение для пользователей Windows.
Консольный клиент (Git Bash) ищет приватный ключ ssh по пути ~/.ssh. Узнать, где находится этот каталог можно выполнив:
cd ~
pwd
Я никак не могу нигде найти рецепт работы с Git+Eclipse. Как выкачать себе проект, чтобы он был нормальным eclipse проектом, и при этом можно было коммитить и делать push. С svn алгоритм такой: новый проект из svn -> создать проект используя визард, и у нас есть проект, привязанный к репозиторию. Как быть с git'ом?
… при этом не очень бы хотелось хранить файлы .project и .classpath в репозитории
Я хотел сказать, что хранение этих файлов в git решило бы проблему, можно выкачать код и импортировать проект. Но не хочется хранить IDE-specific файлы
нужно установить плагин EGit (Help -> Eclipse Marketplace...)
Затем правой кнопкой по проекту в Eclipse, выбрать Team -> Share Project. После установки egit там появится мастер для git
Вы меня недооцениваете) Egit конечно стоит. Вопрос как в пустом воркспейсе получить привязанный проект
Ну почти то, что нужно. Только еще надо будет отдельно сказать share project, чтобы привязать проект к репозиторию. Но вообще у меня почему-то не работает Import(Eclipse 3.7, Egit 1.0)
UFO landed and left these words here
В дополнение к этой статье, сделайте пожалуйста полноценное описание, как на github делать Fork, отправлять патчи, подтягивать изменения из основной ветки и т.д.
Почему-то в семерке новой его нет в доступных модулях, хотя раньше был.
Итак, качаем зип архив plugins.netbeans.org/download/plugin/39785 и распаковываем.
Потом сервис->подключаемые модули->загружено там батон «добавить подключаемые подули», через обзор подключаем скачанные гитлиб и гит.
Только что обновил каталог плагинов в NetBeans и Git плагин появился, датирован 2 августа сего года. Но все равно спасибо за ваш комментарий.
Спасибо за ваш оттвет, но вот незадача до сегодняшнего дня поиск по плагинам не находил этот плагин. Из этого и родился мой вопрос)
Можно использовать HTTPS вместо SSH для доступа к репозиторию на ГитХабе.
Вам удалось сочинить ещё одну неплохую «домашнюю страницу» по Git, то есть отправную точку самостоятельных поисков информации.
Хорошая подборка ссылок. а вот сама статья не уверен, что для хабра.
Странно как-то: ключи сгенерированые через puttygen отказываются работать, а вот те что сделаны ssh-keygen заработали без проблем.
Гм. До переустановки винды все работало. Сейчас поставил Tortoise Git, пытаюсь скачать репозиторий с git в какую-нибудь папку, а компьютер никак не реагирует на то, что я ему велю :)
Жму правой кнопкой в папке, выбираю «Git Clone», меню закрывается и ничего не происходит.
От чего это может быть?
Добавлю: если вы хотите сразу после прохождения обучающего курса залить результаты на гитхаб и продолжить работу в системе не устанавливая GUI, вводите команды в консоли

cd ~/.ssh  
ssh-keygen -t rsa -C «yourmail@yourmail.org»

Далее смотрите где coздался файл id_rsa.pub и вводите его содержимое как SSH-RSA ключ в настройках вашего логина в github

Далее создаете нужное репо на гитхабе и заливаете в него результаты обучения. Команды на заливку гитхаб подскажет, но в общем должно быть что-то вроде

git remote add origin git@github.com:myusername/myreponame.git  
git push origin master
Не подскажите, как подключить github в android studio, но без использования ssh?
Всем привет. Не могу понять логики работы с ветками, точнее что именно коммитить?
Т.е. вот у меня есть master, работаю я там с проектом на Django. Появился глюк, решил выделить его в отдельную ветку, предположим issue с полной копией всего приложения. Перешел в нее. Работаю, в локальной папке у меня ветка issue. После фикса ошибки какая логика действий? Не в смысле как сливать ветки, это понятно. А какие файлы коммитить?
Я на опыте понял, что git add * очень плохой путь. Почему-то некоторые файлы в результате просто исчезали из issue, причем попытки сделать git clone даже с предыдущих удачных коммитов ситуацию не меняли. Дело запутывалось настолько, что мне уже несколько раз приходилось просто тупо сносить репу и снова все загружать с локалки.
Но что добавлять в коммит? git status и потом ручками все файлы, которые изменились?
Для тех, кто давно с git работает, это видимо самоочевидно, я ни разу не встретил описания именно логики этой работы с файлами. Сейчас прохожу CS50 Web App, надеялся, что может уж приглашенный лектор с git все объяснит, но увы, обычный набор примеров, как создать ветку и переходить между ними.
Only those users with full accounts are able to leave comments. Log in, please.