Dev Ops/Git Git 사용법 VII (feat.Github)
  • 728x90
    반응형


    Git 사용법

    (feat.GitHub)




    커밋 가이드라인



    커밋 메시지를 잘 작성하는 가이드 라인을 알아두면 다른 개발자와 함께 일하는 데 도움이 된다.


    Git 프로젝트의  Documentation/SubmittingPatches  문서를 참고하자.


    먼저 공백문자를 깨끗하게 정리하고 커밋해야 한다.


    Git은 공백문자를 검사해볼 수 있는 간단한 명령을 제공한다.


    커밋을 하기 전에  git diff --check  명령으로 공백 문자에 대한 오류를 확인할 수 있다.


    커밋을 하기 전에 공백 문자에 대해 검사를 하면 공백으로 불필요하게 커밋되는 것을 막고 이런 커밋으로 인해


    불필요하게 다른 개발자들이 신격 쓰는 일을 방지할 수 있다.


    각 커밋은 논리적으로 구분되는 Changeset 이다.


    최대한 수정사항을 한 주제로 요약할 수 있어야 하고 여러 가지 이슈에 대한 수정사항을 하나의 커밋에 담지 않아야 한다.


    여러 가지 이슈를 한꺼번에 수정했다고 하더하도 Staging Area 를 이용하여 한 커밋에 이슈 하나만 담기도록 한다.


    작업 내용을 분할하고 각 커밋마다 적절한 메시지를 작성한다.


    같은 파일의 다른 부분을 수정하는 경우에는  git add -patch  명령을 써서 한 부분 씩 나누어 Staging Area 에 저장해야 한다.


    여러번 나누어 커밋하는 것이 다른 동료가 수정한 부분을 확인할 때나 각 커밋의 시점으로 복원해서 검토 할 때


    이해하기 훨씬 쉽다.


    일반적으로 커밋 메시지를 작성할 때 사용하는 규칙이 있다.


    메시지의 첫 라인에 50자가 넘지 않는 아주 간략한 메시지를 적어 해당 커밋을 요약한다.


    다음 한 라인은 비우고 그다음 라인부터 커밋을 자세히 설명한다.


    예를 들어 GIt 개발 프로젝트에서는 개발 동기와 구현 상화의 제약 조건이나 상황 등을 사제하게 요구한다.


    아래 내용은 Tim Pope 가 작성한 커밋 메시지의 템플릿 이다.



    영문 50글자 이하의 간략한 수정 요약


    자세한 설명, 영문 72글자 이상이 되면 라인 바꿈을 하고 이어지는 내용을 작성한다.


    특정 상황에서는 첫 번째 라인이 이메일


    메시지의 제목이 되고 나머지는 메일 내용이 된다.


    빈 라인은 본문과 요약을 구별해주기에 중요하다.


    이어지는 내용도 한 라인 띄우고 쓴다.


    - 목록 표시도 사용할 수 있다.


    - 보통 '-' 나 '*' 표시를 사용해서 목록을 표현하고 


    표시 앞에 공백 하나, 각 목록 사이에는 빈 라인 하나를 넣는데 이건 상황에 따라 다르다.



    Git 개발 프로젝트에는 잘 쓰인 커밋 메시지가 많으므로 프로젝트를 내려받아서  git log --no-merges  명령으로 꼭 살펴보기를 권한다.






    계정 만들고 설정하기



    https://github.com/ 방문해서 사용자 이름과 이메일 주소, 암호를 입력하고 'Sign up for GitHub' 를 선택한다.


    Note.  무료 계정도 GitHub 기능을 전부 사용할 수 있다. 딱  한 가지 제약이 있는데 모든 사람이 읽을 수 있는 

    공개 프로젝트만 만들 수 있다. GitHub에 결제하면 비공개 프로젝트도 만들 수 있다.



    SSH 사용하기



     https://  프로토콜로도 Git 저장소를 사용하는 데 부족함 이 없다. 간단히 사용자 이름과 암호로 인증만 하면 된다.


    공개 프로젝트를 Clone 하는 데는 인증도 필요 없다.


    만든 계정은 프로젝트를 Fork 하고 그 프로젝트에 Push 할 때가 돼야 필요하다.


    SSH : 시큐어 셸(Secure Sheel SSH) 은 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을

    실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그 프로토콜을 가리킨다.


    rsh, rlogin, 텔넷 등을 대체하기 위해 설계되었으며 강력한 인증 방법 및 안전하지 못한 네트워크에서 안전하게

    통신을 할 수 있는 기능을 제공한다. 기본적으로는 22번 포트를 사용한다.


    SSH 리모트를 쓰려면 공개키를 설정해야 한다. 


    Window 에서 Git과 설치 후 ssh 키 만들기


    윈도우에 Git이 설치되어 있다면 Git과 함께 설치되는 MINGW32가 제공하는 ssh-keygen을 이용하여 SSH 키를 생성할 수 있다.


    Git bash를 윈도우에서 실행하면 리눅스 명령을 사용할 수 있다.


    아래와 같이 ssh-keygen을 이용하여 RSA 키를 생성한 후 생성 파일 목록을 조회 한다.


    Figure. git bash에서 ssh-keygen을 이용하여 SSH키 생성


     .ssh/id_rsa  키를 저장하고 싶은 디렉토리를 입력하고 암호를 두 번 입력한다. 


    이때 암호를 비워두면 키를 사용할 때 암호를 묻지 않는다.


    공개키는 아래와 같이 확인 할 수 있다.




    GitHub SSH Key 등록


    설정 에서 "SSH and GPG keys" 버튼을 선택하고 키이름을 입력한 후 파일의 내용을 key 입력 칸에 복사해 넣는다. 


    그리고 "Add key" 버튼을 클릭한다.


    Figure. "계정 설정" 링크


    Note. SSH key 이름은 기억하기 쉬운 걸로 짓는다. "내 노트북" 이나 "회사 계정" 같이 구분하기 쉬운 이름으로 짓는다.

    나중에 키를 삭제할 때 헷갈리지 않고 바로 알 수 있도록 짓는 것이 중요하다



    사용자 이메일 주소



    GitHub는 Git 커밋에 있는 이메일 주소를 보고 어떤 사용자인지 식별한다.


    사용자가 이메일 주소를 여러개 사용해서 커밋해도 GitHub에 그 메일을 모두 등록하기만 하면 된다.


    "Emails" 화면에서 모두 등록한다.


    Figure. 이메일 주소 추가하기.



    투팩터 인증



    더 안전한 보안을 위해서 "2FA"(투팩터 인증)을 설정한다. 2FA는 최근 들어 인기가 높아지는 인증 메커니즘이다.


    암호를 해킹당했을 때 위험을 완화하기 위해 사용한다. 2FA를 활성화 시키면 GitHub에 로그인 할 때 인증수단이 두 가지 필요하다.


    Figure. Security 탭에 있는 2FA


    "Set up two-factor authentication" 버튼을 클릭하면 2FA 설정 페이지로 이동한다.


    "TOTP(Time based One-Time 암호" 를 생성하는 스마트폰 앱을 사용하는 방식을 고르거나  GitHub가 인증 코드를 SMS로 전송해주는


    방식을 고를 수 있다. 



    GitHub 새 저장소 만들기



    저장소를 새로 만들고 프로젝트 코드를 공유해 보자.

    대시보드 왼쪽에 있는 "New repository" 버튼을 클릭하면 저장소를 만드는 폼으로 이동한다.

    Figure. "Repositories" 박스


    프로젝트 이름을 넣는 것만 필수다. 다른 것은 생략해도 된다. 


    "Create Repository" 버튼을 클릭하면  <user>/<project_name>  위치에 GitHub 저장소가 생긴다.


    Figure. "새 저장소" 만들기.



    README



    GitHub는 저장소 랜딩 페이지를 보여줄 때 README 파일을 이용해서 보여준다.


    README 파일 형식에 상관 없이 잘 보여준다.


     README  파일이든  README.md  파일이든  README.asciidoc  파일이든 GitHub가 자동으로 렌더링 해서 보여준다.


    많은 사람이 이 파일에 저장소나 프로젝트에 처음 방문한 사람들에게 필요한 정보를 정리해 둔다.


    보통 아래와 같은 내용을 쓴다.


    - 어떤 프로젝트인지


    - 설정하고 설치하는 방법


    - 사용법과 실행 결과에 대한 예제

    - 프로젝트의 라이센스

    - 기여하는 방법

    GitHub는 README 파일을 렌더링하는 것이기 때문에 이미지나 외부 링크를 적어도 된다.







    728x90
    반응형

    'Dev Ops > Git' 카테고리의 다른 글

    [Git] .gitignore가 작동하지 않을 때 해결 법  (2) 2024.02.27
    PowerShell git log 한글 출력  (0) 2018.10.03
    Tortoise Git  (0) 2018.06.28
    Bonogit 저장소 생성 및 Sourcetree 사용  (0) 2018.06.27
    Git for windows server 2012 R2  (0) 2018.06.26
상단으로