Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Елементарен Version control

Featured Replies

Заглавието си го казва. Търся някъква програмка да си складирам старите версии на проектите ми. Git нещо не ми харесва с командния ред. От типа на (Създай Repository) -> Качи файл. И това е всичко, просто да мога да си преглеждам старите версиите на проекта ако съм сбъркал нещо. Плюс е ако е десктоп приложение, а не сайт.

Защо не git? А като хостинг GitHub. Пък има много front-end на git.

Абсолютно. Особено за целите, които xavortm е споменал git е идеален. Локално репо, много лесно на добавяне на файлове, командният ред не е тежест - само 3-4 команди трябват за реализиране на това което искаш, и ако случайно ти потрябва допълнителна функционалност я имаш директно. + това че само с копиране на .git папката на флашка или сървър, си имаш цялата работа заедно с теб. Ако държиш на фронтенд, колегите ми които не си падат по конзолки са много доволни от Tortoise Git или Git Extensions. В добавка KDiff3 е добра за diff и 3-way merge и се интегрира без проблеми.
  • Автор

Ами добре, отново ще премисля за Git. Има ли някой желаещ да напише кратко ръководство за ползването му? Разбирам доста добре английският и ги чета, но нещо все ми отбягва.

Ами добре, отново ще премисля за Git. Има ли някой желаещ да напише кратко ръководство за ползването му? Разбирам доста добре английският и ги чета, но нещо все ми отбягва.

Ако искаш за конзола, мога да ти напиша основните команди които ще ти трябват и как се ползват. За GUI не знам, защото не ползвам. (освен KDiff3 за сравняване и сливане)
  • Автор

Ами ако го направиш бих бил много благодарен! Мисля че ще е полезно на много хора.

Ами ако го направиш бих бил много благодарен! Мисля че ще е полезно на много хора.

Заповядай. Мислех да го пусна в нова тема, ама тъй като е доста ограничено ще го постна тука. Ако има интерес, ще помоля да го преместят.

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

Целта ми тук е да опиша употребата под Уиндоус от команден ред на някои най-често използвани команди, но повечето от нещата са същите или много подобни под Линукс.

Необходими програми

Git - http://git-scm.com/downloads

забележка: при инсталация за Windows ще ви бъде предложено да изберете Git как да процедира с символите за край на ред. Силно желателно е да изберете „checkout as-is, commit as-is” в противен случай, може да се получат неприятни изненади.

Текстов редактор.

Задължително ще ползвате такъв. По подразбиране Git ползва vi/vim. Въпреки, че според мен Vim е прекрасен редактор и аз ползвам непрекъснато именно него, хората, които го виждат за пръв път реагират особено отрицателно. Странно, защо ли :) . Затова е желателно да си инсталирате редактор по ваш избор. Единственото условие (вижте по-горе) е да подържа и Unix символи за край на ред. Бонус при Vim (и някои други редактори) е оцветяването на синтаксиса.

Програма за сравняване и сливане.

По подразбиране се позва vimdiff и не е особено удобно. Моята препоръка е KDiff3 - http://sourceforge.n.../kdiff3/0.9.97/, но Git работи прекрасно и с Meld, Araxis merge и други. Предимството на KDiff3 пред конкуренцията (лично мнение) е много удобното трипосочно сливане.

Стартирайте конзолата на Git (под Уиндоус) и се придвижете до папката в която съхранявате вашият проект. Командата, с която създавате локално хранилище (репо, от repository) е:

git init
След изпълнението Git създава празно репо във форма на папка .git в същата папка.

Сега е време за някои настройки. Може да заместите vim и kdiff3 с редактор и програма за сравняване по ваш избор. За по-лесно е хубаво да са добавени във пътя за изпълнение (Path):

git config user.name “Вашето име”
git config user.email “Вашата поща”
git config core.editor vim
git config diff.tool kdiff3
git config merge.tool kdiff3

Всеки проект съдържа определени помощни, временни и други файлове които не желаете да са под контрол. За целта ги опишете във файла .git/info/exclude. В него има кратко описание на синтаксиса, който е нещо от сорта:

*.exe
!/out
Този пример, казва на Git да пренебрегне всички файлове с разширение exe, освен тези които са в папката out.

Сега е време да добавим нашият проект в репо-то. (забележка. Git не може да работи с празни папки. Като решение, може да се добави празен файл във всяка празна папка.)

Записите в хранилището на Git се наричат комит-и (commits). Всеки комит съдържа уникален номер, заглавие, дата, описание име и поща на автора (ако са зададени), номер на предходният комит и всички разлики между него и предходният. Тъй като номерът на комит-а е и хеш на съдържанието на цялото контролирано съдържание (SHA1), той еднозначно определя състоянието на целия проект. Тоест, ако знаете номера на даден комит винаги можете да възстановите проекта от репо-то до същото състояние.

Файлове се приготвят за добавяне/актуализиране с git add. Точката казва на Git да добави всички нови и/или променени файлове, освен тези, които указахме по-горе в exclude.

git add .
забележка: Това е точно единственият път, в който аз ползвам командата add с параметър точка. Ако ви стане навик, поне веднъж ще добавите в репо-то, нещо което не сте искали.

Командата status показва какви са променените файлове в момента.

git status
В този случай всички файлове са нови и се очаква да покаже нещо такова:

# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
#	 new file: some_file_1
...
#	 new file: some_file_n
Тук забелязваме едно много хубаво качество на Git във всеки един момент се опитва да покаже команди които може да ползвате – в случая git rm --cached <file> за да премахнете неправилно добавен файл.

И сега да създадем комит.

git commit
При това Git ще пусне текстовият редактор и ще ви предложи да въведете описание на дадения комит. Първият ред се използва за заглавие. Git няма да ви позволи да създадете комит с празно описание. Когато запишете файла и излезете от редактора, Git ще създаде комит-а и ще го добави в репо-то.

От този момент нататък, можете да приемете, че всичко което е извън .git папката е просто моментното състояние на проекта, плюс файловете които сте променили без да добавите. Git вече си е записал всичко което му е необходимо за да възстанови проекта до всеки един commit. Например, ако желаете да си имате копие на проекта с цялата история, някъде другаде е достатъчно само да си копирате .git папката там.

Сега status би трябвало да покаже, че всички файлове са добавени и няма промени:

git status
# On branch master
nothing to commit (working directory clean)
Можете да видите списъка с комит-ите с командата log. Сега ще имате само един комит.

git log

Тъй като status е много полезна ще спра по-подробно на нея. В общият случай, след като промените някой файл, изходът на status ще разделен на 3 части

Changes to be committed:

това е списък с файловете, които сте променили и след това добавили с git add <file>. Тези файлове ще бъдат добавени към репо-то, ако извикате git commit

Changes not staged for commit:

това е списък с файловете, които сте променили, но не сте добавили за комит-ване. С командата.

Untracked files:

Това са списък с файловете които не са под контрола на git. С малки изключения, освен ако изрично не ги споменете, повечето команди на Git изобщо не обръщат внимание на тези файлове.

Променените или новите файлове се добавят към репо-то с двете гореспоменати команди:

git add <file1> <file2>
git commit
ако вместо файл подадете на add папка, Git ще актуализира/добави всички файлове в нея (освен споменатите в exclude).

Ако установите, че в последният направен комит сте допуснали грешка, оправете я, добавете променените файлове с git add и поправете комита с

git commit –amend

Описанията на комитите се използват за да описвате именно промяната нанесена от комита. За да отбележите, че даден комит представлява например определена версия на проекта се използва таг (tag). Всеки таг освен име може да има и описание.

git tag <име> [-m “описание”]
Без параметри командата изпечатва всички зададени таг-ове.

Git позволява много лесно да правите разклонения(branch) на проекта ви.

git checkout -b <име на разклонение> [<от_къде>]
<от_къде> може да бъде номер на комит, име на разклонение или таг.

Тази команда прави ново разклонение наречено <име на разклонение> и прави състоянието на проекта ви равно на <от_къде>. Ако не сте задали от къде, прави новото разклонение от текущото състояние.

И ето някои други полезни команди.

Можете да видите разклоненията с:

git branch
Moжете да се смените текущото разклонение с друго (ако нямате променени файлове) с

git checkout <име на разклонение>
За да видите променените файлове между два комит-а:

git diff name-only <commit1>..<commit2>
за да сравните разликите между 2 комит-а:

git difftool <commit1>..<commit2>
за да вземете промяна от някое друго разклонение в текущото:

git cherry-pick <commit>
Едно уточнение: имената на разклоненията и таговете са просто „прякори“ определени комити. Git не прави нови директории, които да съдържат различните версии на проекта ви.

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

Архивирана тема

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

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    26%
    Дарени 256.00 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.