Как запретить git локально добавлять ошибочный текст в файлы классов? - PullRequest
0 голосов
/ 29 мая 2018

Я не знаю, как сформулировать вопрос, но в основном всякий раз, когда я вносю изменения в проект, например, в файл класса, git выдает ошибочный текст.Вот фрагмент кода из проекта, над которым я работаю в Java.

public class PlayerList {
   ...
   <<<<<<< HEAD
    public static String getNamesByIndex(int index) {
        return playerNameList.get(index);
    }

=======
>>>>>>> 0bfheisi8d88wdjksiijfils8879s
   ...
}

Как мне предотвратить добавление ошибочным текстом в git?Очевидно, что из методов, которые я не изменил, ошибочный текст не был добавлен.

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Как сказал наш комментатор, это связано с конфликтом git, давайте посмотрим ближе:

<<<<<<< HEAD
    public static String getNamesByIndex(int index) {
        return playerNameList.get(index);
    }

=======
>>>>>>> 0bfheisi8d88wdjksiijfils8879s

======= - это разделитель.Все, что находится выше, - это то, что находится в вашем текущем каталоге, а все, что ниже, находится в удаленном, коммит 0bfheisi.

Это может быть автоматически разрешаемый конфликт.Если вы единственный, кто работает над проектом, и используете его только на одном компьютере, это не должно отображаться, если вы используете git правильно.Если вы работаете над проектом с другими коллегами, то если вы оба внесете изменения в одну и ту же область (а вы сначала не pull), то это произойдет, потому что git требует, чтобы вы выбрали, какая версия является правильной.

Однако вам никогда не придется

входить и вручную удалять ошибочный текст впоследствии.

Что вам следует сделать, так этоследующее:

  • Подготовить и зафиксировать локальные изменения.
  • Извлечь удаленную ветвь (может вызвать автоматическое слияние)
  • Если возникнет конфликт, git будет скажу вам на данный момент.Если это так, используйте git mergetool, чтобы открыть указанный инструмент разрешения конфликтов.Я использую Beyond Compare 3, так как он является отличным инструментом графического интерфейса для окон, но существует множество вариантов.
  • Теперь, когда конфликты разрешены (не вручную, а с помощью mergetool), отправьте изменения в удаленную ветку.

Я упомянул об этом выше, но еще раз подчеркну здесь: конфликты не должны происходить часто, даже если вы работаете с несколькими людьми и меняете одни и те же области кода - до тех пор, пока вычасто тяните изменения перед тем, как начинать новое изменение самостоятельно, а также совершать и часто нажимать.

Счастливого выбора.

0 голосов
/ 29 мая 2018

Текст, который вы видите, произошел из-за конфликта git merge.Когда вы пытаетесь объединить ветку с текущей, если обе ветви изменили одну и ту же строку, git не знает, какую строку выбрать в качестве нового изменения.Это решается пользователем, выполняющим ручное слияние, которое состоит в том, что пользователь выбирает правильное изменение.Когда git добавляет этот конфликт слияния, ваша ветвь входит в состояние слияния, поэтому вы не сможете вытолкнуть этот текст в удаленную ветвь, пока не решите нижележащий конфликт или не подтвердите его и не отправите его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...