Как опустить некоторый код при выполнении битбакетного слияния

взгляните на этот пример

class Person
{
    public int ID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Phone { get; set; }
}

class Pet
{
    public string Name { get; set; }
    public Person Owner { get; set; }
}

public static void LeftOuterJoinExample()
{
    Person magnus = new Person {ID = 1, FirstName = "Magnus", LastName = "Hedlund"};
    Person terry = new Person {ID = 2, FirstName = "Terry", LastName = "Adams"};
    Person charlotte = new Person {ID = 3, FirstName = "Charlotte", LastName = "Weiss"};
    Person arlene = new Person {ID = 4, FirstName = "Arlene", LastName = "Huff"};

    Pet barley = new Pet {Name = "Barley", Owner = terry};
    Pet boots = new Pet {Name = "Boots", Owner = terry};
    Pet whiskers = new Pet {Name = "Whiskers", Owner = charlotte};
    Pet bluemoon = new Pet {Name = "Blue Moon", Owner = terry};
    Pet daisy = new Pet {Name = "Daisy", Owner = magnus};

    // Create two lists.
    List people = new List {magnus, terry, charlotte, arlene};
    List pets = new List {barley, boots, whiskers, bluemoon, daisy};

    var query = from person in people
        where person.ID == 4
        join pet in pets on person equals pet.Owner  into personpets
        from petOrNull in personpets.DefaultIfEmpty()
        select new { Person=person, Pet = petOrNull}; 



    foreach (var v in query )
    {
        Console.WriteLine("{0,-15}{1}", v.Person.FirstName + ":", (v.Pet == null ? "Does not Exist" : v.Pet.Name));
    }
}

// This code produces the following output:
//
// Magnus:        Daisy
// Terry:         Barley
// Terry:         Boots
// Terry:         Blue Moon
// Charlotte:     Whiskers
// Arlene:

, теперь вы можете include elements from the left, даже если этот элемент has no matches in the right, в нашем случае мы восстановили Arlene, даже если он не имеет соответствия в правой

здесь ссылка

Практическое руководство. Выполнение левых внешних соединений (руководство по программированию на C #)

1
задан Muhammad Hannan 13 July 2018 в 12:52
поделиться

2 ответа

Если вам нужно опустить какой-то код (конкретные коммиты) при слиянии, вы можете использовать git cherry-pick вместо git merge, но вишневый выбор не является хорошей практикой на все время.

Если вам нужно отделить свой код интерфейса и внутренний код, я бы рекомендовал использовать два репозитория git или использовать функцию git subodule .

0
ответ дан Muhammad Hannan 17 August 2018 в 12:49
поделиться
  • 1
    Любой пример о том, как управлять этим, когда мы работаем или играем как по отдельности. – Muhammad Hannan 15 July 2018 в 03:28
  • 2
    Являются ли интерфейсные интерфейсы (UI) и back-end развязаны. И вы используете любой инструмент управления пакетами (например: npm, web-pack, maven, ..) Не могли бы вы поделиться со мной структурой кода вашего проекта? – Thushan 16 July 2018 в 03:43
  • 3
    В основном мы разрабатываем приложение Mobile version (iOS / Swift, Android / Java), а также веб-версию в React.js. Нам нравится разделять оболочку / UI-версию, поэтому мы всегда можем улучшить интерфейс пользователя отдельно (в отдельной ветке), поэтому команда разработчиков может принять его и внести в него какую-либо интеграцию. – Muhammad Hannan 16 July 2018 в 03:52
  • 4
    Насколько я понял, вам просто нужно оставить изменения, связанные с пользовательским интерфейсом, отдельно от других изменений кода в вашем мобильном / веб-приложении. Таким образом, идеальным подходом будет сохранение изменений пользовательского интерфейса в отдельной ветке, и после того, как вам потребуется интегрировать новые изменения пользовательского интерфейса, вы можете использовать git cherry-pick. Когда вы забираете вишню, если есть несколько коммитов, вы должны сначала выбрать старшую фиксацию. «Хранить отдельные репозитории». подход был бы лучше Если ваша структура кода, как показано ниже. * API (back-end code) * Приложение для мобильных приложений (iOS, Android) * Webb – Thushan 16 July 2018 в 08:27

[Это ответ на этот вопрос. Возможно, кто-то обратится к вашему вопросу напрямую]

Я вижу, что (сохранение разного кода в разных ветвях) является неправильным использованием ветвления. Вы можете обрабатывать это как два разных репозитория или как monorepo обоих проектов. Я бы предложил посмотреть различные ссылки на monorepos, а также на популярные стратегии рабочего процесса git.

0
ответ дан Rich Duncan 17 August 2018 в 12:49
поделиться
  • 1
    Любой пример о том, как управлять этим, когда мы работаем или играем как по отдельности. – Muhammad Hannan 15 July 2018 в 03:28
Другие вопросы по тегам:

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