git reset과 git checkout은 무엇이 다른가요?
3192 단어 Git
요전날 타이틀의 2개의 차이를 몰랐기 때문에, 여러가지 조사했다.
실무로 사용한 적이 없기 때문에, 어긋남은 정직할지도 모르지만, 지금의 이해를 정리하는 장소로 한다.
또, 엉망이 없도록, 단적으로를 의식적으로 기술하고 있다.
어디에서 사용합니까?
이 2개의 커맨드는 「인덱스나 워크 트리의 ①무언가를 ②무언가의 상태로 되돌릴 때」에 사용된다.
①과 ②는 각각 아래의 후보가 나온다.
①
- 특정 파일
- 모든 파일
②
- HEAD or 인덱스
- 과거 커밋
각 명령을 git help에서 보면
git reset --help
NAME
git-reset - Reset current HEAD to the specified state
SYNOPSIS
git reset [-q] [<tree-ish>] [--] <pathspec>...
git reset [-q] [--pathspec-from-file=<file> [--pathspec-file-nul]] [<tree-ish>]
git reset (--patch | -p) [<tree-ish>] [--] [<pathspec>...]
git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]
DESCRIPTION
In the first three forms, copy entries from <tree-ish> to the index. In the last form, set the
current branch head (HEAD) to <commit>, optionally modifying index and working tree to match. The
<tree-ish>/<commit> defaults to HEAD in all forms.
요약하면
git reset --help
NAME
git-reset - Reset current HEAD to the specified state
SYNOPSIS
git reset [-q] [<tree-ish>] [--] <pathspec>...
git reset [-q] [--pathspec-from-file=<file> [--pathspec-file-nul]] [<tree-ish>]
git reset (--patch | -p) [<tree-ish>] [--] [<pathspec>...]
git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]
DESCRIPTION
In the first three forms, copy entries from <tree-ish> to the index. In the last form, set the
current branch head (HEAD) to <commit>, optionally modifying index and working tree to match. The
<tree-ish>/<commit> defaults to HEAD in all forms.
요약하면
보다 간단하게 말하면, 지금의 HEAD를 특정된 상태로 이동해, 그것을 선택적으로 인덱스와 워크 트리에 카피한다.
옵션이란?
git checkout --help
NAME
git-checkout - Switch branches or restore working tree files
SYNOPSIS
git checkout [-q] [-f] [-m] [<branch>]
git checkout [-q] [-f] [-m] --detach [<branch>]
git checkout [-q] [-f] [-m] [--detach] <commit>
git checkout [-q] [-f] [-m] [[-b|-B|--orphan] <new_branch>] [<start_point>]
git checkout [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] <pathspec>...
git checkout [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] --pathspec-from-file=<file> [--pathspec-file-nul]
git checkout (-p|--patch) [<tree-ish>] [--] [<pathspec>...]
DESCRIPTION
Updates files in the working tree to match the version in the index or the specified tree. If no
pathspec was given, git checkout will also update HEAD to set the specified branch as the current
branch.
요약하면
워크 트리의 파일을 인덱스, 그 외는 지정된 커밋의 버젼과 일치시킨다.
차이 키워드
과거 커밋에서 반영 할 때
그림으로 요약
여기까지 이해하면, 나머지는 실천 있는 것 뿐이라고 나는 느끼고 있다.
향후 실무로 갱신점이 있으면 수시로 가고자 한다.
실무로 사용하고 있는 분으로 꼭 다른 장소나, 어드바이스가 있으면 받고 싶다.
이상.
Reference
이 문제에 관하여(git reset과 git checkout은 무엇이 다른가요?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mitsumizo/items/a1b79492458809070c9d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(git reset과 git checkout은 무엇이 다른가요?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mitsumizo/items/a1b79492458809070c9d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)