Java проекти с отворен код: GitHub

Ако сте се интересували от GitHub, то този кратък урок от поредицата проекти с отворен код Java е за вас. Получете общ преглед на хранилището на изходния код, което е променило начина, по който работят много разработчици, както индивидуално, така и съвместно. След това опитайте GitHub за себе си, като използвате общи Git команди за разклоняване и ангажиране на вашия собствен проект с отворен код.

GitHub е уебсайт за социално кодиране и услуга за хостинг на изходен код, която използва Git като своя система за контрол на версиите. Стартирал през 2008 г., GitHub вече може да се похвали с близо 1,7 милиона души, хостващи близо 3 милиона хранилища. Подобно на повечето социални мрежи, GitHub позволява на потребителите да създават и следват емисии, свързани с проектите на другия. Той също така разширява социалната парадигма, за да включва мрежови графики, които показват използването на хранилището. Можете да мислите за GitHub като социална мрежа, а-ла Facebook, но само за разработчици на софтуер.

Обединявайки социалните елементи с безплатно хранилище за хостване на проекти с отворен код, GitHub има за цел да култивира подкрепяща и активна общност за подобряване на софтуерната индустрия. Колкото по-активен е даден проект, толкова повече хора ще го намерят и се надяваме да допринесат за него. GitHub предлага и подкрепа за търговски проекти на номинална цена.

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

Следвайте историята на JavaWorld

  • Защо разработчиците избират Git за контрол на версиите
  • Тъй като разклоняването става норма, пригответе се за GitHub
  • GitHub получава инвестиция от 100 милиона долара

Социалното кодиране с GitHub позволява на разработчиците да се учат един от друг по нов начин, докато съхраняват и актуализират кода, използвайки популярна, добре представена система за контрол на версиите. В това издание на Java проекти с отворен код ще ви помогна да започнете с GitHub. Първо ще дам общ преглед на платформата, след това ще въведа някои основи на Git, включително опции на командния ред, които ще използвате често в GitHub. И накрая, ще разгледам обикновен пример diff-to-, commitкойто демонстрира ежедневната мощ на това разпределено хранилище на кодове.

Започнете с GitHub

Акаунтите в GitHub се предлагат в няколко вкуса, групирани по индивидуални или търговски акаунти и по публични или частни хранилища. Разработчиците с отворен код имат право на неограничени публични хранилища или срещу малка такса могат да изберат да хостват между пет и 20 частни хранилища. Търговските разработчици плащат повече (около два пъти повече от разработчиците с отворен код към момента на писането) и могат да се мащабират до 125 частни хранилища. Вижте началната страница на GitHub за пълен списък на плановете и цените.

За да следвате тази статия, ще ви трябва GitHub акаунт. Отидете на уебсайта на GitHub и кликнете върху връзката Регистрация и ценообразуване в горната част на страницата. Кликнете върху „Създаване на безплатен акаунт“ и завършете процеса на създаване на акаунт.

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

Git: Грунд

Трябва да сте запознати поне донякъде с Git, за да използвате ефективно GitHub. Интерес за повечето отрепки е, че Git е проектиран и разработен от Линус Торвалдс, основателят на Linux. В този раздел предоставям преглед на Git и описвам как работи. Към края на статията представям преглед на няколко от най-популярните команди, които ви помагат да станете бързо продуктивни. Това в никакъв случай не е изчерпателен урок, но би трябвало да ви помогне да започнете.

Когато разработчиците на софтуер мислят за система за контрол на версиите (VCS), ние сме склонни да мислим за централно хранилище, което ще използваме за изтегляне на изходен код, извършване на промени локално и след това изпращане на тези промени обратно в централното хранилище. Git е малко по-различен. Това е разпределена система за контрол на версиите , което означава, че наистина не е централно хранилище, а по-скоро множество клонинги на хранилища. Така че "главното хранилище" съществува някъде (като в GitHub), но ние работим локално върху клониращи хранилища.

Разпределената архитектура на Git предоставя значителна полза пред неразпределените системи за контрол на версиите, тъй като разработчиците могат локално да чекират и излизат от код, да създават клонове и др. За значителна промяна в традиционния VCS ще създадете личен клон и ще проверите кода в него. Когато приключите с промените, ще обедините този клон в основния клон.

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

Git променя парадигмата на VC, защото можете да работите локално и да обединявате всичките си промени в единичен ангажимент (можете да запазите местната си история, когато обединявате или да комбинирате всички промени в едно чекиране). Така че централното хранилище не е осеяно с клонове и десетки исторически бележки, а само информация за направените промени в характеристиките. По същество Git използва клонове, както са били предназначени: да разработи нов набор от функции, да поддържа издание или да поправя грешки, свързани с издание.

Когато инсталирате Git на вашата локална машина и "клонирате" хранилище, получавате цялото хранилище, включително историческа информация за целия изходен код в проекта. След това работите срещу вашето локално хранилище, добавяте нови файлове, премахвате файлове и променяте файлове в променителна среда, докато всъщност не ги ангажирате в локалното хранилище. Git поддържа информация за версиите за всички ваши промени и можете лесно да се върнете до всяка точка от историята си. И накрая, когато сте готови, можете да синхронизирате вашето локално хранилище с отдалечено.

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

Вижте Ресурси, ако се нуждаете от по-пълно ръководство за урок за Git. Ще се съсредоточа върху GitHub за останалата част от тази статия.

Социално кодиране с GitHub

След като сте създали акаунт в GitHub, можете да започнете да следите работата на други разработчици на софтуер или да гледате проекти, които ви интересуват. Можете да намерите хора или проекти, които да следвате, като ги търсите директно; или, ако търсите идеи, можете да използвате функцията "Изследване" на GitHub, за да намерите проекти въз основа на вашия интерес. Разгледайте GitHub показва актуални хранилища, както и представени такива. В допълнение към тях можете да разгледате всички хранилища, като кликнете върху бутона „Хранилища“ в лентата с инструменти. Ако искате да търсите проекти, кодирани на определен език за програмиране, можете да щракнете върху „Езици“ в лентата с инструменти, след което изберете езика, който искате да изследвате. Фигура 1 показва най-гледаните (т.е. тенденции) хранилища на Java по време на писането.

Storm беше най-гледаното хранилище на Java в GitHub по това време, когато проверих. След като намерите проект, който ви интересува, щракнете върху него и ще видите опция "Гледане", както е показано на фигура 2.

Ако кликнете върху „Гледане“, ще се абонирате за проследяване на проекта и ще можете да видите промените, направени в него на вашата начална страница на GitHub. Фигура 3 показва началната ми страница на GitHub, която съдържа списък с актуализации на различни пролетни проекти.

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

From a social perspective, GitHub empowers you to easily find developers and projects that you might be interested in and receive updates about them. Of course, the flip side is also true: GitHub is an excellent place to show off your work and get feedback and recognition from your peers.

Using GitHub for project updates and maintenance

Remember that the main driver behind GitHub is to promote the development of open source software projects. So if you've built something good, why not contribute your code to GitHub and make it freely available to the world?

You can create a new repository from the GitHub website or from the client application on your desktop. In this section we'll first walk through creating a repository from the website, then I'll show you how to update and commit a file via the command-line.

Setting up a GitHub repository

Assuming that you have an account set up, log in and you'll see something similar to what's shown in Figure 5. Click "Create a Repository" and you'll be guided through the process. First, you'll click on the first item in your top-right toolbar, "Create a New Repo."

Click that link and give your repository a name and description. I created a new repository to host my GeekCap utilities, which is a set of helper classes that include sorting algorithms and a re-sortable list, a class that easily extracts icons from the Java Look-and-Feel Graphics Repository, ZIP utilities, and more. While not the coolest project, I included it because most of my other projects use one or more of these utilities, so it's good to have them stored in an accessible place. I named my project geek-util and gave it a description: "Geekcap Utilities: helpful classes that are used by other Geekcap.com projects."

Once your project is set up you should see a screen like the one shown the Figure 6.

Figure 6. Repository created (click to enlarge)

The screenshot in Figure 6 shows a listing of what you can do with your new repository, as well as an example of creating a README file and pushing it into your repository. I have an existing Maven project that I need to add for the first time, so I start by adding my pom.xml file and my src directory. Below are the Git commands that I entered for the initial push of the project into the repository:

Listing 1. Git commands for creating a repository

git init git add src git add pom.xml git commit -m 'Initial commit' git remote add origin //github.com/geekcap/geek-util.git git push -u origin master

Here's where familiarity with Git is important if you want to use GitHub. Fortunately, the main Git commands are relatively intuitive:

  • git init creates an empty Git repository. Specifically, this creates the .git directory, which the git command will recognize as a repository.
  • git add adds files to the repository; in this case I added my pom.xml and my src directory.
  • git commit commits changes to the repository. All I did was to add the pom.xml file and src directory. You would also use this command after modifying the contents of a file or deleting files via the git rm command.
  • git remote add origin adds the specified URL as the origin server for the Git repository. As you saw in Figure 6, the origin server is created on GitHub for you and the URL is provided in the setup documentation.
  • git push качва всички извършени промени на посочения сървър. В този случай аз съм бутна първоначалното ангажират, който съдържа pom.xmlи srcуказател към сървъра на произход, което аз предварително настроен.

Можете да използвате Git от вашата IDE или от командния ред; Просто аз случайно съм наркоман от командния ред. Изпълнението git helpпоказва най-често срещаните команди, които са обобщени в Листинг 2.