Краткое описание основной задачи
Ваша цель — изучить основы Git путем освоения обучающего руководства. Здесь мы вообразим, что мы отслеживаем космические станции своей команды. В этом руководстве рассматриваются команды
- git clone, git config, git add, git status, git commit, git push, git pull, git branch, git checkout и git merge
Commit a new file to your repository and push to bitbucket
Only when you could commit and push a file to Bitbucket without a problem, that we can confidently say our setup works.
Yeah, that’s “home-work” for you and I’m not going to list any steps here
Since the purpose of this article was to setup the necessary tools, “how to” work with these tools is beyond scope (Can be discussed in another article maybe).
Configure git settings
1. Click Start Menu and type “Git Bash” and press Enter to open a Git command-line window
2. Provide your name and email address to Git, so that it will label your commits properly.
Extra step, only if you didn’t get the “choose ssh client” option
If you didn’t see the “Choose SSH Client” option during installation (which can happen if you are reinstalling TortoiseGit – the settings are left behind in a previous installation in the Registry). You can set this later in TortoiseGit settings after installing TortoiseGit as described below →
- Right-click on any folder and select: TortoiseGit → Settings, from the context menu.
- Click on the “Network” node.
- You will see the “SSH client:” option on the right.
- Make sure it has only ssh.exe in it.
- Click Ok.
Here’s a screenshot of the Network options in TortoiseGit settings →
Let’s test our installation
We need a valid Git repository in Bitbucket to test our installations and configurations.
Go to an existing repository or create a new repository (this can even be a repository to only test Git with Bitbucket, that you can delete immediately).
1. Click on the “Clone” button on top (next to the “Fork” button).
2. Select “SSH” from the drop-down.
3. You will see a text box to the right with all its text selected. “git clone” is a command and we don’t need that now. So, copy everything else.
This is how it would look in Bitbucket →
If you paste the copied text to a text editor like Notepad, it should look something like the following (Note that there’s no “git clone” command in it. If you accidentally copied that too, copy again WITHOUT it).
git@bitbucket.org:guganeshanthambiraja/sample-repository.git
Working on bitbucket using git – geeksforgeeks
Git provides various tools and applications to perform better handling of the work environment. Git is a type of version control system that is used to allow more than one developer to access the source code of a specific application and can modify changes to it that may be seen by other developers. BitBucket is a git-based tool that helps with collaborations on large projects across various teams and helps keep a track of different versions of a project that can access it from your local machine. It is specially designed for teams to collaborate on large projects in big enterprises. It is also used for automated testing and deployment of code. Since this is a git-based tool, you need to have git in your system to work with Bitbucket.
Let’s suppose many developers are developing a project that is divided between various teams and will work on different versions during and after development. For this kind of project, Bitbucket is the best option for individuals or teams.
Now you might be wondering that what is the difference between Github and Bitbucket?
The most elemental difference between Github and Bitbucket is that Github is more public-friendly, and is used by individual developers, whereas Bitbucket is more private-friendly, and hence is used by large-scale enterprises for the development of big projects.
Note Another way to create a repository and clone it is using the source tree in BitBucket.
Working with BitBucket
Now’s let’s see how we can work with the Bitbucket using git. It’s pretty simple. You will need to create a repository first. Visit the link below and create an account at Bitbucket. After you have created your account, you will see a button “create repository” in the center of the screen, click it and create a repository. You can choose the repository to be private or public. public repositories are accessible to everyone while private is only accessible to you. Now we will get started with the Bitbucket.
We will need to clone the project folder into your local machine, which can be done in a few steps as shown below with visual aids
Step 1: Clone the repository into your local machine
Click on the “clone” button on the right corner of the dashboard. A prompt with the URL link would appear. the URL link would look like “https://USERNAME@vhod-v-lichnyj-kabinet.ru/USERNAME/REPOSITORY_NAME.git”. You can clone using either https or ssh links.
Step 2: Copy and paste the link in the terminal after typing git clone.
Use the following commands to clone your repository as provided below as follows:
git clone (REPOSITORY URL) git clone https://USERNAME@bitbucket.org/USERNAME/REPOSITORY_NAME.git
Now, we need to know what does clone means? Clone means, it will retrieve all the contents from that directory to your local machine where you are working, without affecting the Bitbucket repository, until you edit it from the terminal. Using git clone would add the folder to your local machine.
Step 3: Check your progress by typing “git status” command into the terminal
git status
Step 4: Creating and adding a file to your Bitbucket repository
Now, let’s suppose you want to create and add a file to your Bitbucket Repository. Type in the commands below in the terminal.
echo "This is a test file" >> file.txt git add file.txt
Step 5: Committing changes to BitBucket repository
The file is now added and is ready to be committed and pushed on your Bitbucket repository.
git commit -m "Initial Commit" git push origin master // to push the changes on the Bitbucket repository.
If there are some changes made to your repository. You can use the git pull command to restore them to your local machine.
git pull git pull origin master git pull --all
Any of the three commands would restore the changes into your folder in the local machine.
Step 6: Performing operations on branches
As discussed, since this is a tool for working across separate branches, let’s learn how to create, and delete a new branch, and how to switch across branches.
To create a branch, type in the terminal
git branch new_branch_name git branch testbranch // to create a new branch named testbranch
To switch the branch, use the command git checkout:
git checkout new_branch_name git checkout testbranch // to switch to a branch named testbranch
Finally, to merge your branch with the master branch, use the command git merge to merge the two branches.
git merge branch_name
Step 7: To delete a branch, use git branch -d to delete the branch.
git branch -d branch_name
In case you have an existing project, switch the current directory to that existing repository in the Terminal or CMD. Then type in the commands below in the terminal or CMD.
Your feedback!
I want to keep this post as simple as possible for anybody to follow. If you found any areas where it is not clear, please let me know below in the comments, so that I can make sure its simple for everyone.
Adiós
Готово!
Не уверены, что сможете запомнить все только что выученные команды Git? Не вопрос. Добавьте закладку на нашу страницу Основные команды Git и обращайтесь к ней при необходимости.
Использование команды git branch для слияния файла
Администратор космических станций имеет определенные обязанности. Иногда приходится ограничивать доступ к информации, особенно при добавлении на карту местоположения новых станций в солнечной системе. Освоив работу с ветками, вы сможете обновлять файлы и делиться информацией, когда будете к этому готовы.
В полной мере потенциал веток раскрывается при работе в команде. Вы можете работать над своей частью проекта из своей ветки, получать изменения из Bitbucket и выполнять слияние всех результатов своей работы, когда она будет готова, с главной веткой. В нашей документации подробно описано, для чего используются ветки.
Ветка представляет собой независимое направление разработки в репозитории. Ее можно рассматривать как новое сочетание рабочего каталога, раздела проиндексированных файлов и истории проекта. Создание новых веток автоматически начинается с главной ветки (main). В качестве наглядного примера на этой схеме показаны главная ветка и ветка с обновлением для исправления багов.
Копирование репозитория git и добавление файлов
У вас есть место для хранения файлов космических станций и обмена ими. Теперь нужно научиться обращаться к нему из локальной системы. Для этого нужно копировать репозиторий Bitbucket в локальную систему. В Git копирование репозитория называется «клонированием».
Получение изменений из репозитория git в bitbucket cloud
Далее вам как администратору космических станций понадобится файл с дополнительной информацией об их местоположении. Поскольку на данный момент у вас не так много данных о местоположении, их можно добавить прямо из Bitbucket.
Синхронизация с bitbucket
Как мы уже говорили, вся текущая работа с репозиторием происходила на локальном компьютере без подключения к серверу Bitbucket – пришло время синхронизироваться! Для этого нужно выполнить команды, которые сообщил нам Bitbucket после создания удаленного репозитория:
Создание репозитория
Переходим в терминале в директорию, в которой мы хотим создать репозиторий – директорию с исходными кодами нашего приложения – и инициализируем новый репозиторий:
git init
Добавляем все файлы в созданный репозиторий:
git add *
И делаем commit – то есть сохранение текущей версии репозитория:
git commit -m 'первая версия репозитория'
Создание репозитория git
Вы — новый администратор космической станции Bitbucket, это требует самоорганизации. Файлы, которые вы создаете для космической станции, должны храниться в одном месте, чтобы к ним могли обращаться участники команды из любой точки Вселенной. В Bitbucket это означает, что нужно все добавлять в репозиторий. Давайте создадим его!
Несколько интересных фактов о репозиториях
- Независимо от того, работаете ли вы с одним или несколькими файлами, вы получаете доступ ко всем файлам в локальном репозитории.
- Вы можете просматривать публичные репозитории, не имея аккаунта Bitbucket, если у вас есть URL-адреса этих репозиториев.
- Каждый репозиторий принадлежит аккаунту пользователя или команде. В первом случае владельцем репозитория является пользователь, а во втором — команда.
- Удалить репозиторий может только его владелец. Если репозиторий принадлежит команде, его может удалить администратор.
- Проект программного кода может состоять из нескольких репозиториев для нескольких аккаунтов или одного репозитория, принадлежащего одному аккаунту.
- Размер репозитория ограничен 2 ГБ, однако рекомендуется использовать репозитории размером не более 1 ГБ.
Шаг 1. клонируйте репозиторий в локальную систему
С рабочего стола откройте браузер и окно терминала. В окне терминала проделайте следующее.
- Перейдите в домашний каталог (~)
Когда вы станете использовать Bitbucket активнее, вы наверняка будете работать с несколькими репозиториями. С учетом этого хорошо бы создать каталог, который будет содержать в себе все эти репозитории.
Создайте каталог для размещения своих репозиториев.
- В окне терминала сделайте новый каталог для репозиториев своим рабочим каталогом.
Шаг 1. создайте репозиторий
Изначально репозиторий, созданный в Bitbucket, будет пустым, без программного кода. Ничего страшного, скоро вы начнете добавлять туда новые файлы. Репозиторий Bitbucket будет центральным репозиторием для ваших файлов. Другие пользователи смогут получить доступ к нему, только если вы предоставите им соответствующие права.
Создать репозиторий можно следующим образом:
Шаг 1. создайте файл в bitbucket
Чтобы добавить новый файл с данными о местоположении, выполните следующие действия.
Нажмите Source (Исходный код) в репозитории BitbucketStationLocations, чтобы открыть каталог с исходным кодом. Обратите внимание, что в каталоге находится только один файл,
locations.txt
.A. Страница Source (Исходный код): нажмите ссылку, чтобы открыть эту страницу.
B. Выбор ветки: выберите ветку, которую хотите просмотреть.
C. Кнопка «Еще»: нажмите, чтобы вызвать меню с дополнительными командами, например Add file (Добавить файл).
D. Область файлов исходного кода: просмотр каталога файлов в Bitbucket.На странице Source (Исходный код) нажмите кнопку «Еще» в правом верхнем углу и выберите в меню команду Add file (Добавить файл). Кнопка «Еще» появляется только после того, как в репозиторий был добавлен хотя бы один файл.
Откроется страница создания нового файла, как показано на следующем изображении.
Новый файл BitbucketНовый файл Bitbucket
A. Ветка с новым файлом: измените, если нужно добавить файл в другую ветку.
B. Область нового файла: добавьте сюда содержимое нового файла.В поле
filename
(Имя файла) введите stationlocations.В списке Syntax mode (Режим синтаксиса) выберите вариант HTML.
В текстовое поле добавьте следующий HTML-код:
Шаг 1. создание ветки и внесение изменения
Создайте ветку, в которую вы сможете добавлять планы для космической станции, еще не готовые к коммиту. Когда вы будете готовы сообщить об этих планах всем, можно будет выполнить слияние изменений в репозиторий Bitbucket и затем удалить ставшую ненужной ветку.
Важно понимать, что ветки — это просто указатели на коммиты. Когда вы создаете ветку, Git создает только новый указатель, а не новый набор файлов или папок. Перед началом работы ваш репозиторий выглядит так:
Создать ветку можно следующим образом:
- В окне терминала перейдите на верхний уровень локального репозитория с помощью следующей команды:
cd ~/repos/bitbucketstationlocations/
В окне терминала создайте ветку.
$ git branch future-plans
Эта команда создает ветку, но не выполняет переключение на эту ветку, поэтому репозиторий выглядит примерно так:
История репозитория остается неизменной. Все, что вы получаете, — это новый указатель на текущую ветку. Чтобы начать работу с новой веткой, вы должны переключиться на ветку, которую хотите использовать.
Переключитесь на только что созданную ветку, чтобы начать ее использовать.
$ git checkout future-plans
Switched to branch 'future-plans'
Команда
git checkout
часто используется вместе с командойgit branch
. Поскольку ветка создается для работы над чем-то новым, после каждого создания новой ветки (командойgit branch
) требуется переключиться на эту ветку (командойgit checkout
), чтобы начать ее использовать. Кода вы переключитесь на новую ветку, ваш рабочий процесс Git будет выглядеть примерно так:
Найдите в локальной системе папку
bitbucketstationlocations
и откройте ее. Вы заметите, что в результате создания новой ветки в каталоге не появилось никаких дополнительных файлов или папок.Откройте файл
stationlocations
в текстовом редакторе.Измените файл, добавив в него местоположение еще одной станции:
<p>Bitbucket has the following space stations:</p>
<p>
<b>Earth's Moon</b><br>
Headquarters
</p>
<p>
<b>Mars</b><br>
Recreation Department
</p>
Сохраните и закройте файл.
Введите в окне терминала команду
git status
. Вы увидите что-то подобное:
$ git status
On branch future-plans
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: stationlocations
no changes added to commit (use "git add" and/or "git commit -a")
Обратили внимание на строку
On branch future-plans
? Если бы вы ввели командуgit status
раньше, то вместо этой строки увидели бы строкуbranch main
, потому что тогда у вас была только одна ветка —main
. Прежде чем индексировать изменение или выполнять его коммит, всегда проверяйте эту строку, чтобы убедиться, что выбрана именно та ветка, в которую вы хотите добавить изменение.
Проиндексируйте свой файл.
$ git add stationlocations
В окне терминала введите команду
git commit
, как показано ниже:
$ git commit stationlocations -m 'making a change in a branch'
[future-plans e3b7732] making a change in a branch
1 file changed, 4 insertions( )
После этого последнего коммита репозиторий будет выглядеть примерно так:
Теперь пришло время объединить сделанное изменение с веткой
main
.
Шаг 2. merge для ветки: ускоренное слияние
Число ваших космических станций растет. Пришло время для церемонии открытия станции на Марсе. Теперь, когда ваши планы на будущее начали воплощаться в жизнь, можно слить ветку future-plans с основной веткой в локальной системе.
Поскольку вы создали только одну ветку и внесли одно изменение, используйте метод ускоренного слияния веток. Ускоренное слияние возможно, потому что последний коммит текущей ветки является прямым продолжением целевой ветки. В этом случае для объединения историй Git не выполняет полноценное слияние, а просто переносит указатель текущей ветки в конец целевой ветки. Объединение историй проходит успешно, поскольку все коммиты, доступные из целевой ветки, теперь доступны из текущей ветки.
Это распространенная модель работы с ветками, отведенными под решение краткосрочных задач с небольшими изменениями. При работе с объемными функциями она используется реже.
Ускоренное слияние можно выполнить следующим образом:
- В окне терминала перейдите на верхний уровень локального репозитория.
$ cd ~/repos/bitbucketstationlocations/
- Введите команду
git status
, чтобы убедиться, что для всех изменений сделаны коммиты, и узнать, какая ветка выбрана.
$ git status
On branch future-plans
nothing to commit, working directory clean
- Переключитесь на ветку
main
.
$ git checkout main
Switched to branch 'main'
Your branch is up-to-date with 'origin/main'.
- Выполните слияние изменений из ветки
future-plans
с веткойmain
. Это будет выглядеть примерно так:
$ git merge future-plans
Updating fcbeeb0..e3b7732
Fast-forward
stationlocations | 4
1 file changed, 4 insertions( )
- По сути, вы переместили указатель ветки
main
вперед, к текущему указателю HEAD, и репозиторий выглядит как после ускоренного слияния, описанного выше.
Поскольку вы больше не планируете использовать ветку
future-plans
, ее можно удалить.
$ git branch -d future-plans
Deleted branch future-plans (was e3b7732).
- После удаления ветки
future-plans
вы сможете получить к ней доступ из веткиmain
через идентификатор коммита. Если, например, вы хотите отменить изменения, добавленные из веткиfuture-plans
, воспользуйтесь полученным идентификатором коммита для возврата к этой ветке.
Введите команду
git status
, чтобы увидеть результаты слияния. Они показывают, что локальный репозиторий опережает удаленный на один коммит. Это будет выглядеть примерно так:
$ git status
On branch main
Your branch is ahead of 'origin/main' by 1 commit.
(use "git push" to publish your local commits)
nothing to commit, working directory clean
Вот что вы сделали на данный момент:
- Создали ветку и переключились на нее
- Внесли изменение в новую ветку
- Сделали коммит изменения в новой ветке
- Интегрировали изменение в основную ветку
- Удалили ветку, ставшую ненужной
Теперь нужно поместить всю эту работу в Bitbucket, в удаленный репозиторий.
Шаг 2. добавьте файл в локальный репозиторий и поместите его в bitbucket
Теперь, когда в вашей локальной системе есть репозиторий, пора приступать к работе. Вы собираетесь отслеживать местоположение всех своих космических станций. Давайте создадим файл для хранения данных обо всех местоположениях.
- В окне терминала перейдите на верхний уровень локального репозитория.
$ cd ~/repos/bitbucketstationlocations/
- Чтобы создать новый файл с заданным текстом, введите в окне терминала следующую строку.
Если на выходе командной строки ничего нет, значит, файл создан правильно!
Получите информацию о статусе локального репозитория. О продвижении проекта по сравнению с репозиторием Bitbucket можно узнать с помощью команды
git status
.На этом этапе Git знает, что вы создали новый файл. Вы увидите что-то подобное:
$ git status
On branch main
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
locations.txt
nothing added to commit but untracked files present (use "git add" to track)
Это неотслеживаемый файл: Git видит, что он не является частью предыдущего коммита. Вывод команды status подсказывает, что следующим шагом должно стать добавление файла.
Чтобы Git начала отслеживать новый файл
locations.txt
, введите командуgit add
. Если командаgit add
введена правильно, на ее выходе не будет ничего, как и при создании файла,
Команда
git add
переносит изменения из рабочего каталога в раздел проиндексированных файлов Git. Раздел проиндексированных файлов — это место, где подготавливается снимок состояния для набора изменений, прежде чем выполнить их коммит в официальную историю.
Проверьте статус файла.
$ git status
On branch main
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: locations.txt
Вы увидите, что новый файл добавлен (проиндексирован) и вы можете сделать коммит, когда будете готовы. Команда
git status
показывает состояние рабочего каталога и проиндексированного снимка.
Шаг 2. изучите новый репозиторий
Внимательно изучите созданный репозиторий. Вы должны оказаться на странице Overview (Обзор) репозитория.
Нажмите на глобальной боковой панели, чтобы увидеть стандартные действия для репозиториев. Нажимайте элементы на боковой панели навигации, чтобы узнать, что за ними скрывается, в том числе Settings (Настройки), где можно изменить сведения о репозитории и другие параметры. Чтобы просмотреть список быстрых клавиш для перехода к этим элементам, нажмите ? на клавиатуре.
Если вы нажмете Commits (Коммиты) на боковой панели, то обнаружите, что коммитов нет, потому что вы еще не создали содержимое репозитория. Ваш репозиторий является частным, а поскольку вы не отправляли никому приглашений для доступа к нему, то единственный человек, который может создавать и редактировать содержимое репозитория, — это вы, его владелец.
Шаг 2. получите изменения из удаленного репозитория
Теперь нужно скопировать этот новый файл в локальный репозиторий. Это довольная простая процедура, по сути обратная операции push, с помощью которой вы поместили файл locations.txt в Bitbucket.
Скопировать файл в локальный репозиторий можно следующим образом:
- Откройте окно терминала и перейдите на верхний уровень локального репозитория.
$ cd ~/repos/bitbucketstationlocations/
- Введите команду
git pull --all
, чтобы извлечь все изменения из Bitbucket. (В более сложных процессах с ветвлением извлечение и слияние всех изменений может быть неприменимо.) В ответ на запрос введите свой пароль Bitbucket. Окно терминала должно выглядеть примерно так:
Команда
git pull
выполняет слияние файла из удаленного репозитория (Bitbucket) в локальный репозиторий одной командой.
Перейдите в папку репозитория в локальной системе. Там будет находиться только что добавленный файл.
Фантастика! Добавив два файла о местоположении космических станций, вы выполнили классический рабочий процесс в Git (клонирование, добавление, коммит, отправку и получение) между Bitbucket и локальной системой.
Шаг 3. отправьте изменения в bitbucket
Вы хотите, чтобы все могли видеть местоположение новой космической станции. Для этого нужно передать текущее состояние локального репозитория в Bitbucket.
На схеме показано, что происходит, когда локальный репозиторий содержит изменения, которых нет в центральном репозитории, и вы отправляете эти изменения в Bitbucket.
Вот как можно отправить изменение в удаленный репозиторий:
- Находясь в каталоге репозитория, введите в окне терминала команду
git push origin main
, чтобы отправить изменения. Результат будет выглядеть примерно так:
Перейдите на страницу Overview (Обзор) своего репозитория Bitbucket. Обратите внимание, что в ленте Recent Activity (Недавние события) появилась операция push.
Нажмите Commits (Коммиты), и вы увидите коммит, сделанный в локальной системе. Обратите внимание: изменение имеет тот же идентификатор коммита, что и в локальной системе.
Также видно, что линия слева от списка коммитов является прямой и не имеет веток. Это связано с тем, что ветка
future-plans
никогда не взаимодействовала с удаленным репозиторием. Туда передавалось только созданное изменение после коммита.Нажмите Branches (Ветки) и обратите внимание, что на этой странице также нет записи об этой ветке.
Нажмите Source (Исходный код), затем нажмите файл
stationlocations
. Вы увидите, что последнее изменение файла имеет тот же идентификатор коммита, что и отправленное.Нажмите историю файла, чтобы просмотреть изменения этого файла, отправленные в виде коммитов. Она будет выглядеть примерно как на следующем рисунке.