git 브랜치의 수정 된 파일이 다른 지점으로 쏟아져 나옵니다.

StackOverflow https://stackoverflow.com/questions/246275

  •  05-07-2019
  •  | 
  •  

문제

나는 마스터 브랜치와 다른 주제 지점이있는 git 저장소에서 작업하고 있습니다. 주제 지점으로 전환하고 파일을 수정했습니다. 이제 마스터 브랜치로 전환하면 동일한 파일이 수정 된 것으로 표시됩니다.

예를 들어:

Git-Build Branch의 GIT 상태 :

# On branch git-build
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   cvsup_current
#

마스터 브랜치로 전환하십시오

[root@redbull builder_scripts (git-build)]# git co master
M       builder_scripts/cvsup_current
Switched to branch "master"

마스터 브랜치의 git 상태

[root@redbull builder_scripts (master)]# git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   cvsup_current
#

파일이 Git-Build Branch에서 수정 되었더라도 마스터 브랜치에서 수정 된 이유는 무엇입니까?

내 이해는 가지가 서로 독립적이며 한 가지에서 다른 지점으로 바뀌면 변경 사항은 한 가지에서 다른 지점으로 "유출"되지 않습니다. 그래서 나는 분명히 여기서 몇 가지를 놓치고 있습니다.

누구든지 단서 스틱이 있습니까?

도움이 되었습니까?

해결책

이것이 Git의 기본 동작입니다.

당신이 사용할 수있는 -에프 원한다면 "청소 체크 아웃"을하기 위해 체크 아웃하는 플래그.

다른 팁

파일이 Git-Build Branch에서 수정 되었더라도 마스터 브랜치에서 수정 된 이유는 무엇입니까?

기억해야 할 열쇠는 파일 이었다는 것입니다 ~ 아니다 Git-Build Branch에서 수정되었습니다. 작업 사본에서만 수정되었습니다.

당신이 커밋 할 때만, 당신이 체크 아웃 한 지점으로 변경 한 것입니다.

다른 사람에서 작업하기 위해 출발하는 동안 한 가지에 변경 사항을 일시적으로 저장하려면 git stash 명령. 그것은 git을 사용하는 놀라운 작은 멍청이 중 하나입니다. 예제 워크 플로 :

git stash #work saved
git checkout master
#edit files
git commit
git checkout git-build
git stash apply #restore earlier work

git stash 변경 스택을 저장하므로 여러 체크 포인트를 안전하게 저장할 수 있습니다. 당신은 그들에게 이름/설명을 줄 수도 있습니다. 전체 사용 정보 여기.

수정 된 파일은 추가 할 때까지 저장소에 넣지 않습니다. 그리고 그들을 커밋하십시오. 주제 지점으로 다시 전환하여 파일을 커밋하면 마스터 브랜치에 표시되지 않습니다.

  • 그것은 git 브랜치가 서로 의존하는 것과 같지 않지만 각 지점에 대해 별도로 완전한 코드베이스가 없습니다.
  • 각 커밋에 대해 GIT는 변경 사항에 대한 포인터를 포함하는 객체를 저장합니다. 따라서 각 지점은 자체 최신 커밋을 가리키고 현재 당신이있는 지점을 가리 킵니다.
  • 분기를 전환하면 헤드 포인터가 지점의 특정 커밋을 가리 킵니다. 따라서 수정 된 파일이 있으면 기본 동작은 파일을 복사하는 것입니다.

이 문제를 극복하기 위해 다음 작업을 수행 할 수 있습니다.

  1. 사용 -f 변경 사항을 무시하는 옵션.

변경 사항을 저장하려면 :

  1. 동일한 분기에서 로컬로 변경 사항을 커밋 한 다음 분기를 전환하십시오.
  2. 사용 git stash, 지점을 바꾸고, 작업을하고, 원래 지점으로 다시 전환하고 git stash apply.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top