Visual Studio에서 푸시되지 않은 나가는 커밋을 제거하는 방법은 무엇입니까? 2017의 새 분기에서

실수로 Visual Studio 2017의 새 분기에서 단계적 변경 사항을 로컬 리포지토리에 푸시했습니다. 원격 저장소로 푸시되지 않았습니다. 나는 그것을 제거하고 싶지만 이것을 할 방법을 찾을 수 없습니다. 로컬 마스터 브랜치에서 새 브랜치로 리베이스했습니다. 그런 다음 새 지점을 삭제했습니다. 그러나 Outgoing Commits는 여전히 그것을 보여줍니다. 삭제하거나 되 돌리는 방법은 무엇입니까?



답변

분기 타일의 팀 탐색기에서 기록 탭을 엽니 다 (분기를 마우스 오른쪽 단추로 클릭). 그런 다음 기록에서 푸시하지 않을 커밋 앞의 커밋을 마우스 오른쪽 단추로 클릭하고 재설정을 선택합니다. 그러면 분기가 해당 커밋으로 다시 이동하고 추가 커밋을 제거해야합니다. 주어진 커밋 이전에 재설정하려면 부모를 선택해야합니다.

변경 사항으로 수행하려는 작업에 따라 hard를 선택 하면 로컬에서 제거됩니다. 또는 소프트 를 선택 하여 커밋을 실행 취소하지만 폐기 된 커밋의 변경 사항과 함께 작업 디렉토리를 남겨 둡니다.


답변

이 문제를 해결하는 데 도움이되는 단 하나의 좋은 답변을 찾을 수 없습니다.

실수로 변경 사항을 커밋 한 브랜치의 이름이 master. 네 가지 간단한 단계를 따르는 것은 나에게 세상처럼 증명되었습니다.

  1. 지점으로 이동
  2. 이외의 분기를 선택하거나 생성하십시오. master
  3. 의 로컬 / 작업 공간 버전 삭제 master
  4. 에서 마스터로 전환 remotes/origin

답변

가장 최근의 변경 사항을 서버에 푸시했다고 가정합니다.

  1. Visual Studio를 닫고 프로젝트의 로컬 복사본을 삭제합니다.
  2. Visual Studio를 열고 팀 탐색기 탭으로 이동하여 연결 관리를 클릭합니다. (플러그)
  3. 연결 관리, 프로젝트에 연결 옆에있는 드롭 다운 화살표를 클릭합니다.
  4. 프로젝트를 선택하고 로컬 경로를 확인한 다음 연결 버튼을 클릭합니다.

프로젝트를 다시 열면 커밋과 변경 사항이 모두 0이어야합니다.


답변

TL; DR :

git reset --soft HEAD~.sln 폴더의 cmd에서 사용


나는 오늘 그것을 직면하고 있었고 그런 VSCode것을 암시하는 압도적 인 반면 큰 형 Visual Studio은 그렇지 않습니다.

대부분의 답변이 도움이되었습니다. 이전에 만든 커밋이 더 많으면 모두 잃는 것이 답답할 것입니다. 더욱이 VSCode0.5 초 만에 그렇게한다면 복잡하지 않아야합니다.

jessehouwing의 답변 만이 간단한 해결책에 가장 가깝습니다.


원하지 않는 커밋이 마지막으로 발생했다고 가정하면 다음과 같이 해결했습니다.

Team Explorer->로 이동하십시오 Sync. 거기에서 모든 커밋을 볼 수 있습니다. Actions드롭 다운을 누르고Open Command Prompt

cmd 창이 표시되면 git reset --soft HEAD~. 여러 바람직하지 않은 커밋이있는 경우, 이후에 금액을 추가 ~(예 git reset --soft HEAD~5)


(을 사용하지 않는 경우 git구어체 사용법을 확인하십시오).

도움이 되길 바라며, 다음 버전에서 VS 팀이 내장 기능을 추가하기를 바랍니다.


답변

팀 탐색기 탭으로 이동 한 다음 분기를 클릭합니다. 지점에서 원격 / 원산지에서 지점을 선택합니다. 예를 들어, 마스터 브랜치를 재설정하려고합니다. remotes / origin의 마스터 분기를 마우스 오른쪽 버튼으로 클릭 한 다음 재설정을 선택한 다음 변경 사항 삭제를 클릭합니다. 그러면 로컬 브랜치가 재설정되고 로컬로 커밋 된 모든 변경 사항이 제거됩니다.


답변

로컬 마스터 브랜치를 원격 / 원본 마스터 브랜치로 리베이스하고 프로세스의 모든 충돌을 해결하십시오.


답변

여기에는 나가는 커밋을 모두 버리거나 특정 커밋을 취소하는 두 가지 옵션이 있습니다.

1- 나가는 모든 커밋을 버립니다.

나가는 커밋을 모두 버리려면 예를 들어 원격 분기에서 master라는 로컬 분기가있는 경우 다음을 수행 할 수 있습니다.

1- 마스터에서 로컬 브랜치를 제거 할 수 있도록 이름을 변경합니다. 2- 이름이 변경된 분기를 제거합니다. 3- 마스터에서 새 분기 만들기

이제 커밋없는 새 브랜치가 생겼습니다 ..

2- 특정 커밋 실행 취소 : 특정 커밋
을 취소하려면 다음 을 수행하여 필요하지 않은 커밋을 되돌려 야합니다.

1- 불필요한 커밋을 두 번 클릭하십시오.
불필요한 커밋을 두 번 클릭하십시오.
2- 되돌리기를 클릭 하십시오. 되돌리기를
클릭하십시오.

그러나 참고로 되 돌린 커밋은 되돌리기 커밋을 사용하여 커밋 기록에 나타납니다.