Git поврежденные файлы <


У меня есть это в моих файлах после некоторых проблем с VS2012 git-plugin:

using Microsoft.VisualStudio.TestTools.UnitTesting;
<<<<<<< HEAD
using NHibernate;
=======
>>>>>>> dd2c3d7dfe81074e7c5a73f8e4ca2584481a74f1

namespace Controll.Hosting.Tests
{
[TestClass]
public class TestBase
{
<<<<<<< HEAD
    protected ISessionFactory SessionFactory;

    [TestInitialize]
    public void InitializeTestBase()
    {
            SessionFactory = NHibernateHelper.GetSessionFactoryForMockedData();
=======
    [ClassInitialize]
    public void InitializeTest()
    {
        Console.WriteLine("Settings NHibernateHelper.IsInTesting -> True");
        NHibernateHelper.IsInTesting = true;
>>>>>>> dd2c3d7dfe81074e7c5a73f8e4ca2584481a74f1
        }
    }
}

Как я могу сбросить свои файлы?

3 8

3 ответа:

То, что у вас было, было не неприятностями, а конфликтами. Это происходит, когда файлы изменяются двумя разными людьми в одном и том же месте (вы оба добавляете/удаляете/изменяете вещи в одних и тех же строках).

Вы можете просто обновить файлы вручную, решив сохранить все между <<<<<<< HEAD и =======, или между ======= и >>>>>>>, или некоторую смесь из них. Как только Вы разрешите все ваши конфликты, Вам просто нужно зафиксировать ваши изменения.

Отбросить локальные изменения в файле, вы можете сделать

git checkout yourfile

Или для всех файлов, использующих

git checkout -- .

Вы также можете решить для каждого файла, хотите ли вы сохранить свою версию или версию репозитория с помощью

git checkout --ours yourfile # Your version
git checkout --theirs yourfile # Repository version

На ваш вопрос лучше всего отвечают уже алестанцы. Все еще для легкого поиска:

Объяснение этих маркеров конфликта >>>>> ... <<<<< можно найти в этот вопрос.

Есть больше информации о слиянии в этом Q.

И git help merge также весьма явно полезны:

КАК РАЗРЕШИТЬ КОНФЛИКТЫ

Увидев конфликт, вы можете сделать две вещи:

* решите не делать этого. поглощать. Единственные зачистки у вас необходимо сбросить файл индекса в голова совершает обратный ход 2. и убирать рабочие места дерево изменений, внесенных 2. и 3.; git merge --abort может быть использован для этого.

· разрешите конфликты. Git будет отмечать конфликты в рабочее дерево. Отредактируйте файлы в форму и git add их в индекс. Воспользуйся git commit чтобы скрепить сделку.

Вы можете проработать конфликт с помощью нескольких инструментов:

* используйте mergetool. git mergetool для запуска графического mergetool который будет работать с вами через слияние.

· посмотрите на различия. git diff покажет трехстороннюю разницу, выделяя изменения от обеих головок и версии MERGE_HEAD.

* Посмотрите на различия в каждой ветви. git log --merge -p <path> сначала покажет диффы для головной версии а потом MERGE_HEAD версия. Посмотрите на оригиналы. git show :1:filename показывает общий предок, git show :2:filename показывает головную версию, а git show :3:filename показывает MERGE_HEAD версия.

Использование SourceTree для git для управления моими сборками с установленным Kdiff помогло мне решить 99% этих проблем действительно эффективно.

Мне остается только попытаться удалить их из моего файла SOU в .Net, обычно замена файла SOU на более старую версию решает эту проблему.