원래 저장소로 로컬 파일을 강제로 덮어 쓰겠습니까?


224

저장소에있는 최신 파일을 가져 와서 로컬에있는 것을 덮어 쓰고 싶습니다. git 클라이언트로 어떻게 할 수 있습니까?

답변:


443

하나의 파일 만 덮어 쓰려면 다음을 수행하십시오.

git fetch
git checkout origin/master <filepath>

변경된 모든 파일 을 덮어 쓰려면 다음을 수행 하십시오.

git fetch
git reset --hard origin/master

(이것은 master로컬에서 작업하고 있고 원점의 변경 사항을 원한다고 가정합니다 master. 지점에있는 경우 대신 대신 변경하십시오.)


이것은 정반대였다. 로컬 파일로 리포지토리를 잘못 덮어 썼습니다.
C_Rod

git fetch git reset --hard origin/master또는/<branch name>
adrian filipescu

대단해 ... 정확히 내가 찾던 것. 감사합니다
Thiago Passos

@C_Rod가 무엇을했는지 확실하지 않지만 이것은 저장소에 영향을 줄 수 없습니다.
Brad Mace

26

원하는 파일이있는 동일한 분기에서 작업한다고 가정하면 가장 간단한 버전은 다음과 같습니다.

git checkout path/to/file.

이 작업을 너무 자주 수행하여 별칭을로 설정했습니다 gc='git checkout'.


4
단순하고 우아하며 작업을 수행합니다. 전에 'git fetch'를 기억하십시오.
Almir Campos

6
git checkout path/to/file나를 위해 일했다. 또한이 다이어그램 git checkout이 수행중인 작업을 개념적으로 이해하는 데 매우 유용하다는 것을 알았습니다 . 링크
칼 스위니

9

이것은 나를 위해 일했다 :

git reset HEAD <filename>

몇 가지 다른 솔루션을 보았지만이 솔루션이 가장 효과적입니다.
Calvin Zhou

3

전체 동기화에는 몇 가지 작업이 있습니다.

  • 변경 사항 되돌리기
  • 새 파일 제거
  • 원격 저장소에서 최신 정보 얻기

git reset HEAD-하드

git clean -f

자식 풀 원점 마스터

또는 내가 선호하는 것은 다음을 사용하여 최신 버전의 원격으로 새 분기를 만들 수 있다는 것입니다.

git checkout origin/master -b <new branch name>

origin은 내 원격 저장소 참조이고 master는 내가 고려한 지점 이름입니다. 이것들은 당신과 다를 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.