Git вытащить определенную ветку от GitHub

В Python 3.x просто используйте get(attr_name) для вашего объекта тега, который вы используете с помощью find_all:

xmlData = None

with open('conf//test1.xml', 'r') as xmlFile:
    xmlData = xmlFile.read()

xmlDecoded = xmlData

xmlSoup = BeautifulSoup(xmlData, 'html.parser')

repElemList = xmlSoup.find_all('repeatingelement')

for repElem in repElemList:
    print("Processing repElem...")
    repElemID = repElem.get('id')
    repElemName = repElem.get('name')

    print("Attribute id = %s" % repElemID)
    print("Attribute name = %s" % repElemName)

в отношении файла XML conf//test1.xml, который выглядит так:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
    <singleElement>
        <subElementX>XYZ</subElementX>
    </singleElement>
    <repeatingElement id="11" name="Joe"/>
    <repeatingElement id="12" name="Mary"/>
</root>

печатает:

Processing repElem...
Attribute id = 11
Attribute name = Joe
Processing repElem...
Attribute id = 12
Attribute name = Mary
539
задан user664833 9 October 2018 в 18:31
поделиться

4 ответа

Но я получаю сообщение об ошибке "! [отклонено] "и что-то о" без перемотки вперед "

Это потому, что Git не может объединить изменения из веток в ваш текущий мастер. Допустим, вы проверили ветку master и хотите выполнить слияние в удаленной ветке other-branch . Когда вы делаете это:

$ git pull origin other-branch

Git в основном делает следующее:

$ git fetch origin other-branch && git merge other-branch

То есть, pull - это просто fetch , за которым следует слияние . Однако, когда pull -ing, Git будет только объединить other-branch , если он сможет выполнить быстрое слияние вперед . Слияние с перемоткой вперед - это слияние, при котором глава ветви, в которую вы пытаетесь слиться, является прямым потомком главы ветви, которую вы хотите объединить. Например, если у вас есть это дерево истории, то слияние other-branch приведет к слиянию с быстрой перемоткой вперед:

O-O-O-O-O-O
^         ^
master    other-branch

Однако это не будет слияние с перемоткой вперед :

    v master
O-O-O
\
 \-O-O-O-O
         ^ other-branch

Чтобы решить вашу проблему, сначала выберите удаленную ветку:

$ git fetch origin other-branch

Затем слейте ее с вашей текущей веткой (я предполагаю, что это master ) и исправьте любое слияние конфликты:

$ git merge origin/other-branch
# Fix merge conflicts, if they occur
# Add merge conflict fixes
$ git commit    # And commit the merge!
679
ответ дан 22 November 2019 в 22:11
поделиться

Просто явно отслеживайте удаленные ветки и простой git pull будет делать именно то, что вы хотите:

git branch -f remote_branch_name origin/remote_branch_name
git checkout remote_branch_name

Последняя является локальной операцией.

Или даже больше подходит для документации GitHub по разветвлению :

git branch -f new_local_branch_name upstream/remote_branch_name
292
ответ дан 22 November 2019 в 22:11
поделиться

Вы можете перетащить ветку в ветку с помощью следующих команд.

git pull {repo} {remotebranchname}:{localbranchname}

git pull origin xyz:xyz

Когда вы находитесь в главной ветке вы также можете сначала проверить ветку, например:

git checkout -b xyz

Это создает новую ветку, «xyz», от мастера и напрямую проверяет ее.

Затем вы делаете:

git pull origin xyz

Это вытягивает новую ветку в местное отделение xyz .

115
ответ дан 22 November 2019 в 22:11
поделиться

Я не уверен, что полностью понимаю проблему, но извлечение существующей ветки выполняется следующим образом (по крайней мере, у меня это работает :)

git pull origin BRANCH

Предполагается, что ваша локальная ветка создана вне происхождения / ФИЛИАЛ.

31
ответ дан 22 November 2019 в 22:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: