Объединить первые две фиксации репозитория Мерзавца?

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 . "')");

Это не решит каждую проблему, но это очень хороший ступень. Я оставил очевидные элементы, такие как проверка существования переменной, числа (числа, буквы и т. Д.).

194
задан Christian 29 July 2014 в 06:33
поделиться

5 ответов

Вы попробовали:

git rebase -i A

возможно запуститься как этот, если Вы продолжаете edit, а не squash:

edit e97a17b B
pick asd314f C

затем работает

git reset --soft HEAD^
git commit --amend
git rebase --continue

Сделанный.

126
ответ дан David Lichteblau 23 November 2019 в 05:25
поделиться

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
64
ответ дан CB Bailey 23 November 2019 в 05:25
поделиться

В случае интерактивной переосновы необходимо сделать это перед так, чтобы список был:

pick A
pick B
pick C

для становления:

pick A
squash B
pick C

, Если A является начальной фиксацией, у Вас должна быть различная начальная фиксация прежде A. Мерзавец думает в различиях, это будет работать над различием между (A и B) и (B и C). Следовательно сквош, не работающий в Вашем примере.

10
ответ дан Loki 23 November 2019 в 05:25
поделиться

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

, Если Вам интересно: мерзавец: как вставить фиксацию как первое, сместив все другие?

1
ответ дан Community 23 November 2019 в 05:25
поделиться

Необходимо выполнить немного волшебства командной строки.

git checkout -b a A
git checkout B <files>
git commit --amend
git checkout master
git rebase a

, Который должен оставить Вас с ответвлением, которое имеет AB и C как фиксации.

-1
ответ дан Bombe 23 November 2019 в 05:25
поделиться
Другие вопросы по тегам:

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