Я сделал немного разработки против неправильного ответвления в моем локальном репозитории. Я сделал 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. Что лучший способ состоит в том, чтобы пойти об этом?
Просто чтобы убедиться, что я понимаю состояние вещей: вы создали филиал релиза, но не проверяли его, поэтому ваши комбиниты находятся на ветке разработки в вашем локальном хранилище. Вы сказали, что объединили изменения в ветку Release-V0.2.0b.
Если это так, и на ветке разработки нет других коммитов, вы должны сохранить, просто удалите локальную копию филиала разработки и снова проверьте ее от происхождения.
Во-первых, проверьте, какие у вас есть ветви, а какие вы находитесь на:
git branch -av
, затем выключите от ветви разработки, чтобы вы могли удалить его:
git checkout origin/development
git branch -D development
, который на самом деле оставляет вас без ветки, но вы вернетесь На ветке, когда вы снова проверяете его из происхождения:
git checkout origin/development -b development
Я предлагаю проверить происхождение / разработку, чтобы избежать ненужного отключения файлов в вашем снимок.
Можно написать расширитель, чтобы найти любой элемент управления на странице с помощью рекурсии. Это может быть в каком-то классе 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»
, чтобы задать тему диалога. Вернитесь в локальную ветвь выпуска, в которую требуется внести изменения.
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^