"Конфликты" означают "параллельные эволюции того же содержания". Таким образом, если это идет "все к черту" во время слияния, это означает, что у Вас есть крупные эволюции на том же наборе файлов.
причина, почему переоснова тогда лучше, чем слияние, состоит в том что:
я подтверждаю, что корректный рабочий процесс в этом случае (эволюции на едином наборе файлов) переоснова сначала, затем объединитесь .
Однако, который означает, что, если Вы продвигаете свое локальное ответвление (по резервной причине), что ответвление нельзя вытянуть (или по крайней мере использовать) кем-либо еще (так как история фиксации будет переписана последовательной переосновой).
По той теме (переоснова тогда объединяют рабочий процесс), упоминания barraponto в комментариях два интересных сообщения, оба от randyfay.com :
Используя эту технику, Ваша работа всегда идет на вершину общедоступного ответвления как патч, который актуален с текущим
HEAD
.
(подобная техника существует для базара )
git push --force
(вместо git pull --rebase
, например) Свойство - это один вид элемента. Другие могут быть конструкторами, методами, полями, вложенными типами, преобразованиями, индексаторами и т. Д. - конечно, в зависимости от языка / платформы. Часто точное значение терминологии зависит от контекста.
Чтобы дать определение, специфичное для C # , из спецификации C # 3.0, раздел 1.6.1:
В следующей таблице представлен обзор типов членов, которые может содержать класс.
(Строки для ...)
- Константы
- Поля
- Методы
- Свойства
- Индексаторы
- События
- Операторы
- Конструкторы
- Деструкторы
- Типы
Обратите внимание, что это члены класса . У разных «вещей» разные типы членов - например, в C # интерфейс не может иметь поле в качестве члена.
Свойства - это один из видов членов.
В C #, например, класс может иметь следующие члены:
Члены - это просто объекты или примитивные типы, принадлежащие классу.
Свойства дают вам больше возможностей, чем члены. Это похоже на упрощенный способ создания геттеров и сеттеров, позволяющий, например, создавать общедоступные геттеры и частные сеттеры; и поместите любую логику в том виде, в котором она будет читаться или записываться. Их можно использовать как способ раскрытия членов, что позволяет более легко изменить политику чтения и записи позже.
Это относится к C #. Не уверен, правда ли это для других языков.
Член (переменная) - это просто некоторая часть объекта. Свойство (я уточню это как «обычно» - я не уверен, что это технически ясное слово, имеющее однозначное значение на нескольких языках) является общедоступным аспектом объекта, например, через методы получения и установки.
Таким образом, хотя (почти всегда) свойство является доступной переменной-членом, у вас может быть свойство, которое на самом деле не является частью состояния объекта (не то чтобы это был хороший дизайн):
public class Foo {
public String getJunk()
{ return "Junk";}
public void setJunk(String ignore){;}
}
}
И свойства, и методы являются членами объекта. Свойство описывает некоторый аспект объекта, пока метод обращается к объекту-владельцу или использует его.
Пример в псевдокоде:
Object Ball
Property color(some Value)
Method bounce(subroutine describing the movement of the Ball)
Где мяч определен и имеет цвет (свойство), в то время как метод bounce - это подпрограмма, описывающая реакцию мяча на удар другого объекта.
Не все языки имеют свойства, т.е. в Java есть только поля, к которым должны обращаться геттеры и сеттеры.
Свойства - это способ раскрыть поля, где поля являются фактическими переменными. Например (C #):
class Foo {
private int field;
public int Property {
get { return field; }
set { field = value; }
}
}
Ни один из этих двух терминов не имеет какого-либо определенного значения в объектно-ориентированном программировании или объектно-ориентированном дизайне. Они также не имеют какого-либо определенного значения в подавляющем большинстве языков программирования.
Лишь очень небольшое количество языков программирования имеет понятие, называемое свойство или член , и еще меньше имеют оба.
Некоторыми примерами языков, в которых есть один из двух, являются C ++ (у которого есть члены), ECMAScript (у которого есть свойства) и C # (у которого есть оба). Однако эти термины не обязательно обозначают одни и те же концепции на разных языках программирования. Например, термин «член» означает примерно одно и то же в C ++ и C #, но термин «свойство» означает совершенно разные вещи в ECMAScript и C #. Фактически, термин "