programing

소스 트리 Windows에서 커밋 메시지 편집(이미 원격으로 푸시됨)

stoneblock 2023. 7. 8. 10:32

소스 트리 Windows에서 커밋 메시지 편집(이미 원격으로 푸시됨)

명령줄을 누르지 않고 소스 트리에서 잘못된 커밋 메시지를 편집하려면 어떻게 해야 합니까?

추가 세부 정보:

  • 이것은 최근의 약속이 아닙니다.
  • 모든 것이 이미 비트버킷으로 밀려났습니다.
  • 이것은 개인 저장소이며 내가 유일한 공동작업자입니다.
  • 이전 커밋을 언제든지 다시 커밋할 수 있으므로 이전 커밋을 손실해도 상관 없습니다.
  • 하지만 코드 수정 사항이 손실되는 것을 원하지 않습니다.

결과:

  • 당신의 댓글과 답변에 따르면 현재는 불가능할 것 같으니, 새로운 저장소를 만들고 처음부터 다시 시작하려고 합니다.도와주셔서 모두 감사합니다!

다음은 소스 트리 for 윈도우즈 버전 1.5.2.0을 사용하여 이전 커밋(최근 커밋이 아님)의 커밋 메시지를 편집하는 단계입니다.

1단계

편집할 커밋 직전커밋을 선택합니다.예를 들어, "FOBAR!" 메시지로 커밋을 편집하려면 커밋 바로 앞에 오는 커밋을 선택해야 합니다.

Selecting commit before the one that I want to edit.

2단계

선택한 커밋을 마우스 오른쪽 단추로 클릭하고 다음을 클릭합니다.Rebase children...interactively:

Selecting "Rebase children interactively".

3단계

한 후 [ ] 을 .Edit Message밑닥에바는 "우경라, 는저는 "FOOBAR!이다니합선"라는 를 가지고 ":

Select the commit that you want to edit.

4단계

메시지를 한 후 [커밋메를편집다음한지시다]를 합니다.OK제 예에서, 저는 "샤즈봇! SKADOOSH!"를 추가했습니다.

Edit the commit message

5단계

대화형 기본 재배치 창으로 돌아가면 다음을 클릭합니다.OK기본 재배치 완료:

Click OK to finish.

6단계

이 시점에서 이미 푸시한 커밋을 다시 기반으로 했기 때문에 새 변경사항을 강제로 푸시해야 합니다.그러나 현재 1.5.2.0 버전의 Windows용 SourceTree에서는 GUI를 통해 강제 푸시를 수행할 수 없으므로 이 작업을 수행하려면 명령줄에서 Git를 사용해야 합니다.

TerminalGUI에서 터미널을 엽니다.

Click Terminal

7단계

다음 명령을 사용하여 터미널에서 force-push를 실행합니다.

git push origin <branch> -f

<branch>이고, 밀넣을이분름니다입의기어다▁the▁is이니입니다.-f푸시를 강제하는 수단.강제 푸시는 원격 레포의 커밋을 덮어쓰지만, 다른 사람과 레포를 공유하지 않는다고 말했기 때문에 당신의 경우에는 괜찮습니다.

바로 그거야!끝났습니다!

버전 1.9.6.1.푸시되지 않은 커밋에 대해.

  1. 이전에 커밋된 설명 클릭
  2. 커밋 아이콘 클릭
  3. 새 커밋 메시지를 입력하고 커밋 선택사항 드롭다운에서 "최신 커밋 수정"을 선택합니다.
  4. 메시지를 커밋합니다.

설명 메시지에 영어가 아닌 문자가 포함된 경우 사용자 456814에서 제공하는 방법을 사용하면 해당 문자가 물음표로 대체됩니다.(소스 트리 Ver2.5.5.0에서 테스트)

그래서 저는 다음과 같은 방법을 사용해야 합니다.

주의: 다른 구성원이 커밋을 끌 경우 아래의 변경 사항으로 인해 혼란이 발생할 수 있습니다.

1단계: 원본 트리 기본 창에서 보고서 탭을 찾은 다음 "터미널" 버튼을 클릭하여 git 명령 콘솔을 엽니다.

2단계:

[상황 A]: 대상 커밋이 최신 커밋입니다.

git 명령 콘솔에서 입력

git commit --amend -m "new comment message"

대상 커밋이 원격으로 푸시된 경우 강제로 다시 푸시해야 합니다.git 명령 콘솔에서 입력

git push --force

[상황 B]: 대상 커밋은 최신 커밋이 아닙니다.

git 명령 콘솔에서 입력

git rebase -i HEAD~n

최근 n개의 커밋을 압축하는 것입니다. 예를 들어 마지막 커밋 전에 메시지를 편집하려면 n은 2입니다.이 명령을 실행하면 vi 창이 열리고 각 줄의 첫 번째 단어는 "선택"이며 편집할 줄의 "선택"을 "다시 입력"으로 변경할 수 있습니다.그다음,입력:wq.vi을 통해 이제 새 vi 창이 열립니다. 이 창에서 새 메시지를 입력합니다. 한사용을 합니다.:wq절약과 절약을 위하여.

대상 커밋이 원격으로 푸시된 경우 강제로 다시 푸시해야 합니다.git 명령 콘솔에서 입력

git push --force


마지막으로:소스 트리 기본 창에서 를 누릅니다.F5기분 전환을 위해

갱신하다

참고: 이 답변은 원래 Windows용 소스 트리의 이전 버전과 관련하여 작성되었으며 현재는 구식입니다.

Windows용 소스 트리 1.5.2.0의 최신 버전에 대한답변을 참조하십시오.저는 역사적인 목적을 위해 이 답변을 남겨둡니다.

원답

Windows(윈도우)를 사용하고 있기 때문에 명령줄 도구도 없고 명령줄 도구를 사용하는 방법도 모릅니다. :( 그것이 해결할 수 있는 유일한 방법입니까?GUI가 Git의 모든 기능을 커버하지는 않습니까?원본 포스터

Git GUI와 관련하여, 아니요, Git의 모든 기능다루지는 않습니다.그들은 가까이 오지않습니다.Git에서 잘못된 커밋 메시지를 편집하려면 어떻게 해야 합니까?에서 답변 중 하나를 확인하는 것이 좋습니다. Git은 여러 솔루션이 있을 정도로 유연합니다.명령행에서.

소스트리는 실제로 이미 msysgit bash 셸과 함께 제공되거나 표준 윈도우즈 명령 셸을 사용할 수 있습니다.어느 쪽이든 터미널 버튼을 클릭하여 소스 트리에서 엽니다.

enter image description here

여기서 소스 트리가 사용하는 터미널(배시 또는 Windows)을 설정합니다.

enter image description here

소스 트리의 문제를 해결하는 한 가지 방법

즉, 소스 트리에서 이를 수행할 수 있는 한 가지 방법이 있습니다.당신이 댓글에서 "잘못된 커밋으로 되돌리는 것"(이는 실제로 Git에서 다른 작업인 재설정을 의미한다고 가정함)에 개의치 않는다고 언급했으므로, 다음 단계가 있습니다.

  1. 소스 트리를 마우스 오른쪽 버튼으로 클릭하고 선택하여 잘못된 커밋으로 하드 재설정Reset current branch to this commit드롭다운에서 하드 재설정 옵션을 선택합니다. enter image description here
  2. Commit 버튼을 클릭한 다음
  3. 하단의 "최신 커밋 수정" 확인란을 클릭합니다. enter image description here
  4. 메시지를 변경한 다음 커밋을 다시 클릭합니다.Voila!

의견과 관련하여:

이미 Bitbucket에 푸시되어 있기 때문에 가능하지 않다면 새 저장소를 만들고 다시 시작하는 것이 좋습니다.

이것은 레포 작업을 하는 사람이 당신뿐이라는 것을 의미합니까?공동작업자에게 문제를 일으키지 않고 보고서 기록을 변경하는 것은 사소한 일이 아니기 때문에 중요합니다.그러나 사용자가 레포 작업을 수행하는 유일한 사용자라고 가정하면 변경된 기록을 원격으로 강제로 푸시하는 것이 좋습니다.

그러나 잘못된 커밋을 하드 리셋했기 때문에 강제로 푸시하면 이전에 실행된 모든 작업이 손실됩니다.소스 트리에서 이를 수행할 옵션을 찾을 수 없었기 때문에 명령줄에서 다음 명령을 사용하여 강제 푸시를 수행해야 할 수도 있습니다.

git push remote-repo head -f

또한 BitBucket을 사용하여 repo를 강제로 푸시할 수 있다고 가정합니다.

명령줄에서 Git 사용법을 정말 배워야 합니다. #ProTip. #Msysgit을 사용하고 터미널 속성에서 빠른 편집 모드를 설정하여 두 번 클릭하여 텍스트 한 줄을 강조 표시하고 마우스 오른쪽 버튼을 클릭하여 복사한 후 다시 마우스 오른쪽 버튼을 클릭하여 붙여넣을 수 있습니다.꽤 빠르네요.

언급URL : https://stackoverflow.com/questions/17604232/edit-a-commit-message-in-sourcetree-windows-already-pushed-to-remote