Работа по проекти с отворен код

Страницата е създадена на:15 април 2019 и редактирана на:12 юли 2019

Съдържание

CVS (Concurrent Versions System) В Windows В Mac OS X Използване на SVN Инсталиране на софтуер за SVN В Windows В Mac OS X В Linux Получаване на помощ Изтегляне на файлове от хранилище С Qt Creator С друг SVN клиент Качване на файлове в хранилище С Qt Creator С друг SVN клиент Обновяване на локално копие Игнориране на файлове от системата за контрол на версиите Разрешаване на конфликти Използване на Git Основни действия Синхронизиране с повече хранилища Разклоняване (Branching) Подмодули (submodules) Използване на локално Git хранилище Отменяне на някои операции, направени с Git Промени, отразени в локално копие

Има една чудесна книга, която подробно описва особеностите на работата по проекти с отворен код: Producing Open Source Software от Karl Fogel (http://producingoss.com/en/index.html). Много от споделеното тук е вдъхновено от тази книга. Друго класическо четиво по темата е: „Катедралата и базарът“ от Ерик С. Реймънд (http://catb-bg.sourceforge.net/html/catb-bg.html)

Работата по проекти с отворен код е колективна и отворена пред света, основана на принципа изказан от Е. Реймънд „Пускай рано. Пускай често“. Така че ако имате идея да стартирате нов проект с отворен код, то е добре веднага да споделите това и щом започнете да пишете някакъв код, бързо да го сложите в Интернат за разглеждане.

Съществуват сайтове, които предлагат безплатно необходимите средства за поддържане и работа по проекти с отворен код – sourceforge.net, code.google.com (в архив), savannah.gnu.org, tigris.org/ и др. Сравнение между различните сайтове от този род има на страницата: http://en.wikipedia.org/wiki/Comparison_of_open_source_software_hosting_facilities.

Място на което може да пуснете или да намерите обяви и информация за проекти с отворен код е сайта: http://freecode.com

Колективна работа върху програми с отворен код се осъществява посредством системи за контрол на версиите (Version Control Systems). Най-разпространени от тях са CVS, SVN, Git и др. Общото при всички системи е наличието на достъпно през Интернет хранилище (Repository), в което се съхранява актуално работно копие на изходния код. Всеки, който желае да прави промени в проекта, с помощта на програма клиент за съответната система, извършва действия като: първоначално изтегляне (check out, или clone) на целия изходен код (или отделни директории от него), т.е. създаване на работно копие на кода; качване (commit) в хранилището на направени промени; изтегляне от хранилището на направени от други програмисти промени (update); връщане до предишна версия, ако направени промени се окажат неподходящи и др.

Qt Creator дава възможност за работа със всяка от тези системи за контрол на версиите. Започването на работа по съществуваш, публикуван в някаква система за контрол на версиите проект, в Qt Creator става с командата File – New File or Project... и избиране на тип проект Import Project и системата за контрол на версиите, с която е публикуван. Следващите по-нататък настройки за стартиране на проекта са различни, за различните системи за контрол на версиите. Общото за всички системи е попълването на интернет адреса на хранилището и информация за достъп – потребителско име и парола, ако има нужда от такива, както и избиране на директория на диска на компютъра, в която ще се съхранява локалното копие на изтегления от хранилището код.

Добре е първо да разгледате хранилището на проекта, който Ви интересува, преди да теглите файлове, за да получите представа за неговата структура – какви директории и файлове съдържа и дали ще ви интересува целия проект или само отделни директории от него. Всички сайтове за проекти с отворен код позволяват да прелистите (browse) хранилището през интернет браузъра си.

Ако, например, ви интересува проект в sourceforge.net, отворете страницата Summary за представяне на проекта. Например на проекта bgoffice, това е страницата: http://sourceforge.net/projects/bgoffice За да разгледате хранилището с изходния код щракнете от менюто на тази страница върху хипервръзката Code.

След като сте разгледали хранилището без да теглите файлове и вече сте решили, че искате да изтеглите всички файлове или само някои от тях, се върнете на началната страница, през която се преглежда кода онлайн. Там ще видите изписана командата, с която може да изтеглите кода на проекта от хранилището, например:

svn checkout svn://svn.code.sf.net/p/bgoffice/code/trunk bgoffice-code

Ако обаче сте влезли на сайта с потребителско име и парола и разглеждате кода на качен от Вас проект, командата може да изглежда така:

svn checkout --username=име svn+ssh://име@svn.code.sf.net/p/bgoffice/code/trunk bgoffice-code

където име е потребителското Ви име за сайта sourceforge.net. Изтеглянето на кода с тази команда ще изисква да напишете паролата си преди започване на тегленето на файлове и ще Ви даде право да качвате в хранилището, направени промени.

Само адресът на хранилището в случая е:

svn://svn.code.sf.net/p/bgoffice/code/trunk

Както се вижда това е адрес със svn: протокол и следователно трябва да се отвори със SVN клиент.

CVS (Concurrent Versions System)

е по-стара система за контрол на версиите, която е показала редица ограничения и това е наложило създаването на нови системи, като SVN (Subversion), Git и др.

Информация за CVS:
https://bg.wikipedia.org/wiki/CVS – кратка статия на български
http://www.nongnu.org/cvs/ - официален сайт
http://www.linuxdevcenter.com/pub/a/linux/2002/01/03/cvs_intro.html - Introduction to CVS

В Qt Creator може да се изтиглят файлове от CVS хранилище с командата: File – New File or Project..., ако се избере Import Project и CVS Checkout и се щракне бутона Choose....

В случай, че Qt Creator още не е настроен да ползва наличния софтуер за CVS, се показва процорец, в който трябва да се щракне бутона Configure... за да се отвори диалога за настройки.

В Windows

Удобен инструмент за CVS за Windows e TortoiseCVS http://www.tortoisecvs.org/.

В Mac OS X

В новите версии на Xcode няма софтуер за CVS и такъв може да се инсталира с някоя от системите за поддържане на програмни пакети за Mac, като Macports, Homebrew or Fink вижте тази беседа:
http://apple.stackexchange.com/questions/108240/cvs-on-os-x-mavericks

Използване на SVN

Изчерпателен източник на информация за SVN, както за начинаещи, така и за напреднали е книгата: Version Control with Subversion (http://svnbook.red-bean.com). От посочената страница може да изтеглите книгата в различни формати или да я четете на самия сайт. Макар, че тя се отнася за официалния svn клиент, който се управлява с команди, в нея подробно са изяснени всички срещащи се в практиката ситуации и са предложени начини за справяне с тях.

При първи опит да импортирате с Qt Creator кода на Qt проект, публикуван във SVN хранилище, ще стигнете до страница за конфигуриране на Qt Creator за работа с този тип хранилища. За да извършите успешно конфигуриране, вижте следващите бележки.

Инсталиране на софтуер за SVN

В Windows

Най-удобната програма SVN клиент за Windows е TortoiseSVN, която се изтегля от страницата:

http://tortoisesvn.net/downloads

Изтеглете съответния инсталационен пакет за 32 или 64 битов Windows и щракнете двойно върху изтегления файл. Внимавайте, когато инсталаторът покаже прозорец, в който да изберете какво да се инсталира, да включите инсталирането и на команден SVN клиент (Command line client tools), който е необходим на Qt Creator за да можете да работите със SVN хранилища директно от Qt Creator.

За да конфигурирате Qt Creator за работа със SVN хранилища, щракнете в менюто: Tools -> Options и в прозореца за настройки щракнете върху Version Control – Subversion. Щракнете бутона Browse срещу полето Subversion Command и посочете изпълнимия файл на командния SVN клиент. За TortoiseSVN, той е:

C:\Program Files\TortoiseSVN\binsvn.exe

В контекстното меню на Windows Explorer, което се показва при щракване на десния бутон на мишката в прозореца с файлове и директории, ще видите нови команди, за работа с TortoiseSVN.

В Mac OS X

Ако сте инсталирали развойната среда Xcode, то вече имате и svn клиент, който можете да използвате с команди от терминала.

В Linux

Предполагам, че във всички дистрибуции на Linux има команден svn клиент и едва ли ще е необходимо специално да инсталирате такъв.

Получаване на помощ

За да отворите help файла на TortoiseSVN щракнете десен бутон на мишката и изберете от менюто TortoiseSVN – Help. В Help файла ще намерите информация за всички действия при работа със SVN.

Ако използвате команден svn клиент подайте команда:

svn help

ще видите списък на всички svn команди. За да видите обяснение относно конкретна команда, подайте команда:

svn help command

където вместо command трябва да напишете името на командата, която искате да проучите.

Изтегляне на файлове от хранилище

С Qt Creator

Ако ще работите върху проект, до хранилището на който имате право за запис, е по-добре да го изтеглите с друг SVN клиент и после в Qt Creator да отворите неговия .pro файл, за да започнете работа върху него. Едва след като се убедите, че и качването на файлове с друг SVN клиент става успешно, можете да започнете да извършвате и от Qt Creator обмена на файлове с хранилището.

Иначе, ако не целите да качите в хранилището на проекта, направени от Вас промени, за да изтеглите файловете на проекта с Qt Creator, изберете команда: File -> New File or Project..., изберете тип проект Import Project и тип на хранилището Subversion Checkout и щракнете бутон Choose.

В поле Repository напишете или поставете (Paste) адреса на хранилището, както сте го видели при преглеждане на хранилището онлайн. Например: svn://svn.code.sf.net/p/readthebible/code/trunk (адреса на проект Компютърна Библия).

В поле Path ще видите изписан пътя до директорията, в която ще се създаде нова поддиректория за файловете от проекта. Можете да щракнете бутона Choose и да изберете друга директория.

В поле Directory напишете име на директория, която ще се създаде в директория Path и в нея ще се изтегли кода на проекта.

Щракнете бутона Continue, за да започне изтеглянето на файловете.

С друг SVN клиент

Създайте на своя компютър директорията, в който смятате да съхранявате локалното копие на кода.

Ако сте на Windows с TortoiseSVN отворете с Windows Explorer папката, която сте предвидили за съхранение на локалното копие. Щракнете десния бутон на мишката и изберете командата SVN Checkout... В полето URL of repository напишете адреса на хранилището. (За хранилището на sourceforge.net за да можете и да качвате файлове, трябва да използвате svn+ssh: или https: протокол в адреса на хранилището.) В полето Checkout directory автоматично се изписва пътя до текущата директория и име на нова директория, най-вероятно: code, в която ще се запишат изтеглените от хранилището файлове. Може да промените автоматично предложеното име code на новата директория с друго, предпочитано от Вас. Щракнете бутон OK за да започне изтеглянето на файлове.

Ако сте на Mac OS X или Linux, подайте командата svn, както е показана на страницата за преглеждане на кода онлайн. (За хранилището на sourceforge.net за да можете и да качвате файлове, трябва да използвате svn+ssh: или https: протокол в адреса на хранилището.)

Ако ви интересува не целия проект, а само определена директория от него (например: trunk/bgoffice) след адреса на хранилището добавете пътя до интересуващата ви директория. (за посочения пример: svn://svn.code.sf.net/p/bgoffice/code/trunk/bgoffice).

Изтеглените по този начин файлове ще се намират под наблюдение от системата за контрол на версиите SVN. Т.е. във всеки момент, щом решите можете да проверите дали тези файлове се различават от файловете в хранилището. Командата за проверка с TortoiseSVN е Check for modifications.

Качване на файлове в хранилище

Можете да качвате файлове, които сте изтеглили от хранилището и сте променили (commit), или директории и файлове от други места на компютъра, които не се намират под наблюдение от системата за контрол на версиите (import).

С Qt Creator

Ако сте изтеглили файлове на проект от SVN хранилище с Qt Creator. След като сте направили промени в тези файлове, за да ги качите в хранилището, изберете команда:
Tools -> Subversion -> Commit Project "ИмеНаПроекта".

В полето Description напишете кратко описание на промените.

Щракнете бутона Commite X/X File(s).

...

С друг SVN клиент

Ако сте стартирали свой собствен проект, в хранилището на който още няма файлове, може да качите файловете от своя компютър в хранилището с import. Първо пренесете в отделна директория, само директориите с файловете, които искате да се качат в хранилището.

Ако сте на Windows с TortoiseSVN, отворете с Windows Explorer приготвената директория, щракнете десният бутон на мишката между иконите в нея и изберете от контекстното меню: TortoiseSVN – Import... В полето URL to repository напишете адреса на хранилището, или го изберете от падащия списък, ако този адрес е вече използван. В полето Import message напишете съобщение относно файловете, които искате да качите – за какво се отнасят или др. подобно. Старайте се да пишете кратки, но съдържателни съобщения и не качвайте файлове без съобщения. Последното е лош маниер, който няма да се хареса на програмистите, които биха искали да ви партнират по проекта. За да се извърши качването, щракнете ОК бутона.

Ако използвате svn клиент, управляван с команди, подайте команда:

svn import path url -m "текст на съобщение"

в която path е името на директорията, която искате да се качи в хранилището, а url - адреса на хранилището. Ако искате да се качи текущата директория вместо path напишете точка . или пропуснете този параметър.

При изпълнение на Import ще бъдете запитани за потребителското име и паролата, които ви дават право да правите промени в хранилището.

След качване с Import файловете на вашия компютъра остават и не се се поставят под наблюдение от системата за контрол на версиите. За да имате локално копие на проекта, което се намира под наблюдение от системата за контрол на версиите, изтеглете файлове от хранилището, както беше описано.

Ако сте променяли файлове от локално копие и искате да качите промените в хранилището, трябва да изпълните svn командата commit.

В Windows с TortoisеSVN трябва да отворите директорията с локално копие, да щракнете десния бутон на мишката и да изберете SVN Commit... В диалога, който се показва трябва да попълните съобщение относно промените, които сте направили и да щракнете OK бутона.

Ако за първи път изпълнявате Commit ще бъдете запитани за потребителско име и парола.

С управляван с команди svn клиент, подайте команда:

svn commit -m "Текст на съобщение"

Обновяване на локално копие

Ако междувременно други програмисти са качили промени в хранилището, вие може да актуализирате своето работно копие със svn командата Update.

Ако и вие сте направили промени системата за контрол на версиите няма да унищожи вашите промени, ако те са по-нови от тези в хранилището.

На Windows с TortoiseSVN тази команда се изпълнява с щракване на десния бутон на мишката в директорията с локалното копие и избиране на SVN Update.

С управляван с команди клиент се подава команда:

svn update

Игнориране на файлове от системата за контрол на версиите

Във всяко локално копие се появяват файлове, които не е необходимо да се качват в хранилището. Например: Makefile, файлове с обектен код и др., които се генерират автоматично от програмите, с които обработваме изходния код. За да не се появяват излишни съобщения за промени в тези файлове те се добавят в списъци за игнориране.

Ако се използва команден svn клиент, за да се види дали за дадена директория има списък за игнориране се влиза в тази директория и се подава команда:

svn proplist

Ако отговорът на тази команда покаже списък за игнориране svn:ignore, значи такъв списък вече има и той трябва да се редактира. Ако не се покаже svn:ignore, трябва ва се създаде.

За създаване на файл със списък за игнориране и добяне в списъка, например, на файла Makefile се подава команда:

svn propset svn:ignore Makefile

Този пример се отнася за добавяне в списъка за игнониране за текущата директория, която е означена с една точка, за друга директория на мястото на точката, трябва да се сложи името на директорията.

Редактиране на файла със списъка за игнориране с помощтта на външен редактор (напримар, в Mac OS X, редактора TextEdit.app) се извършва с команда:

svn propedit svn:ignore trunk --editor-cmd /Applications/TextEdit.app/Contents/MacOS/TextEdit

Тук trunk е името на директорията, за която се отнася списъка; --editor-cmd е опция на svn командата propedit (редактиране на свойство), след която се посочва името на програмата редактор.

Списъкът за игнориране съдържа редове с имена на файлове, които трябва да се игнорират от системата за контрол на версиите. Тези имена могат да съдържат символи ? и *, които означават съответно "произволен символ" и "произволна група символи". Например: ред moc_* в списъка за игнориране, означава игнориране на всички файлове, чиито имена започват с moc_.

Разрешаване на конфликти

...

Използване на Git

Git е система за контрол на версиите, чието начало е положено от Линус Торвалдс, авторът на ядрото на Linux. Тази система предлага по-голяма гъвкавост и се предпочита от много програмисти на свободен софтуер. За повече информация, посетете сайта: https://git-scm.com

Команден Git клиент за Windows се изтегля от:
https://git-scm.com/download/win.

След инсталирането му, в изскачащото меню, което се показва при щракване с десния бутон на мишката в прозореца на Windows Explorer ще видите командите: Git GUI Here и Git Bash Here. Щракването върху Git Bash Here отваря специален терминален прозорец, в който можете да подавате командите за Git, както и други команди за работа с файлове.

Съществуват и Git клиенти с графичен нтерфейс, като например: SourceTree (https://www.sourcetreeapp.com), с версии за Windows и Mac, но тук ще опишем работа с команден клиент.

В macOS командният Git клиент е част от Xcode, така че щом инсталирате Xcode ще имате и Git.

В Ubuntu, ако в терминал подадете команда git, ако същия не е инсталиран, ще видите съобщение:

The program 'git' is currently not installed. You can install it by typing:

sudo apt install git

така че, изпълнете последната команда и ще разполагате с git.

Основни действия

За първоначално изтегляне на файлове от хранилище се подава команда:

git clone адресНаХранилище имеНаДиректория

Адресът на хранилището трябва да вземете от описанието на съответния проект. Например, ако в Github.com отворите хранилището на някой проект, неговия адрес може да копирате в Clopbord с щракване върху бутона "Clone or download" – "Copy to clipboard":

В някои хранилища, например, в sourceforge.net адресът на хранилището може да е различен в зависимост от правото за достъп. За достъп само за четене, един адрес може да изглежда така:

https://git.code.sf.net/p/имеНаПроект/git

но за достъп за четене и запис, същото хранилище е с адрес:

ssh://потребител@git.code.sf.net/p/имеНаПроект/git

Командата git clone създава в текущата директория, нова директория с посоченото в командата имеНаДиректория и изтегля в тази директория файловете от хранилището.

В някои хранилища се използват хранилища подмодули (submodules, вижте https://git-scm.com/docs/gitsubmodules). Това са съществуващи отделно, като самостоятилни хранилища, модули. При наличие на такива, за сваляне в локалната директория и на кода от хранилищата подмодули, се подава команда:

git submodule update --init --recursive

Ако след време, когато в отдалеченото хранилище са настъпили промени, за ново изтегляне и отразяване на тези промени в локалното копие, трябва да се намирате в директорията с локалното хранилище и да подадете команда:

git pull

Ако междувременно вие сте правели някакви промени в съхраняваните локално файлове, свалянето на промените от отдалеченото хранилище с тази команда комбинира, ако е възможно, и вашите промени, и тези от отдалеченото хранилище. Командата git pull, всъщност извършва две неща, които бихте могли да извършите и с последователност от две други команди:

git fetch

git merge

Първата от тези команди само сваля промени от отдалеченото хранилище, а втората извършва сливане на тези промени с вашите файлове от локалното хранилище.

За отразяване на направени промени в локалното хранилище, трябва да използвате командите:

git add .

git commit -m "Коментар върху направените промени"

За качване на промените от локалното хранилище в отдалеченото:

git push

При изпълнение на последната команда, може да Ви бъде поискано потребителско име и парола или само парола за достъп до отдалеченото хранилище.

Когато на компютъра има инсталиран команден Git клиент, той може да се използва директно от Qt Creator.

За изтегляне файловете на съхраняван в Git хранилище проект с Qt Creator се стартира нов проект с команда File → New File or Project..., избира се тип проект Import Project и тип на хранилището Git Clone, и се щраква бутона Choose...

В Window, ако все още не е посочена програмата Git клиент, която да се ползва от Qt Creator, ще се покаже страница с бутон за конфигуриране на Git. Щракнете бутона и в поле Prepend to PATH напишете пътя до директорията, в който се намира git.exe. Най-вероятно е това да е: C:\Users\ИмеНаПотребител\AppData\LocalPrograms\Git\bin. Ако не сте сигурни, кой е пътя до тази директория, проверете с regedit в регистрите на Windows стойността на ключ: HKEY_CURRENT_USER → SOFTWARE → GitForWindows → InstallPath. Като добавите в края на този стринг "bin" ще получите, стринга, който трябва да попълните в Qt Creator. Щом попълните поле Prepend to PATH щракнете бутон Apply и повторете създаването на проект, изтеглен от Git хранилище.

В прозореца на Qt Creator за стартиране на нов проект от Git хранилище, в поле Repository въведете адреса на хранилището, а в поле Directory - името на директорията, в която ще се запишат свалените файлове. Щракнете бутон Continue.

За изтегляне на проекти с достъп с право за запис, изискващо удостоверяване с парола, Qt Creator използва ssh-askpass.

В mocOS този пакет се изтегля и инсталира, както е описано в:

https://github.com/theseal/ssh-askpass

За да може Qt Creator да открива и ползва този пакет трябва да се зададе в настройките Preferences... - Version Control – General – SSH prompt command:

/usr/local/bin/ssh-askpass

В Ubuntu този пакет се инсталира с команда от терминала:

sudo apt-get install ssh-askpass

В Windows ... за съжаление, без успех

https://sourceforge.net/projects/winsshaskpass/

https://sourceforge.net/projects/gxexplorer/files/Borland%20VCL50.BPL/VCL50.BPL/

Синхронизиране с повече хранилища

Възможна е ситуация, в която да се налага да поддържате Ваша версия на даден продукт, във Ваше хранилище, различно от официалното хранилище на оригиналния продукт. Например, с цел във Вашата версия да реализирате промени, които по някаква причина не могат да се осъществят в оригиналния продукт. Но заедно с Вашите промени искате периодично да интегрирате и всички новости, които се правят в оригиналния продукт. В тази случай ще се налага в локалното работно копие на изходния код да изтегляте промените, настъпили в оригиналното хранилище на продукта.

Git позволява да сваляте и съчетавате промени от повече от едно хранилище.

Командата:

git remote -v

показва с кои отдалечени хранилища е свързано Вашето локално копие. Например:

origin https://github.com/vanyog/moodle.git (fetch)

origin https://github.com/vanyog/moodle.git (push)

означава, че локалното хранилище е свързано само с едно отдалечено хранилище с име origin и адрес: https://github.com/vanyog/moodle.git

Добавяне на друго отдалечено хранилище се извършва с команда git remote add, например:

git remote add morigin https://github.com/moodle/moodle.git

добавя хранилище с име morigin, намиращо се на адрес htps://github.com/moodle/moodle.git

Изтегляне и вмъкване на промените от това хранилище в локалното копие на кода става с команда:

git pull morigin

Разклоняване (Branching)

В едно git хранилище може да се съхраняват повече разклонения на изходния код на даден проект. Създаването на разклонение може да е необходимо, например, за да се изпробва някоя нова идея. Докато не бъде установено, че този нова идея е реализуема и води до положителен резултат, кодът по реализирането на тези идея се съхранява в отделно разклонение (branch). Когато реализирането на новата идея приключи успешно, то разклонението, в което тя е реализирана, се слива с разклонението, в което се съхранява оригиналния програмен код. Така новата функционалност се добавя в софтуерния проект. Междувременно в оригиналния програмен код може също да са правени промени, това няма да попречи на сливането на двете разклонения. Ако след сливане на разклоненията, вече няма нужда от добавеното разклонение, то може да се изтрие и разработването на софтуера да продължи без него.

Командата:

git branch

без аргументи, показва наличните разклонения, като текущото разклонение е отбелязано със *.

git branch -a

показва всички разклонения, а с опция -r – само разклоненията от отдалеченото хранилище.

Ново разклонение в локално копие на кода се създава с команда:

git branch имеНаРазклонение

След създаване на разклонение промените, които се правят в кода се отразяват само в това разклонение. Тези промени се добавят и запазват в локалното хранилище с командите:

git add .

git commit -m "Коментар върху направените промени"

Качване на новото разклонение в отдалеченото хранилище с направените в него промени се прави с команда

git push origin имеНаРазклонение

Актуализиране на локално копие с направените в отдалеченото хранилище промени се извършва с команда

git pull

която сваля промените от всички разклонения от отдалеченото хранилище.
Превключване към друго разклонение в локално копие на кода се извършва с:

git checkout имеНаРазклонение

Сливане на две разклонения, се извършва като първо се превключва към разклонението, в което ще се извърши сливане и след това се подава команда:

git merge имеНаРазклонение

в която имеНаРазклонение е името на разклонението, от което се вземат, направени промени, и се нанасят в текущото разклонение.

Изтриване на разклонение в локалното хранилище, от което са взети промени и то повече не е необходимо, става с команда:

git branch -d имеНаРазклонение

За изтриване на разклонение и от отдалеченото хранилище се използва команда:

git push origin –-delete имеНаРазклонение

Ако в отдалеченото хранилище някои разклонения са изтрити, при сваляне на промени с git pull, изтритите от отдалеченото хранилище разклонения не се изтриват автоматично и от локалното хранилище, там те продължават да стоят. За да бъдат изтрити локалните разклонения, които не съществуват в отдалеченото хранилище се изпълняват командите:

git fetch –-prune

git branch -vv

Последната команда показва списък на локалните разклонения, като в описанието на изтритите от отдалеченото хранилище разклонения присъства думата ": gone". Всяко такова разклонение се изтрива с git branch -d имеНаРазклонение.

Подмодули (submodules)


 

Използване на локално Git хранилище

Под локално хранилище имам предвид хранилище, което се намира на локалния компютър, а не на сървър в Интернет. Използването на такова дава всички предимства, които дава и отдалеченото хранилище – запазване на моментното състояние на кода, над който работите, във всеки момент, в който решите, и възможност за връщане до всяко от запазените състояния.

За да създадете локално хранилище, трябва да влезете от терминал в директория, която ще използвате за хранилище. Тя може да е празна, но може и да съдържа файлове, които бихте искали да се поставят под контрол на системата Git. Подава се команда:

git init

Ако директорията съдържа файлове, които искате да са под системата за контрол на версиите Git, подайте команда, която ще ги добави в създаденото хранилище:

git add .

а след това команда за запазване текущото състояние на тези файлове в хранилището:

git commit -m "Коментар за запазваното състояние"

След всяка поредица от промени, които искате да запазите, трябва да подадете двойката команди: git add . и git commit

Отмяната на неуспешни промени до последното, запазено в хранилището състояние на даден файл, става с команда:

git checkout имеНаФал

Отменяне на някои операции, направени с Git

Промени, отразени в локално копие

Съхранените с Git изменения, може да се видят с команда:

git log

показват се в обратен на времето ред – първо е най-новото запазване на промени.

Отмяна на добавянето на файлове, извършено с git commit:

git checkout имеНаФайл

Отмяна на последното запазване на промени, направено с
git commit:

git reset --soft HEAD^

git reset --hard HEAD^

Опция --hard се използва, в случай, че след последното запазване се направили още промени, които не са отразени в хранилището. Тези промени също се отменят.


 

1 Програмата ще се стартира по този начин в Windows или в Mac OS X и Linux, ако сте създали символни връзки, както е писано в За улеснение след инсталирането. Ако в Mac OS X сте инсталирали от инсталационен пакет, отворете designer с Finder, като щракнете върху иконата му /Developer/Applications/Qt/Designer.app или с команда от терминала: open /Developer/Applications/Qt/Designer.app.

 

Направено с MyCMS. Copyright CC BY-ND 4.0.