Security Warning: этот ответ не соответствует лучшим рекомендациям по безопасности. Эвакуация неадекватна для предотвращения SQL-инъекции , вместо этого используйте подготовленные операторы . Используйте стратегию, изложенную ниже, на свой страх и риск. (Кроме того,
mysql_real_escape_string()
был удален в PHP 7.)Вы могли бы сделать что-то основное:
$safe_variable = mysql_real_escape_string($_POST["user-input"]); mysql_query("INSERT INTO table (column) VALUES ('" . $safe_variable . "')");
Это не решит каждую проблему, но это очень хороший ступень. Я оставил очевидные элементы, такие как проверка существования переменной, числа (числа, буквы и т. Д.).
Вы попробовали:
git rebase -i A
возможно запуститься как этот, если Вы продолжаете edit
, а не squash
:
edit e97a17b B
pick asd314f C
затем работает
git reset --soft HEAD^
git commit --amend
git rebase --continue
Сделанный.
A
была начальная фиксация, но теперь Вы хотите B
быть начальной фиксацией. фиксации мерзавца являются целыми деревьями, не diffs, даже если они обычно описываются и просматриваются с точки зрения разности, которую они представляют.
Этот рецепт работает, даже если существует несколько фиксаций между A и B, и B и C.
# Go back to the last commit that we want
# to form the initial commit (detach HEAD)
git checkout <sha1_for_B>
# reset the branch pointer to the initial commit,
# but leaving the index and working tree intact.
git reset --soft <sha1_for_A>
# amend the initial tree using the tree from 'B'
git commit --amend
# temporarily tag this new initial commit
# (or you could remember the new commit sha1 manually)
git tag tmp
# go back to the original branch (assume master for this example)
git checkout master
# Replay all the commits after B onto the new initial commit
git rebase --onto tmp <sha1_for_B>
# remove the temporary tag
git tag -d tmp
В случае интерактивной переосновы необходимо сделать это перед так, чтобы список был:
pick A
pick B
pick C
для становления:
pick A
squash B
pick C
, Если A является начальной фиксацией, у Вас должна быть различная начальная фиксация прежде A. Мерзавец думает в различиях, это будет работать над различием между (A и B) и (B и C). Следовательно сквош, не работающий в Вашем примере.
В связанном вопросе мне удалось придумать другой подход к потребности сплющивания против первой фиксации, которая должна, ну, в общем, сделать это вторым.
, Если Вам интересно: мерзавец: как вставить фиксацию как первое, сместив все другие?
Необходимо выполнить немного волшебства командной строки.
git checkout -b a A
git checkout B <files>
git commit --amend
git checkout master
git rebase a
, Который должен оставить Вас с ответвлением, которое имеет AB и C как фиксации.