Git을 사용하면 무단계 변경으로 분기 변경 가능
Git을 사용하면 커밋 (수정 된 파일)을 위해 준비되지 않은 변경 사항이있을 때 분기를 변경할 수 있습니다.
어딘가에 대한 구성이 있습니까?
편집 : 처음에는 이것이 수정되지 않은 파일이 수정 된 경우 분기 간 변경을 허용하지 않도록 설정해야하는 구성이라고 생각했습니다. 그러나 Emily의 의견에 따르면 파일이 브랜치마다 다르면 메시지가 표시되고 그렇지 않으면 메시지가 표시되지 않습니다.
결정 방법
간단한 실험은 다음을 보여줍니다.
당신이 지점에 dev
있고 당신이 수정했다고 가정합니다 foo.txt
. 커밋하지 않고 master
. 두 가지 중 하나가 발생합니다.
커밋 이없는 커밋에서
foo.txt
수정 된 경우master
에는 커밋dev
하지 않고 전환 할 수 없습니다master
. 스테이지되지 않은 변경 사항과 충돌하는 파일의 "새"버전이 있기 때문 입니다.master
따라서 "체크 아웃" 하려면 Gitfoo.txt
이있는 최신 버전 으로 업데이트해야하므로 준비되지 않은master
변경 사항이 삭제됩니다. 작업 손실을 방지하기 위해 분기를 변경하지 않습니다.- 그렇지 않으면 버전이
master
알고있는 "이후"수정이 완료되어 분기를 변경할 수 있습니다. Git은 파일master
에 대한 새로운 정보가 없기 때문에 파일을 업데이트 할 필요 가 없습니다.
"whoops"변경 사항
위의 이유로 한 브랜치의 파일에 단계가없는 변경 사항이 있고 실제로 다른 브랜치에서 변경 사항을 커밋하려는 경우 다른 브랜치를 체크 아웃 할 수도 있고 확인하지 못할 수도 있습니다.
그러나 다음을 수행 할 수 있습니다.
git stash save "here's a summary of my changes"
(요약은에 표시됩니다git stash list
)git checkout otherbranch
git stash pop
(git stash apply
및 의 조합git stash drop
)
Emily가 지적했듯이 이것은 기능입니다. Git은 변경을 수행 할 때 단계 화되지 않은 변경 사항이있는 파일을 수정해야하는 경우에만 분기 변경을 허용하지 않습니다. 수정 된 모든 파일이 브랜치 체크 아웃에 의해 변경되지 않으면 git은 전혀 불평하지 않습니다. 즉, 어떤 브랜치를 체크 아웃하든 상관없이 항상 이전 브랜치를 체크 아웃 할 수 있으며 작업 트리는 이전 브랜치를 떠난 방법과 동일합니다.
참고 URL : https://stackoverflow.com/questions/8526279/git-allows-for-branch-change-with-unstaged-changes
'IT박스' 카테고리의 다른 글
Javascript로 CKEditor에서 값을 어떻게 설정합니까? (0) | 2020.12.07 |
---|---|
Python MySQLdb 문제 (TypeError : % d 형식 : str이 아닌 숫자가 필요함) (0) | 2020.12.07 |
역할이 존재하지 않으며 PostgreSQL을 사용할 때 데이터베이스를 만들 수 없습니다. (0) | 2020.12.07 |
자바 스크립트에서 내 Json에서 "를 제거하는 방법? (0) | 2020.12.07 |
두 클래스가 하나의 div에 할당되면 클래스가 무시됩니다. (0) | 2020.12.07 |