codememo

오리진 마스터 분기의 파일 버전으로 되돌리는 방법

tipmemo 2023. 4. 13. 20:52
반응형

오리진 마스터 분기의 파일 버전으로 되돌리는 방법

리모트 서버로부터의 레포의 복제 마스터 브랜치의 로컬 컴퓨터의 마스터 브랜치에 있습니다.

파일을 갱신했는데 리모트 마스터 브랜치에서 원래 버전으로 되돌리고 싶습니다.

이거 어떻게 해?

파일을 커밋하지 않았거나 인덱스에 추가하지 않은 경우:

git checkout -- filename

인덱스에 추가했지만 커밋하지 않은 경우:

git reset HEAD filename
git checkout -- filename

당신이 그것을 실행했다고 가정하면, 다음과 같습니다.

git checkout origin/master filename

브런치로부터의 커밋을 모두 삭제하는 경우(VERY DESTARCTIVE)는 다음과 같습니다.

git reset --hard origin/master

저는 같은 문제에 직면했고 이 문제에 직면했습니다만, 제 문제는upstream아래 git 명령어는 나에게 효과가 있었다.

구문

git checkout {remoteName}/{branch} -- {../path/file.js}

git checkout upstream/develop -- public/js/index.js

git restore를 사용하여 할 수도 있습니다.

git restore --source origin/master filename

대체 파일(물론 더 나은 파일은 아님)을 추가하기 위해 이전에 파일을 커밋했지만 이제 변경을 취소해야 하는 경우 다음과 같이 수행할 수 있습니다.

git diff HEAD..master -- path/to/file.ext | git apply -

그러면 diff가 생성되어 파일이 의 버전으로 복원됩니다.master브런치를 적용한 후 적용합니다.그 후의 마이너스git apply말한다git표준 입력에서 패치를 읽습니다.

그런 다음 평상시와 같이 파일을 커밋할 수 있습니다.

셸 함수와 같은 명령어를 다음에 나타냅니다.

# Git Reset File
function grf() {
  git diff HEAD..master -- $1 | git apply -
}

# for example: grf ./someChangedFile.txt

되돌릴 파일의 최신 커밋 ID와 디렉토리를 찾아야 합니다.

다음 명령어를 사용하여

git checkout [commit ID] -- path/to/file
git commit -m 'commit message'

원격 컴퓨터에서 원하는 파일을 해당 파일의 최신 버전으로 되돌릴 수 있습니다.

아직 마스터 브랜치에 커밋하지 않았다면 다음과 같이 간단합니다.

  • (마스터 브랜치에서) 내리다git checkout -b oops/fluke/dang)
  • 거기서 변경을 커밋합니다(예:git add -u; git commit;)
  • (마스터 브랜치로) 되돌아가다git checkout master)

변경 내용은 브랜치 ops/fluke/dang에 저장되며 마스터는 원래대로 유지됩니다.

언급URL : https://stackoverflow.com/questions/1817766/how-to-revert-to-origins-master-branchs-version-of-file

반응형