.row {
display: flex;
flex-direction: column;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
</head>
<body>
<div class="row " >
<div class="col-md-7">
<p class="paragrafos">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Consequat mauris nunc congue nisi vitae suscipit. Egestas dui id ornare arcu odio ut sem nulla. Vulputate enim nulla aliquet.
</p>
</div>
<div class="col-md-5"> <img id="img_1" src="app/1.jpg"></div>
<div class="col-md-5"> <img id="img_2" src="app/2.jpeg"></div>
</div>
</body>
</html>
Мы используем следующее для предотвращения случайных фиксаций неизвестного автора (например, при выполнении быстрой фиксации с сервера клиента или чего-то). Это должно быть помещено в .git/hooks/pre-receive и сделано исполняемым файлом.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import subprocess
from itertools import islice, izip
import sys
old, new, branch = sys.stdin.read().split()
authors = {
"John Doe": "john.doe@example.com"
}
proc = subprocess.Popen(["git", "rev-list", "--pretty=format:%an%n%ae%n", "%s..%s" % (old, new)], stdout=subprocess.PIPE)
data = [line.strip() for line in proc.stdout.readlines() if line.strip()]
def print_error(commit, author, email, message):
print "*" * 80
print "ERROR: Unknown Author!"
print "-" * 80
proc = subprocess.Popen(["git", "rev-list", "--max-count=1", "--pretty=short", commit], stdout=subprocess.PIPE)
print proc.stdout.read().strip()
print "*" * 80
raise SystemExit(1)
for commit, author, email in izip(islice(data, 0, None, 3), islice(data, 1, None, 3), islice(data, 2, None, 3)):
_, commit_hash = commit.split()
if not author in authors:
print_error(commit_hash, author, email, "Unknown Author")
elif authors[author] != email:
print_error(commit_hash, author, email, "Unknown Email")
Используйте ПРЕДПОЛУЧИТЬ рычаг (см. githooks (5) для деталей). Там Вы получаете старый sha и новый sha для каждого касательно обновленного. И может легко перечислить изменения и проверить, что у них есть надлежащий автор (список версии мерзавца - pretty=format: "% %ae%n" oldsha.. newsha).
Вот сценарий в качестве примера:
#!/bin/bash
#
# This pre-receive hooks checks that all new commit objects
# have authors and emails with matching entries in the files
# valid-emails.txt and valid-names.txt respectively.
#
# The valid-{emails,names}.txt files should contain one pattern per
# line, e.g:
#
# ^.*@0x63.nu$
# ^allowed@example.com$
#
# To just ensure names are just letters the following pattern
# could be used in valid-names.txt:
# ^[a-zA-Z ]*$
#
NOREV=0000000000000000000000000000000000000000
while read oldsha newsha refname ; do
# deleting is always safe
if [[ $newsha == $NOREV ]]; then
continue
fi
# make log argument be "..$newsha" when creating new branch
if [[ $oldsha == $NOREV ]]; then
revs=$newsha
else
revs=$oldsha..$newsha
fi
echo $revs
git log --pretty=format:"%h %ae %an%n" $revs | while read sha email name; do
if [[ ! $sha ]]; then
continue
fi
grep -q -f valid-emails.txt <<<"$email" || {
echo "Email address '$email' in commit $sha not registred when updating $refname"
exit 1
}
grep -q -f valid-names.txt <<<"$name" || {
echo "Name '$name' in commit $sha not registred when updating $refname"
exit 1
}
done
done
То, что Вы могли сделать, создают набор различных учетных записей пользователей, помещают их всех в ту же группу и дают тот доступ для записи группы к репозиторию. Тогда необходимо быть в состоянии записать простой входящий рычаг, который проверяет, совпадает ли пользователь, который выполняет сценарий, с пользователем в changeset.
я никогда не делал его, потому что я доверяю парням что контрольный код в мои репозитории, но если существует путь, это - вероятно, то, объясненное выше.
мерзавец не был первоначально разработан для работы как svn с большим центральным репозиторием. Возможно, можно ли вытянуть от людей по мере необходимости и отказаться ли вытягивать, если им установили их автора неточно?
Если Вы хотите управлять правами интернет-мерзавцу направления repo, я предлагаю, чтобы Вы посмотрели Gitosis вместо того, чтобы сделать на скорую руку Ваше собственное. Идентификационные данные обеспечиваются частными/с открытым ключом парами.
Read я жалкий это здесь , также.