programing

"git checkout"과 "git checkout"의 차이 --

lovejava 2023. 8. 12. 09:40

"git checkout"과 "git checkout"의 차이 --

http://norbauer.com/notebooks/code/notes/git-revert-reset-a-single-file

저는 일자리를 찾았습니다.

하지만 여전히 사이의 차이점이 무엇인지 모릅니다.

  1. git checkout <filename>

  2. git checkout -- <filename>

첫 번째 것과 두 번째 것은 각각 어떤 상황에서 사용해야 합니까?

별한옵 "션특""--즉, "이 점 이후의 모든 인수를 파일 이름으로 표시"합니다.이것은 Git에 특화된 것이 아니라 일반적인 Unix 명령줄 규약입니다.일반적으로 인수가 옵션이 아닌 파일 이름임을 명확히 하기 위해 사용합니다.

rm -f      # does nothing
rm -- -f   # deletes a file named "-f"

git checkout1 또한 필요합니다.--후속 인수가 원하는 커밋을 지정하는 선택적 "트리시" 매개 변수가 아님을 의미합니다.

따라서 이러한 맥락에서 안전하게 사용할 수 있습니다.--항상, 그러나 되돌리려는 파일의 이름이 다음으로 시작할 때 필요합니다.-또는 분기의 이름과 같습니다.분기/파일의 모호성을 해제하기 위한 몇 가지 예:

git checkout README     # would normally discard uncommitted changes
                        # to the _file_ "README"

git checkout master     # would normally switch the working copy to
                        # the _branch_ "master"

git checkout -- master  # discard uncommitted changes to the _file_ "master"

및 옵션/파일 모호성 해제:

git checkout -p -- README  # interactively discard uncommitted changes
                           # to the file "README"

git checkout -- -p README  # unconditionally discard all uncommitted
                           # changes to the files "-p" and "README"

이름이 다음으로 시작하는 지점이 있으면 어떻게 하는지 잘 모르겠습니다.-아마도 처음부터 그렇게 하지 마세요.


1 이 모드에서는, "스캐너"가 여러 가지 다른 작업도 수행할 수 있습니다.Git가 대부분의 다른 VCS와 마찬가지로 "복귀"하거나 자체 용어를 사용하는 것이 더 타당할 것으로 생각되는 "재설정"이 아니라 "체크아웃" 하위 명령의 모드로 "커밋되지 않은 변경 사항 삭제"를 구현한 이유를 이해할 수 없습니다.

모것든는 다음에 것.--프로그램 인수가 아닌 파일 이름으로 처리됩니다.예를 들어 대시로 시작하는 파일 이름이 있는 경우 중요합니다.

git checkout <filename>그리고.git checkout -- <filename>병합되지 않은 변경 사항을 처리하는 데 있습니다.

git checkout <filename>현재 분기의 변경 내용을 무시하고 파일을 지정된 분기 또는 커밋의 버전으로 바꿉니다.파일에서 변경 내용이 병합되지 않은 경우 이 명령은 실패하고 오류 메시지가 표시됩니다.

git checkout -- <filename>병합되지 않은 변경 사항을 포함하여 파일의 모든 변경 사항을 무시합니다.이 기능은 로컬 변경 내용을 완전히 삭제하고 지정된 분기 또는 커밋에서 버전으로 다시 시작하려는 경우에 유용합니다.

요하자면약,git checkout <filename>현재 분기에 병합된 변경 사항을 보존하는 동안 파일의 특정 버전으로 전환하는 데 사용됩니다.git checkout -- <filename>병합되지 않은 변경 사항을 포함하여 파일의 모든 변경 사항을 삭제합니다.

git checkout -- filename

작업 디렉터리에 있는 파일의 버전을 인덱스(인덱스 영역)에 있는 파일로 바꿉니다.

git checkout filename

동일한 이름으로 지점을 체크아웃하려고 합니다. 만약 지점이 존재하지 않으면 지점은 다음과 같은 작업을 수행합니다.git checkout -- <filename>

언급URL : https://stackoverflow.com/questions/6561142/difference-between-git-checkout-filename-and-git-checkout-filename