Сбросить текущее время, сделать его скрытым входом. На стороне сервера проверьте хэш каждого представления формы; если вы уже получили этот хеш, то у вас есть повторная подача.
edit: полагаться на javascript - это не очень хорошая идея, поэтому вы все можете поддерживать эти идеи, но некоторые пользователи не будут иметь он включен. Правильный ответ - не доверять пользовательскому вводу на стороне сервера.
merge
используется для объединения двух (или более) веток.
небольшой пример:
# on branch A:
# create new branch B
$ git checkout -b B
# hack hack
$ git commit -am "commit on branch B"
# create new branch C from A
$ git checkout -b C A
# hack hack
$ git commit -am "commit on branch C"
# go back to branch A
$ git checkout A
# hack hack
$ git commit -am "commit on branch A"
итак, сейчас есть три отдельные ветки (а именно A B и C) с разными главами
чтобы вернуть изменения из B и C обратно в A, вычеркните A (уже сделано в этом примере) и затем используйте команду merge:
# create an octopus merge
$ git merge B C
ваша история будет выглядеть примерно так:
…-o-o-x-------A
|\ /|
| B---/ |
\ /
C---/
если вы хотите объединить через границы репозитория/компьютера, посмотрите на команду git pull
, например. например, с компьютера с веткой A (этот пример создаст два новых коммита):
# pull branch B
$ git pull ssh://host/… B
# pull branch C
$ git pull ssh://host/… C