Как действительно возвращаются локальное ответвление назад к тому, как это находится в GitHub?

Я сделал немного разработки против неправильного ответвления в моем локальном репозитории. Я сделал a git branch без следующего выполнения a git checkout. Команды выглядят примерно так:

#On branch development
git branch release-v0.2.0b
# changes and several commits
git push origin release-v0.2.0b

И именно тогда я понял, что работал над неправильным ответвлением. Мой GitHub repo находится в надлежащем состоянии, но мой локальный repo не. Я объединил изменения от разработки в выпуск-v0.2.0b, но я хотел бы сбросить разработку назад к способу, которым это находится в моем GitHub repo. Что лучший способ состоит в том, чтобы пойти об этом?

18
задан Jason Baker 27 January 2010 в 13:41
поделиться

3 ответа

- 4548545-

Просто чтобы убедиться, что я понимаю состояние вещей: вы создали филиал релиза, но не проверяли его, поэтому ваши комбиниты находятся на ветке разработки в вашем локальном хранилище. Вы сказали, что объединили изменения в ветку Release-V0.2.0b.

Если это так, и на ветке разработки нет других коммитов, вы должны сохранить, просто удалите локальную копию филиала разработки и снова проверьте ее от происхождения.

Во-первых, проверьте, какие у вас есть ветви, а какие вы находитесь на:

git branch -av

, затем выключите от ветви разработки, чтобы вы могли удалить его:

git checkout origin/development
git branch -D development

, который на самом деле оставляет вас без ветки, но вы вернетесь На ветке, когда вы снова проверяете его из происхождения:

git checkout origin/development -b development

Я предлагаю проверить происхождение / разработку, чтобы избежать ненужного отключения файлов в вашем снимок.

15
ответ дан 30 November 2019 в 05:41
поделиться

Можно написать расширитель, чтобы найти любой элемент управления на странице с помощью рекурсии. Это может быть в каком-то классе Util/Helper.

 public static Control FindAnyControl(this Page page, string controlId)
    {
        return FindControlRecursive(controlId, page.Form);
    }

    public static Control FindAnyControl(this UserControl control, string controlId)
    {
        return FindControlRecursive(controlId, control);
    }

    public static Control FindControlRecursive(string controlId, Control parent)
    {
        foreach (Control control in parent.Controls)
        {
            Control result = FindControlRecursive(controlId, control);
            if (result != null)
            {
                return result;
            }
        }
        return parent.FindControl(controlId);
    }
-121--1382796-

Для моего приложения я использовал действие с темой Диалог . Можно объявить тему в файле манифеста:

<activity android:name="PopupActivity"
  android:launchMode="singleInstance" android:excludeFromRecents="true"
  android:taskAffinity="" android:theme="@android:style/Theme.Dialog" />
  • используйте launcheMode = «singleInstance» и taskAffinity = «» , если всплывающее окно отсоединено от основного приложения. В противном случае пользователь может нажать кнопку «Назад» и вернуться к предыдущему действию приложения.
  • excludeStartRecents = «true» , чтобы избежать появления всплывающего окна в последних задачах (долго нажимайте клавишу home)
  • theme = «@ android: style/Theme.Dialog» , чтобы задать тему диалога.
-121--2293324-

Вернитесь в локальную ветвь выпуска, в которую требуется внести изменения.

git checkout local-branch-that-refers-public-v0.2.0b
git pull origin release-v0.2.0b

Затем сбросьте указатель ветви локальной ветви, в которой вы зафиксировали предыдущую фиксацию, к которой вы хотите вернуться.

git checkout release-v0.2.0b
git reset HEAD^
2
ответ дан 30 November 2019 в 05:41
поделиться

Использование Git Reset --hard

-3
ответ дан 30 November 2019 в 05:41
поделиться
Другие вопросы по тегам:

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