Как работать с bitbucket: Знакомство с интерфейсом Bitbucket | Atlassian
Git и Bitbucket за 20 минут
Git — распределенная система контроля версий файлов, созданная под руководством Линуса Торвальдса. Системы контроля версий позволяют хранить несколько версий одних и тех же файлов с возможностью возврата к старому варианту, просмотра изменений, их авторов и т.д.
Распределенная система контроля версий не нуждается в центральном сервере, хранящем версии, вся история хранится на каждом локальном компьютере и при необходимости синхронизируется с аналогичным хранилищем другого компьютера. В этом отличие Git от, например, SVN — можно установить Git только на локальный компьютер и хранить все версии у себя, не дублируя на сервер. Однако в случае командной работы все же удобно иметь сервер, хранящий версии. Такой сервер также можно воспринимать как бэкап всех актуальных файлов и их версий, доступный из любой точки мира.
Про Git есть отличная бесплатная книга с соответствующим названием Pro Git, также спасибо соотечественникам за бескорыстный перевод — рекомендую.
Здесь я приведу краткие данные, позволяющие быстро начать работу с Git и Bitbucket. Bitbucket — это сервис, централизованно хранящий репозитории Git, бесплатный для 5 пользователей и платный для больших команд. Преимущество Bitbucket перед аналогичным сервисом GitHub — возможность создания закрытых репозиториев (не open source).
Установка, настройка
Итак, первое, что нам стоит сделать — установить сам Git для используемой операционной системы (Windows, Linux, Solaris, Mac OS). Второе — зарегистрироваться на Bitbucket и создать репозиторий.
Предположим, что у нас уже есть исходные коды разрабатываемого приложения и мы хотим начать использовать Git для контроля версий и централизованного их хранения на сервере Bitbucket.
Пройдя регистрацию на Bitbucket, создаем новый репозиторий, для чего выбираем Repositories > Create repository. Вводим имя создаваемого репозитория, указываем тип (Git), уровень доступа (Access level) в private — не open source проект. Также можно установить основной язык программирования, используемый в проекте. Завершив создание репозитория, Bitbucket отобразит страницу «Add some code», где мы выберем «I have an existing project to push up» для добавления существующего проекта в репозиторий, после чего система отобразит команды, которые нам необходимо будет выполнить для последующей синхронизации локального репозитория с Bitbucket — не закрывайте окно.
Итак, мы создали репозиторий на Bibucket, теперь необходимо создать локальный репозиторий на локальном компьютере, чтобы впоследствии синхронизировать его с Bitbucket. Для этого мы будем использовать терминальные команды Git, поэтому в случае Windows необходимо добавить в переменную окружения PATH путь к исполняемым файлам Git (как правило, это C:\Program Files (x86)\Git\bin
), в случае Linux и Mac OS система уже сделала это за вас при установке.
Таким образом, на текущем этапе у нас установлен Git и в переменной окружения PATH корректно прописан путь к исполняемым файлам Git — неплохо. Открываем терминал/командную строку нашей операционной системы (конечно, для Git существуют и GUI решения, но в этой статье я буду касаться только классических терминальных инструментов).
В первую очередь настроим наш Git — зададим своё имя и email (эта информация будет использоваться в репозитории для отслеживания авторов изменений):
git config --global user.name "Alexey Goloburdin"
git config --global user.email [email protected]
git config --global core.pager 'less -r'
Теперь всё готово к созданию первого локального Git репозитория.
Создание репозитория
Переходим в терминале в директорию, в которой мы хотим создать репозиторий — директорию с исходными кодами нашего приложения — и инициализируем новый репозиторий:
git init
Добавляем все файлы в созданный репозиторий:
git add *
И делаем commit — то есть сохранение текущей версии репозитория:
git commit -m 'первая версия репозитория'
После атрибута -m вводится комментарий к коммиту — хорошей практикой является описание всех коммитов.
За жизнь
Самое время добавить немного магии теории — единственной и достаточной для продуктивной работы с Git. Все файлы в рабочем каталоге, в котором мы создали репозиторий, могут быть либо под версионным контролем, то есть фактически входить в репозиторий Git, либо быть неотслеживаемыми, то есть не входить в репозиторий. В нашем случае все файлы, присутствующие в данный момент в директории, мы добавили в репозиторий командой git add *
, при этом если бы мы хотели добавить, например, только файлы с расширением html, мы могли бы внести их в репозиторий командой git add *.html
.
Все отслеживаемые файлы могут находиться в трех состояниях — неизмененном (то есть с момента последнего коммита мы этот файл не трогали), измененном (с момента последнего коммита мы внесли изменения, но Git об этом еще не знает) или подготовленном к коммиту (это измененный файл, о котором мы рассказали Git). Таким образом, вот жизненный цикл файла в репозитории:
1. Добавление файла в репозиторий — файл имеет статус «неизмененный»
2. Файл изменен, но мы не сообщили об этом Git — файл имеет статус «измененный»
3. Мы сообщаем соответствующей командой Git об изменении файла — файл получает статус «подготовленного к коммиту»
4. Мы делаем коммит, после которого файл снова получает статус «неизменённого». Затем цикл повторяется.
При этом важно понимать, что все эти действия сейчас происходят локально на нашем компьютере, хранящем все версии репозитория, мы еще не производили синхронизацию с удаленным сервером Bitbucket.
Работа с Git
Итак, в данный момент мы имеем чистый репозиторий с одной версией. Внесем изменения в какой-то файл репозитория и подготовим файл к коммиту:
git add FILENAME
Команда git add
не только добавляет новый файл к репозиторию, но и отслеживает изменения в уже присутствующих в репозитории файлах. Сделаем второй коммит:
git commit -m 'вторая версия, мы внесли офигенные правки в наш проект'
Конечно, совсем необязательно запоминать все файлы, в которых мы произвели изменения с последнего коммита для того, чтобы потом перечислить их в git add
(то есть подготовить к коммиту). Есть два варианта. Первый: использовать «git add *"
и затем «git commit"
, второй короче: использовать сразу одну команду «git commit -a"
. В обоих случаях Git переберет все файлы каталога и подготовит к коммиту все отслеживаемые файлы, но первый вариант также добавит в репозиторий новые файлы (созданные после последнего коммита), в то время как второй вариант их проигнорирует.
Удалить файл из репозитория, то есть перевести его из отслеживаемого в неотслеживаемый, можно командой:
git rm FILENAME
Просто удаление файла в директории, без указания Git не отслеживать его, приведет к попыткам Git найти этот файл, его статус в репозитории будет «изменён, но не закоммичен». Конечно, можно удалять файлы из директории проекта, не заботясь о ручном удалении их из Git репозитория по одному — вместо этого можно выполнить одну команду:
git add -u
Кстати, узнать текущий статус по репозиторию можно командой
git status
Просмотреть историю коммитов:
git log
Как правило, в любом проекте существуют файлы, отслеживать изменения которых нет необходимости (например, это могут быть файлы кэша) — их можно добавить в список исключений, находящийся по адресу /. git/info/exclude
.
Синхронизация с Bitbucket
Как мы уже говорили, вся текущая работа с репозиторием происходила на локальном компьютере без подключения к серверу Bitbucket — пришло время синхронизироваться! Для этого нужно выполнить команды, которые сообщил нам Bitbucket после создания удаленного репозитория:
git remote add origin https://[email protected]/livedev/repositoryName.git
git push -u origin --all
Первая команда подключит удаленный репозиторий, вторая зальет на него наш локальный репозиторий. Система спросит пароль для подключения к Bitbucket, после чего загрузит репозиторий на сервер — в успехе можно удостовериться в веб-интерфейсе Bitbucket.
Теперь мы можем продолжать работу над проектом, сохранять файлы, делать коммиты — они будут сохраняться в локальном репозитории даже без подключения к Интернет. Проводить синхронизацию с удаленным сервером не обязательно при каждом коммите — все коммиты все равно зальются на сервер при выполнении команды git push
.
Если мы работаем в команде и коммиты на сервер делает кто-то кроме нас, то перед коммитом нужно сначала загрузить все изменения, которые произвели другие члены команды в репозитории на сервере, для этого используется команда git pull
:
git pull origin master
Master
здесь — это ветка репозитория, с которой мы работаем, их может быть несколько, а origin
— название соединения c Bitbucket.
Таким образом, для заливки репозитория на сервер используется команда
git push origin master
а для обновления локального репозитория с сервера команда
git pull origin master
Крутых production версий вам!
6 секретов Bitbucket / Хабр
Один из принципов дизайна в Atlassian — лаконичность. В ходе эволюции UX некоторые непопулярные действия, расчитанные на опытных пользователей, были спрятаны в выпадающих списках или за горячими клавишами. Там они ждут предприимчивого пользователя, который случайно наткнётся на них благодаря случайному нажатию клавиш или клику мышки (ну, или заглянет в руководство). Вот шесть моих любимых трюков Bitbucket Cloud, о которых вы, возможно, никогда не слышали:
Омнибар в Bitbucket — это строка быстрого доступа к действиям, похожая на ⇧⇧ в средах разработки JetBrains или ⌘+P в Sublime Text. Запустить омнибар можно на любой странице, нажав клавишу точки.
По умолчанию, он покажет набор действий, соответствующих текущему контексту:
Как только вы начнёте вводить символы, он будет искать по имени репозитории, принадлежащие вам или вашей команде:
А также заголовки задач и пулл реквестов — по всем вашим репозиторям:
И даже файлы в текущем репозитории по их названию:
Кстати, если помимо Bitbucket вы пользуетесь JIRA, попробуйте нажать клавишу точки, когда в следующий раз будете просматривать там какую-нибудь задачу.
Клавиша
.
для вызова омнибара — всего лишь одна из горячих. С помощью ⇧+? на любой странице можно увидеть список контекстно-зависимых сочетаний клавиш. Вот некоторые из тех, которыми в команде Bitbucket пользуются каждый день:
- / — поместить курсор в строку поиска
- [ — свернуть/развернуть боковое меню
- ⌃+⏎ — опубликовать комментарий
Клавиши-модификаторы могут различаться в зависимости от браузера и операционной системы — перечисленные актуальны для Chrome на OS X, — так что воспользуйтесь списком сочетаний (⇧+?) в своём браузере, чтобы уточнить их.
Даже если вы уже пользовались
сниппетами
в Bitbucket, чтобы делиться кодом, вы можете не знать о том, что с их же помощью можно делиться и другими типами файлов. Просто перетащите любой файл в область сниппета.
Это может быть изображение, видео и даже компилированный код! По размеру файл должен не превышать 10 Мб. Есть также удобная консольная команда для загрузки файлов:
Страница
Downloads
в репозитории позволяет скачать архив с его кодом в состоянии, в котором он был на момент определённого коммита. 2~2.zip
Это может оказаться весьма удобным для нужд Continuous Integration и Continuous Delivery, когда необходимо скачать образ репозитория на момент определённого коммита. Git поддерживает кучу способов идентифицировать коммит, а кроме того, этот способ работает и с Mercuruial!
В июне мы запустили фреймворк Bitbucket Connect, позволяющий расширять пользовательский интерфейс Bitbucket. Возможно, вы уже пользовались какими-то из сторонних утилит, которые интегрировались с Bitbucket с помощью этого фреймворка. Однако с помощью Bitbucket Connect вы можете изменить
ваш собственный
Bitbucket.
К примеру, вот такой JSON является самостоятельным расширением для Bitbucket Connect:
{
"key": "download-commit-as-zip",
"name": "Download commit as ZIP",
"description": "Adds a \"Download as ZIP\" link to the commits page on Bitbucket",
"baseUrl": "https://bitbucket.org",
"modules": {
"webItems": [{
"key": "download-link",
"url": "https://bitbucket. org/{repo_path}/get/{commit_hash}.zip",
"name": {
"value": "Download as ZIP"
},
"location": "org.bitbucket.commit.summary.actions",
"params": {
"auiIcon": "aui-iconfont-down"
}
}],
"oauthConsumer": {
"clientId": "WaLh6mhKdRUDpVcXAH"
}
},
"scopes": ["team"],
"contexts": ["personal"]
}
После установки в Bitbucket на страницах коммитов появится ссылка
Download as ZIP
, — она будет использовать вышеупомянутый ресурс
/get/<revision>.zip
:
Этот аддон я выложил в виде сниппета, и установить его себе можно с помощью этой ссылки.
Вы можете использовать этот способ для добавления ссылок в ваши репозитории, визуализации вашего кода или реализации совершенно новых возможностей на основе Bitbucket. У фреймворка есть документация и получасовой видео-урок.
Если вы дочитали до сюда, то наверняка любите всё самое новое. Если это действительно так, зайдите в
настройки Bitbucket
и выберите
Manage features
в меню слева, чтобы включить предрелизные функции. К слову, прямо сейчас вас там ждёт улучшенный список пулл реквестов!
Время от времени заглядывайте в настройки снова, поскольку команда Bitbucket зачастую выкладывает тизер- и бета-версии задолго до официального релиза.
Спасибо за чтение! Если вы хотите поделиться своими трюками в Bitbucket или если у вас есть классная идея для расширения, оставьте комментарий здесь или пишите Тиму
@kannonboy
в Twitter.
Я с удовольствием отвечу на вопросы об этих и других возможностях Bitbucket. Надеюсь, какие-то из перечисленных трюков станут полезными для вас.
Автор оригинальной статьи — Тим Петтерсен, участвовал в разработке JIRA, FishEye/Crucible и Stash. С начала 2013 года он рассказывает о процессах разработки, git, непрерывной интеграции и поставке (continuous integration/deployment) и инструментах Atlassian для разработчиков, особенно о Bitbucket. Тим регулярно публикует заметки об этих и других вещах в Twitter под псевдонимом
@kannonboy
.
Создание приватного репозитория / Песочница / Хабр
Возникла у меня потребность разместить свой проект в удаленном хранилище для совместной разработки. Проект у меня только зародился, поэтому очень сырой. В связи с этим, не хотелось выставлять его на всеобщее обозрение, в итоге из всех существующих хранилищ я выбрал Bitbucket т.к. он поддерживает создание приватного репозитория совершенно бесплатно + он поддерживает git.
Выбор сделан, переходим к практической части.
Для начала проходим регистрацию на Bitbucket. Теперь у нас есть удаленный репозиторий, в котором мы будем хранить наш проект. После этого, нам необходимо установить систему управления версиями на наш компьютер. Для этого мы скачиваем и устанавливаем git.
Во время установки, нам будет предложен тип взаимодействия с пользователем. Выбираем «Git Bash Here», т.к. для работы с git мы будем использовать TortoiseGit. Далее выбираем пункт «Run Git from the Windows Command Prompt»:
На следующем шаге, выбираем «Checkout Windows-style, commit Unix-style line endings»:
После завершения установки git, нам необходимо инсталлировать клиент для git — TortoiseGit, позволяющий управлять исходниками через оболочку Windows. Качаем его здесь.
В процессе установки, нам будет предложен выбор SSH клиента(мы ведь хотим безопасно передавать наши исходники через сеть?). Выбираем «Putty» – первый пункт:
После инсталляции, сразу настроим некоторые параметры. Для этого заходим в настройки (Settings):
Заходим в Git -> Config и указываем свое имя и e-mail(потом эта информация будет отображаться в наших commit-ах). Также ставим галочку у пункта «AutoCrlf»:
Клиент мы настроили, теперь необходимо сгенерировать SSH-ключи для безопасной передачи данных. Для этого заходим в Puttygen, который находится с нашим TortoiseGit в Пуск-е:
Здесь все просто, нажимаем кнопку Generate и водим мышкой по экрану(для генерации ключа). После этого, записываем пароль(для зашиты ключа) в Key passpharase и подтверждаем его в следующем поле. Чтобы не забыть пароль, можем написать подсказку в поле Key comment. Сохраняем наши ключи: «Save public key / Save private key»:
Копируем наш сгенерированный публичный ключ, заходим в настройки аккаунта и вставляем его в соответствующее поле:
Добавляем его кнопкой «Add key».
Следующим шагом, будет создания репозитория на сайте Bitbucket:
Здесь все просто. Вводим название проекта, выбираем «Git» и язык программирования. Ставим галочки удовлетворяющие нашим требованиям, и пишем описание. Нажимаем «Create repository»:
Теперь нам нужно создать локальный репозиторий(там будет храниться вся история изменений исходного кода). Для этого создаем папку и называем её localRepository. В контекстном меню нашей папки выбираем «Git Create repository here…»:
В появившемся окне ставим галочку «Make it Bare».
Репозитории есть, теперь создаем папку, где будет храниться сам проект. Кликаем на папке правой кнопкой и выбираем «Git Clone…»:
В поле Url вводим путь удаленного(который на Bitbucket)репозитория. Этот путь можно найти по адресу bitbucket.org/userName/projectName — главная страница созданного репозитория на Bitbucket.
Directory — куда копировать(путь папки проекта)
Ставим галочку в пункте «Load Putty Key» и показываем сохраненный нами приватный ключ. Нажимаем «OK»:
Выйдет предложение ввести пароль защиты ключа. Вводим его:
После этого, у нас в папке где будет проект, создается папка .git(скрытая):
Копируем наш проект в эту папку:
Идем назад и в контекстном меню папки нашего проекта выбираем «Git Commit -> “master” …»
Этот шаг сделает первый commit в главный brunch git-а:
В поле message, введем любой комментарий нашего изменения. Нажимаем на галочку «Select/Deselect All» – для выбора всех файлов и щелкаем «OK»:
Ждем окончания commit-а:
Первый commit прошел успешно. Теперь синхронизируем наш проект с удаленным репозиторием. Для этого в контекстном меню папки с проектом, выбираем «Git Sync…»:
Нажимаем Push:
Ждем окончания копирования:
Чтобы убедиться, что все прошло успешно, заходим на сайт bitbucket-а на вкладку Source:
Система готова к использованию.
Установка GIT и подключение Bitbucket (пошаговая инструкция)
Установка GIT
Переходим по адресу http://git-scm.com
и выбираем дистрибутив для своеё операционной системы.
После скачивания и запуска инсталлятора появляется мастер установки:
Git — программа, распространяющаяся по лицензии GPL, допускающая свободное копирование и распространение:
В окне опций соглагшаемся с предложением по-умолчанию:
Git можно использовать через специальные программы-клиенты с графическим интерфейсом пользователя, а можно через обычную командную строку. Для изучения системы рекомендуется научиться основным командам.
Инсталлятор установит специальную unix-подобную оболочку для ввода команд:
На этом этапе установки вновь соглашаемся с инсталлятором:
Теперь в проводнике Windows на диске C: создадим папку с будущим репозиторием (хранилищем) проектов. На самом деле эту папку можно размещать в любом месте файловой системы, но мы упрощаем себе задачу.
Запустим через главное меню системы оболочку Git Bash и дадим команду смены каталога внутри оболочки:
Разумеется, что при другом каталоге, нужно указать правильный адрес.
Создание пустого репозитария
Каталог *c: будет служить хранилищем исходных файлов программ. Но перед тем, как помещать в хранилище тексты программ, необходимо инициализировать его.
Для инициализации служит команда git init
С этого момента локальное хранилище можно заполнять файлами программ и фиксировать изменения. В качестве примера мы создадим текстовый файл с именем разработчика и поместим его в хранилище.
Работа с bitbucket.org
Для того чтобы работа программиса была доступной на разных компьютерах, организуем удалённое хранилище в сети. Сервер bitbucket.org предоставляет возможность бесплатно создавать репозитории и организовывать доступ к ним о стороны нескольких разработчиков.
Сначала нужно обратиться по адресу http://bitbucket.org и зарегистрировать новый аккаунт, указав имя пользователя и пароль.
После регистрации нужно будет изменить параметры профиля.
Выбираем русский язык с списке языков интерфейса
После того, как общие настройки аккаунта заданы, можно создать свой репозиторий (хранилище). Нажимаем на кнопку **Создать
Среди важнейших настроек: выбор типа системы управления версиями (выбираем Git), выбор приватного/публичного типа хранилища (можно выбрать любой, но лучше открытый), название (одно слово) и язык программирования (С).
Репозиторий создан. Теперь его имя появляется на главной странице аккаунта и в любой момент можно изменить его параметры. Для этого нужно щёлкнуть на названии репозитария в списке, а потом на боковой панели выбрать значок шестерёнки.
Связывание локального хранилища с удалённым
На данный момент существуют два хранилища: локальное, в папке C:* и удалённое, по адресу https://имя@bitbucket.org/имя/имя_реп.git** Но они никак не связаны, и, кроме того, пусты.
Можно воспользоваться инструкцией, автоматически появляющейся при создании нового удалённого хранилища:
Мы немного изменим предлагаемый порядок команд.
- В окне оболочки на локальной машине создадим файл с именем пользователя:
echo "ashtan" >> contributers.txt
- Добавим созданный файл в хранилище:
git add contributers.txt
- Зафиксируем изменения в хранилище:
git commit -m "Комментарий к коммиту"
- Выполним связывание локального хранилища с удалённым
git remote add origin https://имя@bitbucket.org/имя/имя_реп.git
Во время одного из этапов первоначальных действий с Git придётся настроить имя пользователя и адрес почты:
git config --global user.name "John Doe"
git config --global user.email [email protected]
Передача изменений в удалённое хранилище
После того, как связь между хранилищами определена, можно внести изменения в удалённый репозиторий:
git push -u origin master
Не забываейте правильно набирать пароль к аккаунту bitbucket в момент передачи изменений.
Признаком успеха является появление подобных сообщений:
На странице репозитария в bitbucket.org в разделе содержимого хранилища можно будет увидеть новый файл.
Дальнейшая работа
В дальнейшем, нужно будет добавлять к локальному хранилищу новые файлы или переопределять отредактированные
git add .
Далее, необходимо фиксировать изменения:
git commit -m "Комментарий"
И, в заключении, передавать изменения на сервер
git push
Начало работы с Bitbucket | Linux |PRO IT
Bitbucket — сервис хостинга и совместной разработки проектов (Git и Mercurial). Аналог всем известного GitHub. Основное его отличие — возможность создания закрытых бесплатных хранилищ (до 5 пользователей).
Bitbucket идеально подходит для работы над личным проектом (не показывая его всему миру) или для работы в небольшой команде.
Регистрация на сервисе очень простая: Bitbucket поддерживает OpenID, а это значит, что зарегистрироваться в Bitbucket можно через учетную запись, например в Google, Facebook или Twitter. При регистрации сервис предложит выбрать тип учетной записи: личная или комманда. Выбираем в зависимости от проекта. После регистрации у вас спросят, будете ли вы пользоваться паролем, или файл-ключем для доступа к системе. Проще выбрать пароль, безопаснее key-файл. После этого вам предложат создать свое первое хранилище в системе.
Устанавливаем Git (Ubuntu)
Для установки Git на компьютере набираем в консоле комманды:
1. Ставим Git:
# sudo apt-get install git-core
2. Убедимся, что установка прошла успешно:
# which git /usr/bin/git
3. Задаем свое имя командой:
# git config --global user.name "FIRST_NAME LAST_NAME"
4. Задаем свой e-mail:
# git config --global user.email "[email protected]"
Работа с Bitbucket
Войдя в хранилище, Bitbucket показывает справку о том, как начать с ним работать. Например, на главной странице хранилища сервис спрашивает, хотим ли мы создать новый проект, или импортировать существующий.
Для создания нового проекта
Создаем в папку проекта
# mkdir /path/to/your/project
Переходим в нее
# cd /path/to/your/project
Создаем репозиторий
# git init
Устанавливаем сервер для синхронизации:
# git remote add origin https://имя_аккаунта@bitbucket.org/имя_аккаунта/имя_хранилища.git
Готовую ссылку можно скопировать из Bitbucket.
Для импорта существующего репозитория
Откроем папку проекта
# cd /path/to/my/repo
Установим сервер для синхронизации
# git remote add origin https://имя_аккаунта@bitbucket.org/имя_аккаунта/имя_хранилища.git
Отправим файлы проекта на сервер
# git push -u origin --all
Для внесения изменений
Например, создаем файл README.md
# echo "# This is my README" >> README.md
Добавляем новый файл в Git
# git add README.md
Фиксируем изменение файла, добавив комментарий
# git commit -m "Первый комментарий. Добавляем файл README."
Отправляем изменение в хранилище
# git push origin master
Клонируем репозиторий
Если мы хотим склонировать репозиторй в другую папку, или на другой компьютер — используем комманду:
# git clone https://имя_аккаунта@bitbucket.org/имя_аккаунта/имя_хранилища.git
Дополнительную информацию о работе с Git вы можете прочитать в электронном учебнике (на русском языке).
Поделиться «Начало работы с Bitbucket»
Интересное по теме:
IDEA, Git, BitBucket на практике. Часть 1: Основы. Работаем локально.
Устав таскать флешку с JavaRushHomeWork.7z с работы домой а из дома на работу, в очередной раз забыв скопировать незавершенные задания, мною было принято волевое решение не дожидаться 39-го уровня и настроить для личного пользования связку Git + BitBucket.
BitBucket, потому что есть бесплатные приватные репозитории (не забываем о правилах JavaRush), а Git, потому что Git, потому что был на слуху, потому что у меня про него уже как-то спрашивали.
На тот момент все казалось простым и понятным: регистрируемся на bitbucket.org, устанавливаем Git, жмем одну волшебную кнопку и мои файлы появляются на сервере, жмем другую и чудесным образом продолжаем работать с актуальными файлами в другом месте. Почитал я тут и тут, зарегистрировался, установил, прописал, подключил, нажал «Share project», ввел имя, выбрал тип и… чудо не произошло. Не взлетело, на сервере было пусто… С сожалением был вынужден констатировать пару фактов: без бубна не обойтись, я совсем не понимаю что должно было произойти на самом деле, так сказать под капотом, и что значат все эти новые слова, которые в один миг появились в моей жизни.
Итак, запасаемся терпением, берем в руки замечательную книгу Pro Git и начинаем все сначала.
Совсем чуть-чуть теории, для разогрева.
Система управления версиями — система, отслеживающая изменения в одном или нескольких файлах и позволяющая восстановить определенные старые версии.
Git — распределённая система управления версиями файлов.
Распределённая система контроля версий — система, в которой вся история изменений хранится на каждом компьютере, в локальном хранилище, и при необходимости отдельные фрагменты истории локального хранилища синхронизируются с аналогичным хранилищем на другом компьютере.
Что это означает для нас? А то, что на любом компьютере задействованном в процессе, мы локально будем иметь копию нужного нам репозитория. По факту, основная работа ведется именно с локальным репозиторием. Следовательно, на данном этапе забываем о BitBucket и учимся работать с Git в IDEA локально.
Установка Git.
Получить дистрибутив можно на сайте проекта git-scm.com
Подробно расписывать процедуру установки смысла нет, установка тривиальна, а доступные на этом этапе настройки вполне понятны. Помимо этого, в сети полно материалов по установке, включая видео.
Внимание стоит заострить только на одном моменте, если Вы устанавливаете Git после IDEA, в последней необходимо указать путь к git.exe. Если IDEA устанавливалась после Git, путь будет добавлен автоматически.
Создание репозитория Git.
Создать git-репозиторий можно двумя способами:
- Импортировать в Git существующий проект или каталог.
- Клонировать уже существующий репозиторий с сервера.
Второй пункт мы рассмотрим позже, когда перейдем к работе с Git-сервером, а пока сосредоточимся на первом пункте.
Изначально, Git рассчитан на работу из консоли, в командном режиме, поэтому, для лучшего понимания происходящего, ниже я буду приводить команды Git и иллюстрировать их командами меню или сочетаниями клавиш в IDEA. При этом, работать в командной строке можно непосредственно из IDEA.
Исходные данные: простой проект IDEA с одним файлом класса.
Для создания репозитория служит команда
git init
Эта команда создаст в текущем каталоге новый подкаталог .git с необходимыми файлами, основой репозитория Git.
Аналогично в IDEA — VCS — Enable Version Control Integration
IDEA бодро отрапортует об успешном завершении операции, в «Tool Buttons» появится пара новых закладок, а в закладке «Version Control» мы сможем посмотреть выполненные команды и их результат.
Добавление файлов
Основу репозитория мы создали, но проект пока не находится под версионным контролем. И тут следует сделать небольшое лирическое отступление. В Git файлы могут находится в одном из трех состояний: зафиксированном, измененном и подготовленном.
Зафиксирован — значит сохранен в репозитории.
Измененные — файлы, которые были изменены, но не были зафиксированы.
Подготовленные — измененные файлы, отмеченные для «фиксирования».
Работает над Git Bash — GeeksforGeeks
Git Bash — это приложение, которое обеспечивает работу с командной строкой Git в операционной системе. Это оболочка командной строки для включения git из командной строки в системе. Оболочка — это терминальное приложение, используемое для взаимодействия с операционной системой с помощью письменных команд. Git Bash — это пакет, который устанавливает Bash, некоторые распространенные утилиты bash и Git в операционной системе Windows. В Git Bash пользователь взаимодействует с репозиторием и элементами git с помощью команд.
Что такое Git?
- Git — это система контроля версий для отслеживания изменений в исходном коде во время разработки программного обеспечения.
- Он предназначен для координации работы программистов, но с его помощью можно отслеживать изменения в любом наборе файлов.
- Его цель — повысить эффективность, скорость и упростить управление крупными проектами с помощью контроля версий.
- Каждый рабочий каталог git представляет собой полноценный репозиторий с полной историей и полными возможностями отслеживания версий, независимо от доступа к сети или центрального сервера.
- Git помогает команде справиться с путаницей, которая обычно возникает, когда несколько человек редактируют одни и те же файлы.
Установка Git Bash
Чтобы установить Git Bash в Windows, выполните следующие действия:
Шаг 1: Установщик файла .exe для Git Bash можно загрузить с https://gitforwindows.org/
После загрузки запустите этот установщик, появится следующее окно: —
Шаг 2: Выберите компоненты, которые необходимо установить, и нажмите кнопку Далее.
Шаг 3: Выберите способ использования Git из командной строки и нажмите «Далее», чтобы начать процесс установки.
Шаг 4: Дождитесь завершения процесса установки, чтобы начать использовать Git Bash.
Чтобы открыть Git Bash, перейдите в папку, в которую вы установили git, в противном случае просто найдите в своей ОС git bash.
Навигация в Git Bash
CD команда
Команда
cd относится к каталогу изменений и используется для перехода в желаемый каталог.
Для перехода между папками используется команда cd
Синтаксис:
cd имя_папки
LS команда
Команда
ls используется для вывода списка всех файлов и папок в текущем каталоге.
Синтаксис:
лс
Задайте глобальную конфигурацию имени пользователя и электронной почты
Откройте Git Bash и начните создавать имя пользователя и адрес электронной почты для работы с Git Bash.
Задайте имя пользователя:
git config --global user.name "FIRST_NAME LAST_NAME"
Укажите адрес электронной почты:
git config --global user.email "[email protected]"
Инициализация локального репозитория
Для инициализации локального репозитория с помощью Git выполните следующие действия:
Шаг 1: Создайте репозиторий на Github
Шаг 2: Дайте подходящее имя вашему репозиторию и создайте репозиторий
Шаг 3: После создания репозитория
появится следующее
Шаг 4: Откройте Git Bash и измените текущий рабочий каталог на свой локальный проект с помощью команды cd .
Шаг 5: Инициализируйте локальный каталог как репозиторий Git.
git init
Шаг 6: Подготовьте файлы для первой фиксации, добавив их в локальный репозиторий
git add.
Шаг 7: По «git status» вы можете увидеть поэтапные файлы
Шаг 8: Зафиксируйте файлы, которые вы разместили в локальном репозитории.
git commit -m «Первая фиксация»
Теперь После команды «git status» видно, что нечего фиксировать, следовательно, все файлы были зафиксированы.
Отправка файлов в репозиторий Git
Шаг 1: Перейдите в репозиторий Github и в code section скопируйте URL .
Шаг 2: В командной строке добавьте URL-адрес вашего репозитория, в который будет помещен ваш локальный репозиторий.
git удаленное добавление источника репозиторий_URL
Шаг 3: Отправьте изменения в локальном репозитории на GitHub.
git push origin master
Здесь файлы помещены в главную ветку вашего репозитория.
Теперь в репозитории GitHub можно увидеть загруженные файлы.
Сохранение изменений в локальном репозитории
Предположим, что файлы изменяются и появляются новые файлы
Git — Book
2-е издание (2014)
Загрузить Ebook
Вся книга Pro Git, написанная Скоттом Чаконом и Беном Штраубом и опубликованная Apress, доступна здесь.Все содержимое находится под лицензией Creative Commons Attribution Non Commercial Share Alike 3.0. Печатные версии книги доступны на Amazon.com.>
- 1.1
О контроле версий - 1.2
Краткая история Git - 1.3
Что такое Git? - 1.4
Командная строка - 1.5
Установка Git - 1.6
Первоначальная настройка Git - 1,7
Получать помощь - 1,8
Резюме
- 1.1
- 2.1
Получение репозитория Git - 2.2
Запись изменений в репозиторий - 2.3
Просмотр истории фиксации - 2,4
Отмена вещей - 2,5
Работа с пультами - 2,6
Теги - 2,7
Псевдонимы Git - 2.8
Резюме
- 2.1
- 3.1
Ветви в двух словах - 3.2
Базовое ветвление и слияние - 3.3
Управление филиалом - 3,4
Ветвление рабочих процессов - 3.5
Удаленные филиалы - 3.6
Ребазинг - 3,7
Резюме
- 3.1
- 4.1
Протоколы - 4.2
Получение Git на сервере - 4.3
Создание открытого ключа SSH - 4.4
Настройка сервера - 4.5
Git Daemon - 4.6
Умный HTTP - 4,7
GitWeb - 4.8
GitLab - 4.9
Сторонние варианты размещения - 4.10
Резюме
- 4.1
- 5.1
Распределенные рабочие процессы - 5.2
Участие в проекте - 5,3
Сопровождение проекта - 5,4
Резюме
- 5.1
- 6.1
Настройка и конфигурация учетной записи - 6.2
Участие в проекте - 6.3
Сопровождение проекта - 6.4
Управление организацией - 6.5
Создание сценариев на GitHub - 6,6
Резюме
- 6.1
- 7.1
Выбор редакции - 7.2
Интерактивная постановка - 7.3
Хранение и уборка - 7,4
Подпись вашей работы - 7,5
Поиск - 7,6
Переписывая историю - 7,7
Reset Demystified - 7.8
Расширенное слияние - 7.9
Rerere - 7.10
Отладка с помощью Git - 7,11
Подмодули - 7,12
Комплектация - 7,13
Заменить - 7.14
Хранилище учетных данных - 7,15
Резюме
- 7.1
- 8.1
Конфигурация Git - 8,2
Атрибуты Git - 8,3
Git Хуки - 8,4
Пример политики, применяемой Git - 8.5
Резюме
- 8.1
9.
Обзор
Большинство содержимого (перехватчики, проверки слияния, обработчики событий) имеют параметр условия. Обычно вы комбинируете условие со встроенным содержимым, например, рассылаете почту только тогда, когда создается ветка, соответствующая регулярному выражению.
Щелкните ссылку Expand examples под полем Condition , чтобы отобразить список примеров.
Щелчок по любому из них перезапишет текущее условие образцом кода.Возможно, вам потребуется изменить любые строковые литералы, например ссылки на ключи или группы проекта. Результат последней строки любого Groovy-скрипта возвращается как результат условия, но не стесняйтесь использовать ключевое слово return
, чтобы сделать его более понятным.
Возьмем в качестве примера надуманный сценарий — вы хотите запретить создание тегов во всех общедоступных репозиториях . Начнем с условия, соответствующего созданию тегов:
импорт ком.atlassian.bitbucket.repository.RefChangeType
refChanges.any {it.refId.startsWith ("refs / tags /") &&
it.type == RefChangeType.ADD
}
Теперь проверьте условие для общедоступных проектов:
импорт com.atlassian.sal.api.component.ComponentLocator
импортировать com.atlassian.bitbucket.repository.Repository
импорт com.atlassian.bitbucket.permission.PermissionService
Репозиторий репозиторий = репозиторий
def permissionService = ComponentLocator.getComponent (PermissionService)
permissionService.isPubliclyAccessible (repository.project)
Учитывая, что они оба работают, мы можем объединить их так:
импорт com.atlassian.sal.api.component.ComponentLocator
импортировать com.atlassian.bitbucket.repository.RefChange
импортировать com.atlassian.bitbucket.repository.Repository
импорт com.atlassian.bitbucket.permission.PermissionService
импортировать com.atlassian.bitbucket.repository.RefChangeType
Репозиторий репозиторий = репозиторий
Коллекция refChanges = refChanges
def permissionService = ComponentLocator.getComponent (PermissionService)
def isPublic = permissionService.isPubliclyAccessible (репозиторий.проект)
def isTagCreate = refChanges.any {it.refId.startsWith ("refs / tags /") &&
it.type == RefChangeType.ADD
}
возврат isPublic && isTagCreate
Методы состояния
Есть несколько методов, которые можно использовать в условиях, упрощающих условия записи. Их можно использовать либо как глобальные функции, и в этом случае они работают с тем, что находится в привязке, либо как если бы они были методами e.грамм. PullRequest. Их:
пути Соответствие
логическое значение pathsMatch (String syntaxAndPattern)
Это вернет истину, если push, pull request, merge check и т. Д. Содержат изменения в конкретном пути. Аргумент syntaxAndPattern
имеет две возможные формы: glob
и regex
.
Метод glob принимает ant globs (метод сопоставления путей в стиле Ant), например, следующий соответствует push, который содержит файлы java в каталоге some / path.
refChanges.pathsMatch ("glob: some / path / **. Java")
В мерж-реквесте это вернет истину, если какой-либо из измененных файлов находится под ssh / keys:
mergeRequest.pullRequest.pathsMatch ("glob: ssh / keys / **")
Это будет проходить через каждую фиксацию и проверять, есть ли какие-либо изменения в конкретном пути. За исключением запроса на перенос, в котором учитываются только изменения из разницы. Это означает, что если вы перебазируете или объединяете изменения из целевой ветки в исходную ветвь запроса на вытягивание, чтобы обновить его, эти изменения будут проигнорированы, поскольку они уже находятся в ветке, с которой вы выполняете слияние. |
pathsMatch (против коммитов для запросов на вытягивание)
логическое значение pathsMatch (String syntaxAndPattern, Iterable фиксирует)
Это то же самое, что и pathsMatch
, за исключением того, что он будет соответствовать предполагаемым коммитам для запроса на вытягивание, а не изменениям в diff. Это может быть полезно при предотвращении слияния конфиденциальных файлов, если они существуют в истории фиксации запроса на вытягивание с использованием проверок слияния.
коммитов
— это коммит Atlassian.
В мерж-реквесте это вернет истину, если какой-либо из измененных файлов находится под ssh / keys:
def pullRequest = mergeRequest.pullRequest
mergeRequest.pullRequest.pathsMatch ("glob: ssh / keys / **", pullRequest.getCommit ())
При использовании условия обработчика событий следует использовать:
def pullRequest = event.pullRequest
pullRequest.pathsMatch ("glob: ssh / keys / **", pullRequest.getCommits ())
Если вы щелкните ссылку Expand examples под условием, вы увидите различные примеры того, как pathsMatch против коммитов. |
pathsMatch — сбор всех изменений, соответствующих пути (только в отношении изменений ref)
boolean pathsMatch (String s
Bitbucket Time Tracking Integration
Как использовать отслеживание времени в BitBucket
1. Найдите кнопку таймера в выпуске Bitbucket
На странице проекта щелкните вкладку Issues и выберите проблему. Откроется диалоговое окно, в котором вы можете просмотреть и отредактировать содержание вопроса.Вы увидите кнопку Start timer в правом верхнем углу окна.
2. Запустить таймер при возникновении проблемы
Нажмите кнопку Start timer , и TMetric начнет записывать ваше рабочее время Bitbucket. Обратите внимание, что кнопка Start timer меняется на кнопку Stop timer и отображает время, потраченное на выполнение задачи.
Если вы являетесь владельцем рабочего пространства или назначенным администратором в TMetric и запускаете таймер в первый раз, TMetric извлекается из Bitbucket и добавляет в ваше рабочее пространство TMetric:
- список дел
- ID дела
- название проекта
Соответствующая запись времени отображается на странице Time в веб-приложении TMetric.Вы можете легко вернуться к делу Bitbucket, просто щелкнув значок ссылки рядом с названием задачи.
3. При необходимости отредактируйте запись времени
Запись времени с внешней задачей можно редактировать. Вы можете редактировать имя задачи и проекта, не теряя ссылку на проблему Bitbucket.
Чтобы отделить задачу от проблемы Bitbucket, щелкните крестик рядом с названием задачи в правом нижнем углу редактора записи времени.
4.Посмотреть отчет о времени
Отчеты показывают время из разных внешних систем, а также время, введенное вручную в TMetric.
TMetric — отличное приложение для отслеживания времени для Windows, macOS и Linux, которое позволяет вам контролировать свое время и оставаться продуктивным в течение дня. Мобильное приложение TMetric для Android или iOS — самый удобный способ отслеживать свое время в офисе или на встречах с клиентами.
Вы должны использовать конвейеры BitBucket
Обычно рабочие процессы разработчика включают отправку кода в BitBucket.Отсюда вы запускаете такие процессы, как тестирование, обновление промежуточного сервера и создание документации. Все эти процессы могут стать очень повторяющимися. К счастью, их также можно автоматизировать. Вот тут и пригодится Bitbucket Pipelines.
Это просто — вам нужно только создать набор скриптов, которые будут запускаться сразу после того, как вы сделаете push на Bitbucket.
Как работает конвейер BitBucket?
Вот краткое описание:
1) Виртуальная машина Linux создана с конфигурацией Docker
2) Ваш исходный код скопирован на виртуальную машину
3) Ваши скрипты запускаются из битбакет-конвейеров.yml файл
Вот очень простой пример файла bitbucket-pipelines.yml, расположенного в корне репозитория:
Pipelines отображает результат выполнения этих скриптов, что особенно хорошо, потому что легко отслеживать успех.
Вот пример успешного процесса сквозного тестирования:
А вот и провал:
Легко читаемые визуальные дисплеи помогают нам убедиться в правильности наших процессов.Ход доставки можно отслеживать с первого взгляда, чтобы мы могли быстро устранять ошибки по мере их появления.
Любая командная строка может использоваться в конвейерах
Здесь, в Fresh, мы используем конвейеры для автоматизации таких процессов, как:
- Push-сборка на промежуточный и рабочий серверы
- Уведомить Slack или отправить по электронной почте о результатах тестирования
Вы также можете запускать процессы, требующие проверки подлинности в сторонних службах. В таких случаях переменные среды надежно хранятся в настройках BitBucket, благодаря чему в вашем репозитории не должно быть жестко заданных имен пользователей и паролей.
Стоит ли усилий?
Однозначно !!!
Использование конвейеров сэкономит вам сотни часов времени. Он позволяет разработчикам синхронизировать результаты тестирования, документацию и последние сборки. Кроме того, вы можете интегрировать его со многими другими инструментами командной строки для повышения производительности.
Мы настоятельно рекомендуем использовать BitBucket Pipelines в вашем рабочем процессе.
Bitbucket | Документация Buildkite
Buildkite интегрируется с Bitbucket для предоставления автоматизированных сборок на основе системы контроля версий.Отправка вашего кода в BitBucket может автоматически запускать сборки Buildkite, а состояние сборки запросов на вытягивание может обновляться в реальном времени по мере выполнения сборки.
В этом руководстве показано, как настроить сборки BitBucket с помощью Buildkite.
Настройка веб-перехватчика Bitbucket
После того, как вы создали конвейер в Buildkite и вставили его в URL-адрес репозитория bitbucket.org, Buildkite покажет вам инструкции по настройке для настройки ваших веб-перехватчиков BitBucket.
Эти инструкции также можно найти, перейдя по ссылке «Инструкции по настройке Bitbucket» на странице настроек конвейера Buildkite:
В инструкциях по установке есть прямая ссылка на настройки, инструкции и настраиваемый URL-адрес веб-перехватчика вашего репозитория Bitbucket для конвейера:
После перехода по ссылке вы можете добавить новый веб-перехватчик:
После заполнения сведений о веб-перехватчике в соответствии с инструкциями в настройках конвейера Buildkite нажмите «Сохранить», и все готово для отправки сборки.
Включение обновления статуса фиксации
Если вы хотите, чтобы значки состояния сборки запроса на перенос Bitbucket обновлялись по мере выполнения сборки, вам необходимо подключить свою учетную запись Bitbucket к Buildkite. Вам нужно сделать это только один раз, и если вам не нужны обновления статуса сборки, вы можете вообще пропустить этот шаг.
Чтобы подключить свою учетную запись Bitbucket, откройте личные настройки Buildkite, выберите «Подключенные приложения» и нажмите кнопку «Подключить»:
Вам будет предложено предоставить Buildkite разрешение на публикацию обновлений статуса, а затем будет выполнено перенаправление обратно на страницу «Подключенные приложения».
Вы можете редактировать настройки Bitbucket для каждого конвейера на странице настроек конвейера:
Mercurial поддержка
Средством управления версиями
Buildkite Agent по умолчанию является Git, и он не поддерживает Mercurial из коробки. Если вы хотите использовать Buildkite с репозиторием BitBucket Mercurial, вам нужно будет добавить собственный код проверки Mercurial с помощью настраиваемого обработчика глобальной проверки Buildkite Agent.
.