«Наш» в Git относится к исходной рабочей ветке, которая имеет авторитетную / каноническую часть истории git.
«Их» относится к версии, которая содержит работу, чтобы быть rebased (изменения будут воспроизведены в текущей ветке).
Возможно, это может быть заменено на людей, которые не знают, что выполнение переустановки (например, git rebase
) на самом деле принимает ваш (т. е. их ), чтобы воспроизвести каноническую / основную историю, которая является нашей , потому что мы перестраиваем наши изменения как работу сторонних разработчиков
Документация для git-checkout
была дополнительно уточнена в Git> = 2.5.1 в соответствии с f303016
commit :
--ours
--theirs
При проверке путей из индекса проверьте этап # 2 ('ours') или # 3 ('theirs') для несвязанных путей.
Обратите внимание, что во время
git rebase
иgit pull --rebase
, 'ours' и 'theirs' могут поменяться местами;--ours
дает версию из ветви, на которую переупорядочиваются изменения, а--theirs
дает версию из ветки, которая хранит вашу работу, которая перестраивается.Это связано с тем, что
rebase
используется в рабочий процесс, который рассматривает историю на удаленном компьютере как общую каноническую, и рассматривает работу, проделанную в ветви, которую вы перестраиваете, в качестве сторонней работы, которая должна быть интегрирована, и вы временно принимаете на себя роль хранителя канонической истории во время rebase. Как хранитель канонической истории, вам нужно просмотреть историю с удаленного какours
(т. Е. «Наша общая каноническая история»), а то, что вы делали на своей боковой ветви какtheirs
(т. Е. «Работа одного автораДля
git-merge
это объясняется следующим образом:ours
Этот параметр заставляет конфликтующие куски быть автоматически разрешенными, предпочитая нашу версию. Изменения от другого дерева, которые не конфликтуют с нашей стороной, отражаются на результате слияния. Для двоичного файла все содержимое взято с нашей стороны.
Это не следует путать с нашей стратегией слияния, которая даже не смотрит на то, что содержит другое дерево. Он отбрасывает все, что делал другое дерево, заявляя, что наша история содержит все, что в нем было.
их
Это противоположность нашей.
Далее, здесь объясняется, как их использовать:
Механизм слияния (команды
git merge
иgit pull
) позволяет выбирать стратегии слияния бэкэнда с помощью опции-s
. Некоторые стратегии также могут принимать свои собственные параметры, которые могут быть переданы с помощью аргументов-X
вgit merge
и / илиgit pull
.Поэтому иногда это может запутать , например:
git pull origin master
, где-Xours
является нашей локальной,-Xtheirs
является их (удаленной) ветвьюgit pull origin master -r
, где-Xours
является их (удаленный),-Xtheirs
является нашимИтак, второй пример противоположный первому, потому что мы перезагружаем нашу ветку поверх удаленного, поэтому наша отправная точка
Аналогично для стратегий
git merge
(-X ours
и-X theirs
).
Я придумал способ, хотя и немного обманщик.
Когда я создавал ресурс в схеме AppSync, есть раскрывающийся список «дополнительных индексов», и если я сделаю начальный индекс по идентификатору, а затем второй индекс «имя», он создаст запрос с определителем для вы. В моем случае запрос
queryIngredientsByNameIndex(name: String!, first: Int, after: String): IngredientConnection
с резольвером
{
"version": "2017-02-28",
"operation": "Query",
"query": {
"expression": "#name = :name",
"expressionNames": {
"#name": "name",
},
"expressionValues": {
":name": $util.dynamodb.toDynamoDBJson($ctx.args.name),
},
},
"index": "name-index",
"limit": $util.defaultIfNull($ctx.args.first, 20),
"nextToken": $util.toJson($util.defaultIfNullOrEmpty($ctx.args.after, null)),
"scanIndexForward": true,
"select": "ALL_ATTRIBUTES",
}