В чем разница между возвратом в Git в Visual Studio 2019 и Android Studio 3.5.3? - PullRequest
2 голосов
/ 06 января 2020

Я могу использовать «Вернуть» в Andriod Studio, чтобы отказаться от всех изменений из моего последнего коммита в Android Studio 3.5.3, как вы можете видеть на Рисунке 1.

Я надеюсь сделать ту же операцию в Против 2019, чтобы отказаться от всех изменений, нажав «Вернуть», как в Android Studio. В Visual Studio 2019 также есть команда Revert, но я не знаю, какую операцию выполняет Revert в Vs 2009, вы можете увидеть, что я имею в виду в Image 2.

Если я применю некоторые модификации к этому проекту возникает ошибка при запуске Revert в Vs 2019 (см. изображение 3).

Если я не внесу никаких изменений в этот проект, новая запись с именем «Revert Test 3» будет создана, когда я запустить Revert в Vs 2019 (см. рисунок 4). Я не знаю, что означает «Отменить тест 3».

Изображение 1

enter image description here

Изображение 2 enter image description here

Изображение 3 enter image description here

Изображение 4 enter image description here

Ответы [ 3 ]

11 голосов
/ 06 января 2020

Это просто плохая терминология.

Android Студия "revert" не делает "Git Revert", она делает "Git Reset". Это отменяет ваши незафиксированные изменения с момента последнего коммита.

Visual Studio фактически выполняет возврат, то есть делает новый коммит, в котором изменения последнего коммита возвращаются.

См. Также В чем разница между Git Возврат, Оформление заказа и Сброс? .

1 голос
/ 15 января 2020

"Отменить" Тест 3 "" создаст коммит для вас, чтобы отменить все изменения, которые вы внесли в тест 3 фиксации.

Например, у вас есть коммит, в котором вы изменили publi c на private в некотором методе. Если вы посмотрите на изменение кода этого коммита, вы увидите, что вы изменили с publi c на private. Затем, когда вы делаете возврат, новый коммит (возврат «тест 3») будет иметь изменения кода, меняющие метод с Private на Publi c.

Это особенно хорошо, если вы хотите отменить коммит это не последний коммит.

Причина, по которой вы получаете ошибку на изображении 2, заключается в том, что вы не можете отменить коммит, если у вас есть неостановленные изменения в коде.

Я не являюсь Вы можете быть уверены в функции возврата в Android studio, но если она работает, как вы объясняете, то и Visual stuido revert, и Android studio Revert одинаковы. Различные инструменты расширения для git будут обрабатывать операции по-разному.

Android studio Commit 1 Commit 2

При возврате Commit 2 состояние кода будет таким же, как в Commit 1.

Visual studio Commit 1 Commit 2

Возврат Commit 2 создаст новый коммит "Revert" Commit 2 "", но состояние кода в последнем коммите будет таким же, как и в Commit 1.

0 голосов
/ 10 января 2020

Я столкнулся с той же проблемой, затем попытался смоделировать команду git revert, используя несколько других команд

git fetch origin <LastCommitId>

git reset --hard FETCH_HEAD

выполнить эти команды , тогда ваш vscode обязательно вернет код к предыдущей версии.

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