시작해야 할 상위 20개의 GIT 명령
게시 됨: 2020-06-10아시다시피 GIT는 분산 버전 제어 시스템입니다. 엔지니어는 소프트웨어 개발 과정에서 소스 코드의 변경 사항을 추적하는 데 사용합니다. 당신이 개발자라면, 특히 당신이 이제 막 이 분야에 입문했다면, 당신은 좀 더 유용한 GIT 명령어 몇 가지를 배워야 합니다.
배워야 할 최고의 GIT bash 명령을 살펴보겠습니다.
- 프로젝트 설정: GIT 프롬프트 설명
- 힘내 초기화
- 구성
- 클론
- 별명
- 변경 수행 및 실행 취소 명령
- 상태
- 추가하다
- 저지르다
- 초기화
- 숨기는 장소
- 돌아가는 것
- 팀 작업을 위한 Git 명령
- 나뭇가지
- 체크 아웃
- 당기다
- 저지르다
- 푸시
- 병합
- 리베이스
- 명령 커밋 후
- 통나무
- 보여주다
프로젝트 설정: GIT 프롬프트 설명
추천: 코딩 방법을 배우는 데 도움이 되는 멋진 무료 앱 5개.
힘내 초기화
좋아하는 IDE에서 방금 프로젝트를 만들었고 PowerShell GIT 프롬프트에 대해 알아야 한다고 가정해 보겠습니다. 실행 가능한 GIT 리포지토리를 설정해야 합니다.
그렇게 할 때 어떤 디렉토리를 활용하고 실행해야 하는지 GIT에 알려야 합니다. git init 기능은 그렇게 하는 방법입니다. GIT는 숨김을 생성합니다. git 디렉토리를 만들고 이를 사용하여 파일을 다른 하위 디렉토리로 구성합니다.
다음은 인기 있는 다음 편집기에 대한 git init 명령 목록입니다.
원자 | git config –global core.editor “atom –wait” |
---|---|
BBEdit(Mac, 명령줄 도구 포함) | git config –global core.editor "bbedit -w" |
지디트(리눅스) | git config –global core.editor “gedit –wait –new-window” |
메모장(Windows 64비트) | git config core.editor 메모장 |
메모장++(Windows 64비트) | git config –global core.editor “'C:\Program Files\Notepad++\notepad++.exe' -multiInst -notabbar -nosession -noPlugin” (또한 아래 참고 사항 참조) |
스크래치(리눅스) | git config –global core.editor "스크래치 텍스트 편집기" |
서브라임 텍스트(macOS) | git config –global core.editor “/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl –new-window –wait” |
숭고한 텍스트(Windows 64비트) | git config –global core.editor “'C:\Program Files\Sublime Text 3\sublime_text.exe' -w” (또한 아래 참고 사항 참조) |
정력 | git config –global core.editor "vim" |
비주얼 스튜디오 코드 | git config –global core.editor “코드 –대기” |
구성
리포지토리를 생성한 후 사용자 이름 설정과 같은 몇 가지 필수 요소를 구성할 수 있습니다. 그렇기 때문에 CONFIG 명령이 필요합니다. GIT 목록의 모든 명령에는 이 항목이 포함됩니다.
다음을 실행하여 사용자 이름을 설정할 수 있습니다.
git config user.name=<replace_with_your_username>.
그러면 가까운 저장소에 사용자 이름이 저장됩니다. 단, 이후에 두 번째 리포지토리를 생성하려면 사용자 정보를 한 번 더 설정해야 합니다.
전역 명령 옵션을 추가하는 경우에는 이 작업을 수행할 필요가 없습니다. 귀하의 정보를 전역적으로 설정합니다.
git config --global user.name=<replace_with_your_username>.
CONFIG 명령을 사용하여 다른 측면을 구성할 수도 있습니다. 구성 파일 내에 명령을 배치할 수 있습니다.
클론
원격 컴퓨터에서 리포지토리를 가져오려면 CLONE 명령을 설정해야 합니다. git clone 설정을 사용하고 URL을 매개변수로 전달하여 이 작업을 수행합니다. 이 명령은 시스템 내의 전체 원격 저장소를 복제해야 합니다. 이것은 개발자에게 도움이 되는 또 다른 GIT 허브 명령 중 하나입니다.
$ git clone git://git.kernel.org/pub/scm/git/git.git
별명
ALIAS 명령을 사용하여 자주 사용하는 명령에 대한 바로 가기를 만들 수 있습니다. 일련의 명령을 래핑하고 이름으로 저장하는 데 도움이 되는 도구입니다. 이것은 개발자로서 자주 사용하게 될 일반적인 GIT 명령 중 하나로 간주됩니다.
구성 파일에 바로 별칭을 추가할 수도 있습니다. 이 경우 예제의 지시문은 전역 구성 파일에서 다음 구성으로 바뀝니다. 예를 들어 가장 일반적인 명령에 대한 다음 단축키를 설정할 수 있습니다.
$ git config --global alias.co checkout $ git config --global alias.br branch $ git config --global alias.ci commit $ git config --global alias.st status
변경 수행 및 실행 취소 명령
상태
스테이징 영역 및 작업 구성의 상태를 표시하려는 경우 사용하는 명령입니다. 이를 사용하여 어떤 변경이 준비되었고 어떤 변경이 이루어지지 않았는지 확인할 수 있습니다.
추가하다
수정된 파일이나 새 파일을 커밋하기 전에 스테이징 영역에 추가해야 합니다. git add 지시문을 실행하여 이를 수행하십시오. 파일 및 디렉토리의 이름을 매개변수로 전달해야 합니다. f_your_file>을 입력할 수 있습니다. 이 시점에서 파일은 "커밋할 변경 사항" 목록에서 제거됩니다.
-p(또는 -patch)를 추가하면 커밋할 각 추적 파일의 일부를 선택할 수 있습니다. 그런 다음 각 커밋에는 관련 변경 사항만 포함됩니다.
저지르다
일부 기능 구현을 완료했고 변경 사항을 저장하려고 한다고 가정해 보겠습니다. "커밋할 변경 사항" 목록을 확인하십시오. 완료되면 필요한 모든 파일이 준비되었음을 알 수 있습니다. 그때 git commit 을 실행할 수 있습니다.
이 명령을 실행하면 기본 편집기가 열립니다. 그런 다음 COMMIT 메시지를 입력해야 합니다.
메시지가 짧은 경우 다음과 같이 GIT COMMIT 명령에 포함합니다.
git commit -m “Your_first_commit_message.”
-a 옵션을 추가할 수도 있습니다. 이렇게 하면 GIT가 작업 트리를 볼 수 있습니다. 그런 다음 새 파일과 수정된 파일에 대해 GIT ADD를 수행하고 커밋 전에 삭제된 파일에 대해 git rm을 수행합니다.
커밋에 파일을 추가하는 것을 잊었을 수 있습니다. 해당 파일에 대해 다른 커밋 명령을 생성하고 싶지 않습니다. 대신 수정 옵션을 사용할 수 있습니다.
공개 커밋은 절대 수정하면 안 됩니다. 동료가 해당 커밋을 기반으로 작업을 수행했을 수 있음을 기억하십시오. 그들이 만든 변경 사항으로 인해 그들을 혼동하고 싶지 않습니다.
초기화
git reset은 개발자로서 직장 생활을 시작할 때 유용한 또 다른 도구입니다. 이것은 변경 사항을 다시 포맷하는 데 도움이 되는 명령입니다. 사용할 수 있는 방법은 여러 가지가 있지만 일반적인 예는 다음과 같이 인수가 있는 것처럼 모드와 커밋 식별을 제공하는 경우입니다.
git reset <mode> <commit>.
여러 재설정 가능성이 있습니다. 이를 이해하려면 세 가지 GIT 트리를 알고 있어야 합니다.
- Mixed는 GIT RESET을 사용한 기본 호출입니다. 혼합 옵션과 HEAD를 커밋 ID로 사용합니다. ref 포인터를 재설정하고 준비된 인덱스에서 작업 영역으로 모든 변경 사항을 이동합니다. 그런 다음 스테이징 영역은 지정된 커밋이 발생하는 상태와 일치합니다.
- 하드: 하드 옵션은 참조 포인터를 재설정하고 스테이징 인덱스를 조정합니다. 또한 특정 커밋의 상태와 일치하도록 작업 디렉터리를 수정합니다. 본질적으로 모든 측면을 재설정합니다. 하드 리셋을 수행하기 전에 수행하려는 전체 변경 사항을 확인하십시오.
- 소프트: 스테이징 인덱스나 작업 디렉터리를 건드리지 않는 소프트 옵션도 있습니다. ref 포인터는 모두 업데이트됩니다.
숨기는 장소
특정 기능 영역에서 얼마 동안 작업했다고 가정해 보겠습니다. 바로 그 순간 수정해야 하는 버그가 있음을 알 수 있습니다. 그러나 기능 구현은 아직 진행 중이며 완료되지 않은 분기 변경을 가하고 싶지는 않습니다. git stash 명령이 필요합니다.
이 방법을 사용하면 변경 사항을 STASH 스택에 유지할 수 있습니다. 그런 다음 git stash list와 함께 목록을 만들 수 있습니다.
보관함을 적용할 수 있는 분기에는 제한이 없습니다. 변경 사항을 한 분기에 저장하고 원할 때 다른 분기에 적용할 수 있습니다.
저장된 변경 사항을 적용하려면 git stash apply 지시문을 사용하십시오. 스택에 저장된 가장 최근 변경 사항을 적용합니다. 이전 변경 사항을 적용하려면 git stash apply [email protected]{1}와 같은 이름을 지정할 수 있습니다. 이것은 스택의 다른 숨김에 적용됩니다.
적용 지시문을 사용하여 숨김을 적용하면 해당 스택에서 제거되지 않습니다. 자주 사용하게 될 GIT 흐름 명령으로 볼 수 있습니다.
2020년 모바일 애플리케이션 개발에 대한 트렌드는 무엇 입니까 ?
돌아가는 것
완료된 변경 사항을 원래 브랜치로 푸시하는 것이 적합하다고 생각하고 커밋 중 하나가 거기에 있을 필요가 없다는 것을 알았을 수 있습니다. 이전 지시어를 제거하는 다른 지시어를 추가하여 문제를 해결하십시오. REVERT 지시어가 도움이 됩니다. 커밋 ID를 지정하고 매개변수로 실행 취소해야 합니다: git revert <commit_id> .
이 명령은 브랜치 이름, 원격으로 전환되기 전 또는 이후에 이루어진 커밋 수를 포함하여 편리한 정보를 파악합니다. 또한 새 파일과 수정된 파일을 여러 목록으로 볼 수 있습니다.
- 커밋할 변경 사항.
- 약정에 대해 변경이 설정되지 않았습니다.
- 추적되지 않은 파일.
팀 작업을 위한 Git 명령
나뭇가지
git branch 지시문을 사용하면 시스템에서 분기 목록을 사용합니다. 원격 분기를 보려면 git branch -r을 사용하십시오. 로컬 및 원격 분기를 보려면 git branch -a를 사용하십시오.
git branch -d <branch_name>을 사용하여 분기를 삭제할 수 있습니다.
체크 아웃
이것은 정기적으로 사용되는 또 다른 GIT 지시문입니다. 분기에서 작업하려면 스위치를 실행해야 합니다. git checkout은 브랜치에서 다른 브랜치로 쉽게 전환하는 방법입니다. 커밋뿐만 아니라 파일을 정독하는 데 사용할 수 있습니다. Git checkout <name-of-your-branch> 는 실행 방법입니다.
분기 간을 성공적으로 전환하려면 다음을 기억하십시오.
전환할 때 현재 분기의 변경 사항을 커밋하거나 숨길 수 있습니다.
확인하는 지점은 해당 지역에 존재해야 합니다.
한 번에 분기를 만들고 전환할 수 있는 바로 가기 명령도 있습니다.
git checkout -b <name-of-your-branch>.
이것은 로컬에서 다른 지시문을 생성하는 명령입니다(-b는 분기를 나타냄). 생성된 직후 최신 분기를 살펴봅니다.
당기다
git pull 지시문을 사용하면 원격 저장소 및 가장 가까운 저장소와의 통합을 통해 새로운 데이터 다운로드를 수행합니다. 이 명령을 실행하면 원격 터미널의 모든 변경 사항과 함께 로컬 브랜치를 새로 고칩니다.
새 변경 사항을 통합하는 기본 방법도 있습니다. 병합을 사용하십시오. git pull –rebase 옵션을 사용하면 rebase로 변경할 수 있습니다.
커밋되지 않은 변경 사항 없이 항상 깨끗하고 가까운 리포지토리에 변경 사항을 저장하는 것이 좋습니다.
저지르다
이것은 버전 기록에 파일을 "스냅샷"하거나 기록할 수 있는 지시문입니다. git commit -m “[커밋 메시지를 입력하세요]”를 입력하여 사용합니다.
GIT ADD 명령과 함께 추가한 파일을 커밋하는 명령입니다. 또한 그 이후로 변경된 파일을 효과적으로 커밋합니다.
푸시
변경 사항을 커밋한 후 원격 리포지토리로 푸시하려고 할 수 있습니다. 이렇게 하면 팀원이 사용할 수 있습니다.
GIT PUSH를 실행하면 현재 영역의 최근 변경 사항을 원격으로 "푸시"합니다. 로컬에서 브랜치를 생성하여 전체 브랜치를 원격 리포지토리로 푸시하면 됩니다. git push -u origin <replace_with_branch_name> 명령을 사용하면 됩니다.
이름이 지정된 브랜치를 원본 리포지토리로 푸시하는 방법입니다. 원격 브랜치는 로컬 브랜치와 동일한 이름을 사용해야 합니다.
병합
또한 이 GIT 프롬프트 목록에 MERGE를 추가해야 했습니다. 기능 분기를 통합하거나 어느 시점에서 다른 분기의 버그를 수정하고 싶을 것입니다. 분기를 병합하면 그렇게 할 수 있습니다. git merge 명령을 실행하면 됩니다.
명령을 실행한 후 3방향 병합 또는 빨리 감기의 두 가지 병합이 발생할 수 있습니다.
빨리 감기 병합은 병합하려는 분기 사이에 선형 경로가 있는 경우에 사용됩니다. 마스터에서 bugfix 브랜치를 생성했다고 가정해 보겠습니다. 문제를 해결했으며 이를 마스터에 병합하려고 합니다. 그러나 아무도 브랜치를 업데이트하지 않았습니다. GIT는 브랜치 자체를 병합하여 문제를 해결할 수 있습니다.
가지 사이에 선형 경로가 없을 때 3방향 병합이 발생합니다. 마지막 예제와 마찬가지로 마스터 버전에서 bugfix 분기를 고안했습니다. 버그를 수정했으며 이제 git merge <branch> 와 병합해야 합니다.
아마도 누군가가 마스터를 업데이트했음을 발견했을 것입니다. 분기를 연결하려면 GIT는 변경 사항이 결합된 새 커밋을 생성해야 합니다.
그 때 문제가 발생합니다. 두 가지 모두 동일한 코드 블록을 변경했습니다. GIT는 당신의 도움 없이는 변경 사항을 함께 섞을 수 없습니다. 하나의 변경 사항을 수락하는 것이 가장 쉬운 방법입니다.
그러나 변경 사항을 결합할 수도 있습니다. 이 경우 GIT는 일부 시각적 표시기로 영향을 받는 파일을 수정합니다. 이렇게 하면 문제를 쉽게 찾을 수 있습니다. 일부 시각적 마커가 사용됩니다.
<<<<<< — shows the place the conflict began ====== — separates changes from different branches >>>>>> — shows where the conflict ends
충돌을 해결하고 마커를 제거하면 충돌 영역이 git add를 사용하여 스테이징 영역에 추가됩니다.
오류가 발생했거나 다른 방향으로 이동하려면 git merge –abort를 실행합니다. 이렇게 하면 분기가 수정되지 않습니다.
그렇지 않은 경우 git commit 명령을 사용합니다. 병합을 종료하고 새 커밋을 생성합니다.
또 다른 유용한 명령은 git mergetool 명령으로 Git에서 병합에 문제가 있는 경우 외부 병합 도우미를 실행하기만 하면 됩니다.
당신은 또한 좋아할 수 있습니다: iOS 앱 개발을 위한 최고의 프로그래밍 언어.
리베이스
먼저 REBASE를 사용하여 변경 사항을 통합한 다음 병합합니다. REBASE를 사용하면 프로그램의 배경을 다시 작성하게 됩니다. 공개 커밋은 예를 들어 팀 구성원이 작업을 기반으로 할 수 있으므로 리베이스해서는 안 됩니다.
특정 브랜치를 자신의 브랜치로 병합하도록 선택하는 대신 브랜치를 특정 브랜치로 리베이스할 수 있습니다. 하지만 당신이 사용하고 있는 이 리베이스 프로토콜을 수행하는 것은 무엇입니까?
일어날 일은 변경 사항이 하나의 특정 분기에서 다른 분기로 통합된다는 것입니다. 두 번째 분기의 베이스는 한 커밋에서 다른 커밋으로 변경됩니다. 첫 번째 분기에서 두 번째 분기가 생성된 것처럼 보입니다. 이렇게 하면 명확하고 선형적인 기록이 제공됩니다.
Git rebase <name_of_branch_to_rebase_on> 은 명령을 실행하는 방식입니다.
이것은 rebase 명령의 첫 번째 또는 표준 모드입니다. 그런 다음 대화형 모드라고도 하는 두 번째 모드가 있습니다. 커밋 시퀀스를 다른 브랜치(원격 브랜치라고도 함)에 포함하기 전에 이를 사용하여 커밋 시퀀스를 쉽게 수정할 수 있습니다.
명령 커밋 후
통나무
이 지시어는 현재 브랜치의 버전 기록을 나열하기 위한 것입니다. 실행하려면 git log –follow[file] 을 입력합니다.
이 지시문은 파일 버전 기록을 나열합니다. 파일 이름 바꾸기가 포함됩니다. git log는 커밋 히스토리를 출력합니다.
이 시나리오에서는 몇 가지 옵션을 사용할 수 있습니다. 그 중 하나는 git log –stat입니다. 기록의 각 커밋에 대해 이름 목록이 인쇄됩니다. 제거, 수정 또는 추가된 파일에 액세스할 수 있습니다. 제거되거나 추가된 라인 금액을 볼 수 있습니다. 정독할 수 있는 요약도 있음을 알 수 있습니다.
보여주다
개발자가 사용하는 표시 프롬프트는 다양한 개체에 대한 세부 정보를 표시할 수 있습니다. "개체"라고 하면 커밋 또는 태그에 대해 이야기하는 것입니다. git show는 이전 파일 버전을 표시하는 데 사용할 수 있습니다. 예를 들어 이 명령을 사용하여 두 커밋 이전의 파일 버전을 표시할 수 있습니다.
이 GIT 명령 자습서가 이 도구를 소개하는 데 도움이 되었기를 바랍니다. 개발자로서 GIT에 대해 더 많이 알수록 신뢰할 수 있는 프로그래머를 찾는 팀에 채용될 수 있는 더 나은 위치에 있게 될 것입니다.
이 분야에서 더 발전할수록 더 많은 GIT 프롬프트를 배우고 프로그래밍이 훨씬 더 부드러워질 것입니다. 팀원이 추가할 수 있는 유용한 코드를 작성할 수 있습니다.
이 기사는 Slava Vaniukov가 작성했습니다. 소프트웨어 및 앱 개발 에이전시인 Softtermii의 공동 창립자이자 CEO입니다. 그는 웹 및 모바일 개발 업계에서 9년 이상의 경력을 가지고 있습니다. 그 외에도 그는 Softermii 블로그의 저자 중 한 명이며 다양한 기타 웹 리소스에 소개된 기술 블로거입니다. LinkedIn에서 그를 팔로우할 수 있습니다.