development

로컬 변경을 무시하면서 힘내?

big-blog 2020. 2. 19. 22:04
반응형

로컬 변경을 무시하면서 힘내?


git pull디렉토리를 날려 버리지 않고 로컬 파일 변경을 무시 하는 방법 git clone있습니까?


풀이 로컬 변경 사항을 덮어 쓰려고하면 작업 트리가 깨끗한 것처럼 병합을 수행하여 작업 트리를 청소하십시오.

git reset --hard
git pull

추적되지 않은 로컬 파일이 있으면이 git clean를 제거하는 데 사용할 수 있습니다. 사용 git clean -f, 비 추적 파일을 제거하는 -df비 추적 파일과 디렉토리를 제거하고, -xdf비 추적 또는 무시 파일이나 디렉토리를 제거 할 수 있습니다.

반면에 로컬 수정 사항을 유지하려면 숨김을 사용하기 전에 숨기고 숨기고 나중에 다시 적용하십시오.

git stash
git pull
git stash pop

풀의 절반이 병합되고 커밋 된 버전의 콘텐츠와 가져온 버전을 병합 해야하는 변경 사항 을 문자 그대로 무시 하는 것이 의미가 없다고 생각합니다 .


나를 위해 다음이 효과가있었습니다.

(1) 먼저 모든 변경 사항을 가져옵니다.

$ git fetch --all

(2) 그런 다음 마스터를 재설정하십시오.

$ git reset --hard origin/master

(3) 풀 / 업데이트 :

$ git pull

다음 명령은 항상 작동하지 않습니다 . 당신이 그냥하는 경우 :

$ git checkout thebranch
Already on 'thebranch'
Your branch and 'origin/thebranch' have diverged,
and have 23 and 7 different commits each, respectively.

$ git reset --hard
HEAD is now at b05f611 Here the commit message bla, bla

$ git pull
Auto-merging thefile1.c
CONFLICT (content): Merge conflict in thefile1.c
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.

등등...

위해 정말 모든 로컬 변경 사항을 thebranch을 다운로드하고 덮어 쓰기, 시작, 불과 수행


$ git checkout thebranch
$ git reset --hard origin/thebranch

이것은 잘 작동합니다.

$ git checkout thebranch
Already on 'thebranch'
Your branch and 'origin/thebranch' have diverged,
and have 23 and 7 different commits each, respectively.

$ git reset --hard origin/thebranch
HEAD is now at 7639058 Here commit message again...

$ git status
# On branch thebranch
nothing to commit (working directory clean)

$ git checkout thebranch
Already on 'thebranch'

당신은와 정확히 같은 결과를 제공하는 명령을 원합니다 rm -rf local_repo && git clone remote_url. 이 기능도 원합니다. 자식 같은 명령을 (예 : 제공하지 않는 이유를 궁금해 git reclone또는 git sync), 둘 다 SVN과 같은 명령을 (같은도 제공하지 않습니다 svn recheckout또는 svn sync).

다음 명령을 시도하십시오 :

git reset --hard origin/master
git clean -fxd
git pull

git fetch --all && git reset --hard origin/master

git stash보고 모든 로컬 변경 사항을 "스 태쉬 파일"에 넣고 마지막 커밋으로 되 돌리십시오. 이때 숨김 변경 사항을 적용하거나 버릴 수 있습니다.


Linux를 사용하는 경우 :

git fetch
for file in `git diff origin/master..HEAD --name-only`; do rm -f "$file"; done
git pull

for 루프는 로컬 저장소에서 변경된 모든 추적 파일을 삭제하므로 git pull아무런 문제없이 작동합니다.
이것에 대한 가장 좋은 점은 추적 된 파일 만 repo의 파일로 덮어 쓰이고 다른 모든 파일은 그대로 유지됩니다.


이것은 나를 위해 일했다

git fetch --all
git reset --hard origin/master
git pull origin master

수락 된 답변으로 충돌 오류가 발생합니다.


이것은 현재 브랜치를 가져오고 마스터로 빨리 감기를 시도합니다.

git fetch && git merge --ff-only origin/master

.gitignore

"원치 않는 파일을 .gitignore에 추가하면 처음에 지점에 커밋하지 않은 한 작동합니다."

또한 다음을 실행할 수 있습니다.

git update-index-변경되지 않은 파일 이름 가정

https://chamindac.blogspot.com/2017/07/ignoring-visual-studio-2017-created.html


나는 보통 :

git checkout .
git pull

프로젝트의 루트 폴더

참고 URL : https://stackoverflow.com/questions/4157189/git-pull-while-ignoring-local-changes



반응형