Невозможно добавить, зафиксировать или отправить локальный файл в репозиторий Bitbucket. - PullRequest
1 голос
/ 17 мая 2019

У меня есть 3 ветви (branchone, branchtwo и branchthree), кроме главной ветви в моем репозитории bitbucket, которая называется "test".

Я клонировал репозиторий на моей локальной Windows и получил файл README.md.

Затем я создал Jenkinsfile, добавил, зафиксировал и нажал. Я вижу файл Jenkins в основной ветке bitbucket.

Затем я переключился на branchone с помощью "git checkout branchone" и проверил то же самое с помощью команды git branch

F:\Jenkins\MultiBranch\test>git branch
* branchone
  master
  branchtwo
  branchthree

Я подтвердил, что у меня есть Jenkinsfile, а затем "git add". или "git add Jenkinsfile", но состояние git показывает, что ничего не поставлено

F:\Jenkins\MultiBranch\test>git status

на ветке один Ваш филиал обновлен с указанием "origin / branchone".

нечего коммитить, рабочее дерево чистое

Ниже приведены мои вопросы:

  1. Почему git не добавляет Jenkinsfile в branchone, когда я смог добавить его в master ветку?
  2. Есть ли способ, которым я могу отправить файл Jenkins во все ветви за один раз?
  3. Можно ли создавать филиалы под branchone? как branch1.1 & branch1.2 и т. д. из консоли bitbucket? Если это невозможно из консоли, возможно ли это другими способами?

1 Ответ

1 голос
/ 17 мая 2019

1. Когда вы добавили файл jenkins к мастеру, зафиксировали его и извлекли branchone, файл jenkins не был бы там, поскольку вы уже передали его мастеру. Следовательно, даже если вы сделаете git add ., ничего не будет добавлено в branchone. Если вы специально создадите файл jenkins снова в своем филиале, вы сможете добавить его в branchone и зафиксировать.

2.Я не уверен, как можно одновременно применять изменения к нескольким ветвям за один раз. Однако Вы можете сделать это индивидуально для каждой ветви следующими способами:

  • Добавить его вручную в каждую ветку и зафиксировать
  • Cherry выбрать коммит мастера, включая файл jenkins, и применить его ко всем веткам отдельно
  • Объединить / перебазировать все ветви по отдельности с мастером

3. В git нет понятия подветвлений. У вас просто есть ветка. Ветвь - это просто указатель на коммит. Когда вы говорите, что у вас есть branchone, branchone - указатель для фиксации с # abc123. Этот коммит может иметь собственное дерево коммитов перед ним.

Когда вы удаляете ветку, удаляется указатель на коммит, а не сам коммит. Теперь, возвращаясь к вашему вопросу, вы можете создать любое количество веток, начиная с ветки. Вы можете использовать команду git checkout -b newBranchName.

Если вы создаете новую ветку из branchone, то Branchone и newbranch будут указывать на один и тот же коммит, ранее указанный в branchone. Если вы добавите еще один коммит в новую ветвь, только указатель newbranch переместится вверх, чтобы указать на последний коммит, а указатель ветвления останется в исходном коммите.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...