Git 및 Github: 초보자를 위한 초보자 가이드
게시 됨: 2017-08-15텔레비전과 영화가 우리에게 말해주는 것에도 불구하고, 소프트웨어 개발자로서의 삶은 어두운 방에 앉아 있는 것, 모니터의 빛으로만 밝혀지는 우리의 키보드, 다른 인간과 상호 작용하는 것에 대한 생각이 혐오감을 주는 것을 포함하지 않습니다. 아니요, 소프트웨어 개발자로서의 삶은 사교적이고 협력적입니다. 때로는 좌절감을 느끼기까지 합니다. 이것이 git과 Github가 있는 이유입니다.
Git은 초기 학습 곡선을 지나고 나면 팀원과의 협업을 매우 간단하게 만들어주는 버전 제어 소프트웨어입니다. 겁이 날 수 있지만, 그래서 내가 여기 있는 거야!
힘내 란 무엇입니까?
글쎄요, 그것은 우리 남부인들이 현관에서 벌레를 치우는 방식만이 아닙니다.
위에서 말했듯이 Git은 버전 관리 소프트웨어입니다. Linux를 발명한 Linus Torvalds가 만들었습니다. git을 사용하기 위해 Linux를 실행할 필요는 없습니다. Windows와 Mac에서도 사용할 수 있습니다.
Git을 사용하면 소프트웨어 개발 중에 귀하와 귀하의 팀이 만든 모든 수정 사항을 쉽게 추적할 수 있습니다. 여러분은 모두 독립적으로 작업한 다음 다시 함께 병합되는 하나의 코드 저장소를 공유합니다. 또한 프로젝트가 각 컴퓨터에 로컬로 저장되고 원격으로(아마도 Github에) 저장되기 때문에 항상 연결할 필요가 없습니다.
Git은 특별하고(거의 필수) 코드의 이전 버전으로 되돌리고, 다른 어떤 것에도 영향을 주지 않고 특정 기능을 분기 및 개발할 수 있고, 분산된 특성으로 인해 데이터 손상으로부터 안전을 유지할 수 있기 때문입니다.
또한 쉽게 구현된 암호화 및 교차 OS 호환성은 물론 비동기식 비선형 워크플로를 제공하므로 어디에 있든 프로젝트의 일부 측면에서 작업할 수 있습니다.
기본적으로 git을 사용하지 않는다면 한 손은 등 뒤로 묶인 채 코딩하게 됩니다.
필수 어휘
git을 처음 사용하기 시작하면 겁이 날 수 있습니다. 과거에 어떤 형태의 버전 제어도 사용한 적이 없다면 명령과 개념이 완전히 생소하게 보일 수 있습니다. 그러나 당신은 그것들을 매우 빨리 집어들 것입니다.
저장소:
종종 repo 라고 합니다. 리포지토리는 git을 사용하여 추적하는 파일 및 폴더의 모음입니다. 저장소는 프로젝트에 대한 팀 변경 사항의 전체 기록으로 구성됩니다. 그것은 당신과 당신의 팀이 코드를 던지는 큰 상자입니다.
깃허브:
git repos용으로 가장 널리 사용되는 원격 저장소 솔루션입니다. 또한 프로젝트에 대한 액세스 권한을 설정하고, 버그를 추적 및 제출하고, 기능 요청을 수락하고, 저장소 알림을 구독하고, 명령줄을 사용하는 대신 그래픽 인터페이스를 활용할 수 있습니다. Repos는 기본적으로 공개로 설정되어 있지만 유료 계정에는 비공개 계정이 있을 수 있습니다.
저 지르다:
이것을 작업을 저장하는 것으로 생각하십시오. 저장소에 커밋하면 그 순간에 존재하는 파일을 모아서 타임캡슐에 넣는 것과 같습니다. 커밋은 원격 리포지토리로 푸시될 때까지 로컬 시스템에만 존재합니다.
푸시:
푸는 것은 커밋의 버터에 빵입니다. 커밋은 파일을 타임캡슐에 던지고 푸시는 캡슐을 우주로 발사하는 것입니다. 푸시는 기본적으로 커밋을 클라우드에 동기화하는 것입니다(다시 말하지만 아마도 Github). 한 번에 여러 커밋을 푸시할 수도 있습니다. 오프라인에서 작업하고, 많은 작업을 수행한 다음, 달콤하고 달콤한 Wi-Fi를 사용하여 문명으로 돌아오면 모든 작업을 Github에 푸시할 수 있습니다.
나뭇 가지:
git repo를 나무로 생각할 수 있습니다. 작동되는 소프트웨어인 나무의 줄기를 마스터 분기라고 합니다. 그것이 바로 라이브로 가는 것입니다. 그 나무의 가지를 가지라고 합니다. 이들은 기본 코드베이스에서 파생된 별도의 코드 인스턴스입니다. 단일 기능 또는 실험적 패치를 위해 분기할 수 있습니다. 분기를 통해 소프트웨어의 무결성을 유지할 수 있으며 완전히 잘못된 작업을 수행하면 되돌릴 수 있습니다. 또한 팀의 방식(또는 팀의 방식)에 방해가 되지 않고 작업을 수행할 수 있습니다.
병합:
분기가 다듬어지고 버그가 없고(적어도 말할 수 있는 한) 기본 코드베이스의 일부가 될 준비가 되면 마스터 분기에 병합됩니다. 병합은 말 그대로 두 가지를 통합하는 것입니다. 새 코드나 업데이트된 코드는 코드베이스의 공식 부분이 됩니다. 병합 지점에서 분기하는 사람은 자신의 분기에도 이 코드를 갖게 됩니다.
클론:
리포지토리를 복제하는 것은 소리가 나는 것과 거의 같습니다. 전체 온라인 리포지토리를 가져와 로컬 컴퓨터에 정확한 복사본을 만듭니다. 프로젝트 중간에 새 팀과 시작하거나 워크스테이션을 바꾸거나 손상된 저장소에서 다시 시작하는 등 여러 가지 이유로 이 작업을 수행해야 합니다.
포크:
포크는 복제와 매우 유사합니다. 로컬 시스템에 기존 저장소를 복제하는 대신 자신의 이름으로 해당 코드의 완전히 새로운 저장소를 얻게 됩니다. 이 기능은 주로 오픈 소스 소프트웨어에서 많이 발생하는 기존 코드베이스를 가져와 완전히 새로운 방향으로 가는 데 사용됩니다. 개발자는 작동하는 기본 아이디어를 보았지만 다른 방식으로 가고 싶어합니다. 포크는 이를 가능하게 합니다. 자신의 개인 샌드박스처럼 다른 개발자의 저장소에서 플레이할 수도 있습니다. 그리고 그들이 좋아할 것이라고 생각하는 일을 하면 병합되도록 끌어오기 요청을 할 수 있습니다.
풀 리퀘스트:
풀 요청은 저장소의 마스터 브랜치로 가져오기(또는 병합)하기 위해 만든 변경 사항(분기 또는 포크에서)에 대한 요청을 제출할 때입니다. 지금이 큰 시기입니다. 마법이 일어나는 곳입니다. 풀 리퀘스트가 승인되면 공식적으로 소프트웨어에 기여한 것이며 Github은 당신이 한 일을 영원히 보여줄 것입니다. 그러나 어떤 이유로든 pull 요청이 거부된 경우 거부자는 요청이 거부된 이유와 수락을 위해 무엇을 할 수 있는지에 대한 피드백을 제공할 수 있습니다.
시작하기 및 필수 명령
나쁘지 않았어, 그렇지?
오른쪽. 이제 git이 무엇인지 명확하게 이해했으므로 자세히 살펴보고 손을 더럽힐 차례입니다.
그러나 이 기회를 빌어 여러분이 git과 상호 작용하기 위해 명령줄을 사용하고 있다고 가정한다는 점에 유의해야 합니다. 물론 그래픽 git 클라이언트가 있지만 (그리고 Github에서는 웹 인터페이스를 통해 거의 모든 작업을 수행할 수 있습니다.) 이 게시물의 목적을 위해 우리는 그것들을 신경 쓰지 않을 것입니다. 터미널 외부에서 몇 가지 작업을 수행하지만 명령줄이 새로운 BFF가 될 것입니다. 그래서 우리도 함께 가고 있습니다.
Git 설치 방법
Git(아마도)은 컴퓨터에 설치되어 있지 않으므로 거기에 설치해야 합니다. 운 좋게도 Linux, Mac 또는 Windows에서 git을 설치하는 것은 매우 쉽습니다.
Linux의 경우 터미널을 열고 sudo apt-get install git-all을 입력합니다 (Ubuntu에 있는 경우. 그렇지 않은 경우 사용 중인 다른 배포판에 대한 모든 Linux 패키지 설치 명령 목록이 있습니다).
Windows에서는 간단합니다. 설치 프로그램을 다운로드하고 실행합니다.
Mac에서는 터미널을 열고 git 을 입력하기만 하면 됩니다. git이 설치되어 있지 않으면 다음과 같이 표시됩니다.

설치를 클릭하면 바로 사용할 수 있습니다.
보다? 매우 쉽습니다!
힘내 사용
여기에서 재미가 시작됩니다. 이제 git이 설치 되었으므로 ... git-r-done을 할 시간입니다! 하! 그러나 이제 이 놀라운 작은 명령줄 마법사를 사용하는 방법을 자세히 살펴보고 배울 때입니다. 그리고 Github보다 시작하기에 더 좋은 곳이 어디 있겠습니까?
그러니 계속해서 새 Github 계정에 등록하십시오(또는 이미 계정이 있는 경우 로그인하세요. 잠시 후 연락 드리겠습니다).
Github은 공개 리포지토리에 대해 무료이며 가격에 비공개 리포지토리를 가질 수 있습니다. (참고: 덜 알려져 있지만 멋진 장소인 Bitbucket에서 무료 개인 저장소를 얻을 수 있습니다.) 대부분의 경우 Github의 무료 옵션은 대부분의 사람들에게 적합하지만(또한 살아있는 이력서와 같은 기능을 합니다!), 일부 클라이언트와 고용주는 개인 정보 보호 및 보안이 필요하므로 옵션이 있는 것이 좋습니다.

그런 다음 첫 번째 저장소를 설정할 준비가 된 것입니다! 이메일과 그 모든 재미있는 것들을 확인한 후.


먼저 Github에 리포지토리를 설정하고 싶을 것입니다. 컴퓨터에서 한 다음 업로드할 수도 있지만 웹에서 먼저 하는 것이 더 간단합니다.

이 리포지토리의 라이선스 또는 .gitignore에 대해 걱정하지 않습니다. 이것은 실제 소프트웨어가 아니기 때문에 걱정할 필요가 없지만 프로덕션의 경우 .gitignore를 사용하면 분명히 저장소 디렉토리에 있는 파일을 무시할 수 있습니다. 여기에서 소프트웨어에 필요한 라이선스를 읽을 수 있습니다.
그러나 나는 README 파일로 리포지토리를 초기화하고 있습니다. 이 파일은 프로젝트의 기본 문서를 유지하는 데 사용해야 합니다. 나는 작업할 때 주요 변경 사항, 할 일 목록 및 다양한 종류의 메모를 추적하는 도구로 사용하는 경향이 있습니다. 그러나 그것은 개인 프로젝트에 관한 것입니다. 팀 리더마다 기대치가 다릅니다.
이제 리포지토리가 Github에 있으므로 복제를 통해 로컬 시스템으로 가져올 차례입니다. 리포지토리 오른쪽의 파일 목록 바로 위에 "복제 또는 다운로드"라는 녹색 버튼이 표시됩니다. 클릭하면 다음과 같이 표시됩니다.

복제 중이므로 HTTPS를 사용한 복제에 대한 부분을 제외하고는 모든 것을 무시할 수 있습니다. 구성할 필요가 없습니다. 푸시할 때 사용자 이름과 비밀번호만 입력하면 됩니다.

하지만 먼저 로컬 컴퓨터에서 저장소를 어디에 둘 것인지 설정해야 합니다. 터미널을 엽니다. (Windows 사용자는 Windows Powershell이라는 프로그램을 검색하여 엽니다. 또한 마우스 오른쪽 버튼을 클릭하고 "관리자 권한으로 실행"을 선택하는 것이 좋습니다.)
배워야 할 첫 번째 명령은 ls 입니다. 현재 디렉토리의 모든 항목이 나열 됩니다. 일을 단순하게 유지하기 위해 dev 폴더를 컴퓨터의 홈 디렉토리에 라이브로 만들겠습니다. mkdir dev 를 사용하여 dev 라는 디렉토리 를 만들 수 있습니다. 아주 간단하죠? 다시 ls 하면 새 폴더가 나열됩니다.

그런 다음 디렉토리 변경 명령인 cd dev 를 사용하여 새 디렉토리로 이동하려고 합니다. 보세요, 명령줄은 전혀 무섭지 않습니다! 이전 디렉토리로 돌아가야 하는 경우 cd .. 를 사용하면 됩니다.
당신의 새로운 dev에 폴더 안에 들어가면,이 파티를 이눔하는 그것의 시간을 시작했다. 허허허허.
Github에서 녹색 "복제 또는 다운로드" 버튼을 클릭한 후 나타나는 URL을 복사하여 시작합니다. 다음과 같이 보일 것입니다: https://github.com/bjk1337/myfirstrepo.git
Github에서 Git 리포지토리를 복제하는 명령
- 자식 클론 https://github.com/bjk1337/myfirstrepo.git
- 엘
- cd myfirstrepo – 또는 리포지토리에 이름을 지정한 이름
- 엘
그 후 터미널은 Github에서 설정한 README 파일을 보여주는 다음과 같아야 합니다. 축하 해요! Git을 처음 사용했고 이제 개발을 시작할 준비가 되었습니다.

더 니티 지티 껄끄 러운
이제 컴퓨터에 저장소가 있으므로 이를 사용하는 방법을 배워야 합니다. 그래서 조금 빨리 감기를 해서 당신이 멋진 프로젝트에서 잠시 일하고 있고 디렉토리에 몇 개의 파일이 있다고 가정해 봅시다. 커밋하고 Github에 푸시할 시간입니다.
Git 리포지토리 추가 및 커밋
- git status – 이 명령은 다음 커밋을 위해 목록에 추가되지 않은 파일을 보여줍니다. 대부분의 터미널 앱에서 추가/추가되지 않은 파일은 각각 빨간색/녹색입니다.
- 자식 추가 . – 를 추가하여 . 명령이 끝나면 git에게 디렉토리의 모든 것을 포함하도록 지시합니다. 단일 파일을 추가하려면 파일 이름을 사용하십시오. functions.php 와 같은.
- git status – 사용 여부에 따라 . 또는 파일 이름, 추가한 모든 항목은 이제 녹색이어야 합니다.
- git commit -m "빈 파일 3개 추가" – 이 파일을 커밋할 때 팀원(또는 미래의 자신)에게 해당 커밋에 무엇이 들어 있는지 정확히 알 수 있도록 빠른 메시지도 남겨야 합니다. 표준 git 규칙에 따르면 가능한 한 간결하고 구체적이어야 하며 동사의 현재 시제를 사용하여 메시지를 시작해야 합니다.
이제 터미널에 많은 텍스트가 표시되며 다음과 같아야 합니다. 그러나 이제 이 모든 것이 무엇을 의미하는지 알 것입니다!

Github와 같은 원격 Git 리포지토리로 푸시
repo로 푸시하는 것은 그보다 훨씬 쉽습니다.
- git status – 항상 상황이 어떻게 보이는지 확인하고 올바른 분기에 있는지 확인해야 합니다.
- 자식 푸시
- Github의 사용자 이름과 암호를 입력하십시오 . 입력하는 동안에도 암호 필드는 비어 있습니다. 괜찮아. 입력하고 엔터를 치시면 됩니다. SSH를 사용한 경우 이 단계를 건너뜁니다.

Github 계정으로 이동하여 리포지토리를 확인하면 파일이 거기에 있고 메시지를 커밋하는 등 모든 것이 가능합니다!

분기 및 병합
분기 및 병합을 처리하는 데 익숙해야 하는 마지막 두 명령입니다. 위에서 말했듯이 브랜치에서 작업하면 메인 코드베이스를 안전하게 유지하고 변경 사항이 모두 멋져지면 모든 것을 다시 병합할 수 있습니다.
그들은 약간 까다로울 수 있으므로 멋지게 연주하려면 약간의 자극이 필요할 수 있습니다.
- git checkout -b “branch1” – 이 명령은 제목을 붙인 새 분기를 만들고 작업 분기로 교체합니다. git checkout 및 git 분기 명령을 하나의 편리한 코드 줄로 결합합니다.
- touch Awesome.html – 이것은 내가 마스터에 다시 병합할 새 html 파일을 생성하기 위한 필러 명령일 뿐입니다.
- 그리고 이전과 마찬가지로 git status, git add Awesome.html, git commit -m "create Awesome.html"을 수행합니다.
- git status 를 다시 보면 모든 것이 원래대로인지 확인할 수 있습니다.

병합하기 전에 푸시하려고 하면 리포지토리의 출처를 설정해야 한다는 메시지가 표시됩니다. Origin 은 컴퓨터가 원격 저장소로 간주하는 것에 대한 이상한 명명 규칙입니다. 그래서 기본적으로, 당신은 단지 마스터에게 했던 것처럼 이 브랜치를 Github에 푸시해도 괜찮다고 말하는 것입니다. 다음은 Stack Overflow의 git origin 에 대한 좋은 스레드입니다.
그걸 없애면 branch1 –> branch1로 갔다고 알려줄 것입니다.

git checkout master 를 사용하여 마스터 브랜치로 다시 전환할 수 있습니다(스왑이 아닌 새 브랜치를 생성할 때만 사용하기 때문에 이번에는 체크아웃 -b가 없습니다. 아래 스크린샷에서 내 명령이 섞여서 git 브랜치 마스터를 시도했습니다. 마스터가 이미 존재하기 때문에 성공하지 못했습니다.
- git status – 언제나처럼.
- git merge branch1 – 해당 분기의 모든 것이 정상 이므로 계속해서 병합할 수 있습니다.
- 상태를 다시 git 하면 우리는 1 커밋으로 origin/master 보다 앞서 있음을 알 수 있습니다. 이는 Github에 대한 모든 변경 사항을 푸시하지 않았음을 의미합니다.
- 동기화를 위해 git push !

Github 계정을 확인하십시오. 수행한 모든 작업이 거기에 반영된 것을 볼 수 있습니다. 다양한 커밋 메시지, 우리가 만든 브랜치 및 커밋 수, 저장소에 대한 기여자 및 수행한 작업도 볼 수 있습니다.

그리고 그게 다야! 축하합니다! 기본 git 워크플로를 흔들었습니다. 당신은 자식이보다 더 복잡한 물건 방법, 방식, 방법을 할 수 있지만, 이것은 아주 가까이 그냥 ... 시작 gitting있을 때 당신은 아마 매일 사용할 것이다 무슨이다.
오, 한 가지 더!
이 기사에서 사용한 Github Repo, myfirstrepo 는 아직 살아 있습니다. 자유롭게 확인하고, 가지고 놀고, 포크하고, 복제하거나, git 사용에 익숙해질 수 있다고 생각하는 모든 것이 가능합니다. 즐거운 시간 보내세요! (그리고 나와 내 모든 말장난을 참아 주셔서 감사합니다.)
MchlSkhrv / shutterstock.com의 기사 축소판 이미지
