Russian Qt Forum

Qt => Уроки и статьи => Тема начата: 8Observer8 от Январь 22, 2014, 17:59



Название: Хранение исходников на github.com, а исп. файлов на Yandex.Disk или Google Drive
Отправлено: 8Observer8 от Январь 22, 2014, 17:59
- Регистрируемся на https://github.com/ (https://github.com/)
- Создаём удалённый репозитарий для хранения проекта, для этого: в правом верхнем углу сайта нажимаем значок "+" -> выбираем "New repository"
- В поле "Repository name" пишем имя проекта, например: HelloGit
- В поле "Description" пишем описание проекта, например: Первый проект (можно ничего не писать)
- Нажимаем кнопку "Create repository"
- Скачиваем и устанавливаем Git: http://msysgit.github.io/ (http://msysgit.github.io/)
- Указываем имя и электронную почту, для этого запускаем консоль и вводим команды:
Цитировать
git config --global user.name "Your Name"
git config --global user.email "your_email@whatever.com"

- Указываем окончания строк, для этого вводим команды:
Цитировать
git config --global core.autocrlf false
git config --global core.safecrlf true

Примечание. Имя, электронная почта и окончания строк указываются один раз после установки Git

Для работы с консолью, рекомендую скачать и установить Far Manager: http://www.farmanager.com/download.php (http://www.farmanager.com/download.php)

- Запускаем Far Manager
- С помощью Far'а переходим в папку проекта (управление такое же, как и у TotalCommander)

Примечание. Для того, чтобы в Far'е переключаться между навигацией по папкам и окном вывода консоли, нужно нажимать: Ctrl+O

- Переходим в режим консоли (Ctrl+O)
- Если у нас есть файлы, которые мы не хотим сохранять в хранилище, то создаём файл .gitignore (это не расширение, а полное имя файла, которое начинается с точки) и записываем в него имена файлов в столбик. Для того, чтобы создать файл с помощью Far нужно нажать Ctrl+F4. Содержимое файла .gitignore может быть такое:
Цитировать
text.txt
*.jpg
*.pro.user*

- Инициализируем хранилище. Для этого вводим команду и нажимаем Enter:
Цитировать
git init

- Добавляем в хранилище файл .gitignore:
Цитировать
git add .gitignore

- Добавляем все файлы в хранилище:
Цитировать
git add .

Примечание. Если вы после команды выше получили сообщение "fatal: LF would be replaced by CRLF in ...", то нужно ввести команду (и повторить команду выше):
Цитировать
git config core.autocrlf false

- Делаем коммит (перед оправкой - обязательно)
Цитировать
git commit -am "First Commit"

Примечание. При вводе следующей команду нужно ввести ссылку на Ваш удалённый репозитарий

- Отправляем файлы на сервер github.com:
Цитировать
git push https://github.com/8Observer8/HelloGit.git (https://github.com/8Observer8/HelloGit.git) refs/heads/master:refs/heads/master

- Теперь мы можем обновить страничку на сайте github.com и увидеть свои файлы

- Eсли вы изменили что-то в своём проекте, то выполните последовательно две команды:
Цитировать
git commit -am "First Commit"
Цитировать
git push https://github.com/8Observer8/HelloGit.git (https://github.com/8Observer8/HelloGit.git) refs/heads/master:refs/heads/master

- Eсли вы добавили файлы в проект, то выполните последовательно эти три команды:
Цитировать
git add .
Цитировать
git commit -am "First Commit"
Цитировать
git push https://github.com/8Observer8/HelloGit.git (https://github.com/8Observer8/HelloGit.git) refs/heads/master:refs/heads/master

Сохранение исполняемых файлов на Yandex.Disk или Google.Drive

Для того, чтобы сохранить исполняемые файлы (или архивы проектов) на Yandex.Disk или Google.Drive нужно набрать в google.com, например, Yandex.Disk и нажать кнопку установить. После установки у вас появится папка "Yandex.Disk". Копируйте в эту папку исполняемый файл. Далее, подождите, когда он загрузится на удалённый сервер yandex. Потом нажмите правой кнопкой по файлу и выберите "Yandex.Disk: Copy public link". Теперь вы можете опубликовать (или отослать) ссылку, с которой можно скачать. Например, моя любимая книжка по C++: https://yadi.sk/d/VCvsky11c6wtP (https://yadi.sk/d/VCvsky11c6wtP)

Старая версия инструкции:
Код:
Привет! Это пошаговая инструкция о том как сохранять файлы проекта на удалённый сервер (github.com). Ограничимся пока комментированием изменений и сохранением изменений на удалённый сервер.

У программы Git есть ещё возможности (о которых я возможно напишу позже):
- можно сделать откат к любым закомментированным изменениям
- можно создать несколько независимых веток развития проекта
- об остальных возможностях можно почитать, например здесь: [url=http://githowto.com/ru/]http://githowto.com/ru/[/url]

[b]Краткая версия инструкции[/b]
Установите Git. Я обычно в Far'е захожу в папку с проектом и нажимаю Ctrl+F4 (чтобы создать файл), пишу название файла .gitignore Потом в файле .gitignore пишу файлы и папки, которые не надо сохранять:
[quote]
*.pro.user
build*
[/quote]
- Далее F2 (сохранить), F10 (закрыть файл)
- Тут создаёте проект: https://github.com/
- Возвращаетесь в Far, нажимаете Ctrl+O (показать консоль) и последовательно вводите команды:
[quote]
git init
git add .gitignore
git add .
git commit -am "First Commit"
git git push https://github.com/8Observer8/Qt_ContentFromVkCom.git refs/heads/master:refs/heads/master
[/quote]
В последней команде у вас имя перед .git будет другое. Далее надо будет ввести username и password от github Файлы проекта сохранены на github.com

[B]Инструкция[/B]

- регистрируемся на [url=https://github.com/]https://github.com/[/url]
- создаём удалённый репозитарий для хранения проекта, для этого: в правом верхнем углу сайта нажимаем значок "+" -> выбираем "New repository"
- в поле "Repository name" пишем имя проекта, например: HelloGit
- в поле "Description" пишем описание проекта, например: Первый проект
- нажимаем кнопку "Create repository"
- скачиваем и устанавливаем Git: http://msysgit.github.io/
- указываем имя и электронную почту, для этого запускаем консоль и вводим команды:

[QUOTE]
git config --global user.name "Your Name"
git config --global user.email "your_email@whatever.com"
[/QUOTE]

- указываем окончания строк, для этого вводим команды:

[QUOTE]
git config --global core.autocrlf false
git config --global core.safecrlf true
[/QUOTE]

Примечание. Имя, электронная почта и окончания строк указываются один раз после установки Git

Для работы с консолью, рекомендую скачать и установить Far Manager: [url=http://www.farmanager.com/download.php]http://www.farmanager.com/download.php[/url]

- запускаем Far Manager

- с помощью Far'а переходим в папку проекта

Примечание. Для того, чтобы в Far'е переключаться между навигацией по папкам и окном вывода консоли, нужно нажимать: Ctrl+O

- нажимаем Ctrl+O
- в корне проекта создаём файл: .gitignore
- открываем файл .gitignore и добавляем в него названия файлов, которые мы не хотим добавлять под контроль git, к примеру:
[QUOTE]
*.pro.user
*.txt
[/QUOTE]

- вводим команды:

[QUOTE]
git init
git add .gitignore
git add .
[/QUOTE]

Примечание. Мы можем посмотреть в любой момент текущее состояние наших файлов, набрав: git status

Сохраняем файлы проекта на удалённый репозитарий:

[QUOTE]
git commit -am "First Commit"
git branch
git remote -v
[/QUOTE]

Примечание. При вводе следующей команду нужно ввести ссылку на Ваш удалённый репозитарий

[QUOTE]
git push https://github.com/8Observer8/HelloGit.git refs/heads/master:refs/heads/master
[/QUOTE]

- вводим логин и пароль

Проект сохранён на https://github.com/

Произведём изменения в файле проекта и сохраним эти изменения на https://github.com/

[QUOTE]
git commit -m "Добавил строку для вывода \"Hello, World!\" на экран" main.cpp
git branch
git remote -v
git push https://github.com/8Observer8/HelloGit.git refs/heads/master:refs/heads/master
[/QUOTE]

Добавим новую ветку развития проекта:

[QUOTE]
git checkout -b MyStyle
[/QUOTE]

Примечание (важно!). Если в Qt Creator Вы не видите рядом с названием проекта название ветки, то нужно перезапустить Qt Creator.

Примечания:

1. Вместо предыдущей команды можно написать две следующих:
git branch <имяветки>
git checkout <имяветки>
См. здесь: http://githowto.com/ru/creating_a_branch

2. Мы можем переключаться между ветками развития следующим образом:
[QUOTE]
git checkout master
git checkout MyStyle
[/QUOTE]

3. Мы можем узнавать список веток и имя текущую ветки с помощью команды:
[QUOTE]
git branch
[/QUOTE]

4. Чтобы удалить файл из контроля git нужно выполнить:
[QUOTE]
git rm file1.txt
git commit -am "remove file1.txt"
[/QUOTE]

5. Мы можем посмотреть имена файлов в указаной ветке (здесь master - это имя ветки):
[QUOTE]
git ls-tree -r master --name-only
[/QUOTE]

Допустим в новой ветке мы удаляем несколько файлов, несколько добавляем, а несколько изменяем. И хотим сохранить все изменения на удалённый репозитарий.

[QUOTE]
git rm shape.cpp circle.cpp
git add rectangle.h
[/QUOTE]

Удалили: shape.cpp, circle.cpp
Добавили: rectangle.h
Изменили: main.cpp, shape.h, circle.h, rectangle.h

[QUOTE]
git commit -am "Удалили: shape.cpp circle.cpp. Добавили: rectangle.h. Изменили что-либо в: main.cpp, shape.h, circle.h, rectangle.h"
[/QUOTE]

Сохраним нашу новую ветку на удалённый репозитарий:
[QUOTE]
git branch
git remote -v
git push https://github.com/8Observer8/HelloGit.git refs/heads/MyStyle:refs/heads/MyStyle
[/QUOTE]

Примечание. Обратите внимание, что в предыдущей команде мы написали имя текущей ветки: refs/heads/MyStyle:refs/heads/MyStyle

- вводим логин и пароль

Новая ветка сохранена на https://github.com/


Название: Re: Пошаговая инструкция по Git. Сохранение файлов проекта на удалённый сервер
Отправлено: gil9red от Январь 22, 2014, 18:24
Полезная инструкция :) Спасибо )


Название: Re: Пошаговая инструкция по Git. Сохранение файлов проекта на удалённый сервер
Отправлено: 8Observer8 от Январь 22, 2014, 21:28
gil9red, спасибо за оценку! Очень прятно :)


Название: Re: Пошаговая инструкция по Git. Сохранение файлов проекта на удалённый сервер
Отправлено: 8Observer8 от Январь 30, 2014, 16:24
Исправил ошибки.

Строки:
Цитировать
git add main.cpp
Цитировать
git commit -m "Мой первый комментарий" main.cpp

Заменил на:
Цитировать
git add main.cpp person.h person.cpp
Цитировать
git commit -m "Мой первый комментарий" main.cpp person.h person.cpp

Убрал строку:
Цитировать
git branch --set-upstream-to origin/master master


Название: Re: Пошаговая инструкция по Git. Сохранение файлов проекта на удалённый сервер
Отправлено: kambala от Январь 30, 2014, 19:26
чтобы не перечислять все файлы при коммите есть ключ -a


Название: Re: Пошаговая инструкция по Git. Сохранение файлов проекта на удалённый сервер
Отправлено: 8Observer8 от Январь 30, 2014, 20:33
чтобы не перечислять все файлы при коммите есть ключ -a

Спасибо! Подскажите, как убрать файл из коммита. Дело в том, что я не хочу все добавлять. В проектах Qt я не хочу добавлять "user.pro" файл. Вот если бы была возможность убрать его из коммита, после того, как я добавил все.


Название: Re: Пошаговая инструкция по Git. Сохранение файлов проекта на удалённый сервер
Отправлено: kambala от Январь 30, 2014, 22:35
конкретно этот файл (и прочие ненужные в репозитории) лучше всего игнорировать перманентно через .gitignore

если коммит уже сделан, а ты хочешь его исправить, для этого есть git rebase -i. вот хорошая статья по правке истории: http://rakeroutes.com/blog/deliberate-git/


Название: Re: Пошаговая инструкция по Git. Сохранение файлов проекта на удалённый сервер
Отправлено: 8Observer8 от Январь 31, 2014, 06:59
конкретно этот файл (и прочие ненужные в репозитории) лучше всего игнорировать перманентно через .gitignore

Мне нужно создать файл .gitignore в папке ".git/info/"? Да?

А потом добавить в него такие строки?
Цитировать
*.user.pro
*.txt


Название: Re: Пошаговая инструкция по Git. Сохранение файлов проекта на удалённый сервер
Отправлено: twp от Январь 31, 2014, 14:27
Файл создается в рутовой директории репозитория проекта
http://git-scm.com/book/ru/Основы-Git-Запись-изменений-в-репозиторий#Игнорирование-файлов (http://git-scm.com/book/ru/Основы-Git-Запись-изменений-в-репозиторий#Игнорирование-файлов)


Название: Re: Пошаговая инструкция по Git. Сохранение файлов проекта на удалённый сервер
Отправлено: Old от Январь 31, 2014, 15:07
Хочу добавить, что .gitignore нужно положить в корень проекта и добавить его под контроль гита.


Название: Re: Пошаговая инструкция по Git. Сохранение файлов проекта на удалённый сервер
Отправлено: 8Observer8 от Февраль 01, 2014, 14:57
Файл создается в рутовой директории репозитория проекта
http://git-scm.com/book/ru/Основы-Git-Запись-изменений-в-репозиторий#Игнорирование-файлов (http://git-scm.com/book/ru/Основы-Git-Запись-изменений-в-репозиторий#Игнорирование-файлов)

Спасибо за ответ! По Вашим словам после команды "git init" должен появиться файл .gitignore. Тогда судя по документации: http://git-scm.com/docs/gitignore этот файл должен лежать в этой папке: ".git/info". Но его там нет. Значит нужно самому создает его?

Хочу добавить, что .gitignore нужно положить в корень проекта и добавить его под контроль гита.

Спасибо за ответ! Мне нужно сделать так?

Цитировать
git init
создаю файл с именем ".gitignore" и добавляю в него:
Цитировать
*.user.pro
*.txt
Цитировать
git add .gitignore
Цитировать
git add -a
Цитировать
git commit -m "First Commit" -a

Так будет работать? Я правильно понял?


Название: Re: Пошаговая инструкция по Git. Сохранение файлов проекта на удалённый сервер
Отправлено: viktand от Февраль 09, 2014, 06:35
Извините, если ошибаюсь, но чтобы это все работало, надо еще генерировать ключи и загружать их на githab.


Название: Re: Пошаговая инструкция по Git. Сохранение файлов проекта на удалённый сервер
Отправлено: 8Observer8 от Февраль 09, 2014, 08:44
Извините, если ошибаюсь, но чтобы это все работало, надо еще генерировать ключи и загружать их на githab.

Попробуйте и убедитесь, что работает.


Название: Re: Пошаговая инструкция по Git. Сохранение файлов проекта на удалённый сервер
Отправлено: 8Observer8 от Февраль 22, 2014, 08:52
Хочу проигнорировать некоторые файлы, но не получается:

- в корне проекта создаём файл: .gitignore
- открываем файл .gitignore и добавляем в него названия файлов, которые мы не хотим добавлять под контроль git, к примеру:
*.user.pro

- вводим команды:
git init
git add .
git commit -am "First Commit"


Название: Re: Пошаговая инструкция по Git. Сохранение файлов проекта на удалённый сервер
Отправлено: Old от Февраль 22, 2014, 09:54
Хочу проигнорировать некоторые файлы, но не получается:

- в корне проекта создаём файл: .gitignore
- открываем файл .gitignore и добавляем в него названия файлов, которые мы не хотим добавлять под контроль git, к примеру:
*.user.pro

- вводим команды:
git init
git add .
git commit -am "First Commit"
Он (.gitignore) начинает работать, если уже находится под контролем.


Название: Re: Пошаговая инструкция по Git. Сохранение файлов проекта на удалённый сервер
Отправлено: 8Observer8 от Февраль 23, 2014, 13:33
Он (.gitignore) начинает работать, если уже находится под контролем.

Огромное спасибо! Работает, как Вы написали :)

Я внёс следующие изменения в инструкцию:
- добавил игнорирование файлов
- добавил работу с ветками развития проекта


Название: Re: Пошаговая инструкция по Git. Сохранение файлов проекта на удалённый сервер
Отправлено: 8Observer8 от Февраль 24, 2014, 13:49
Добавил в инструкцию два следующих примечания:

Примечание (важно!). Если в Qt Creator Вы не видите рядом с названием проекта название ветки, то нужно перезапустить Qt Creator.

5. Мы можем посмотреть имена файлов в указаной ветке (здесь master - это имя ветки):
Цитировать
git ls-tree -r master --name-only


Название: Re: Пошаговая инструкция по Git. Сохранение файлов проекта на удалённый сервер
Отправлено: 8Observer8 от Апрель 10, 2014, 20:52
Помогите, пожалуйста, решить проблему.

Я ввожу команду:
Цитировать
git add .

Получаю текст:
Цитировать
fatal: LF would be replaced by CRLF in pictures.qrc

Заранее спасибо!


Название: Re: Пошаговая инструкция по Git. Сохранение файлов проекта на удалённый сервер
Отправлено: Old от Апрель 10, 2014, 20:54
Помогите, пожалуйста, решить проблему.
http://jenyay.net/Git/Autocrlf


Название: Re: Пошаговая инструкция по Git. Сохранение файлов проекта на удалённый сервер
Отправлено: 8Observer8 от Апрель 10, 2014, 21:04
Спасибо! Сначала сделал так:
Цитировать
git config core.autocrlf true
git add .
fatal: LF would be replaced by CRLF in pictures.qrc

Потом так:
Цитировать
git config core.autocrlf false
git add .

Вроде всё получилось. Сильно не вчитывался. Много экспериментов. Потом прочитаю. Надеюсь, ничего не испортится :)


Название: Re: Хранение исходников на github.com, а исп. файлов на Yandex.Disk или Google Drive
Отправлено: 8Observer8 от Ноябрь 14, 2014, 13:49
Изменил название и содержание инструкции. Старую версию сохранил в тэге "code"


Название: Re: Хранение исходников на github.com, а исп. файлов на Yandex.Disk или Google Drive
Отправлено: RSATom от Ноябрь 14, 2014, 19:29
Для выкладывания файлов для скачивания гораздо логичнее использовать сам github.
Для этого у него есть 2 возможности:
1) Github Pages
2) Github Release


Название: Re: Хранение исходников на github.com, а исп. файлов на Yandex.Disk или Google Drive
Отправлено: vulko от Ноябрь 14, 2014, 22:55
добавь очень полезную штуку:
git add -u

игнорирует untracked файлы, т.е. добавляет только измененные.

кстати на github нет бесплатных закрытых репозиториев.
на bitbucket.org есть


Название: Re: Хранение исходников на github.com, а исп. файлов на Yandex.Disk или Google Drive
Отправлено: 8Observer8 от Январь 25, 2015, 16:08
Добавил примечание:

Примечание. Если вы после команды выше получили сообщение "fatal: LF would be replaced by CRLF in ...", то нужно ввести команду (и повторить команду выше):
Цитировать
git config core.autocrlf false