git의 실용적인 소개-두 발 점프

만약 당신이 개발자라면 버전 제어 시스템git를 들어본 적이 있을 것입니다.만약 당신이 그것을 아직 사용하지 않았거나, 많이 사용하지 않았다면, 당신은 모든 다른 단어에 놀랄 수도 있습니다. 제출, 지점, 추송, 체리 따기, 주소 재정립. 이것들은 모두 무엇입니까?왜 버전 제어가 이렇게 어렵습니까?만약 내가 잘못을 저질렀는데, 결과적으로 모든 것을 잃었다면 어떻게 해야 합니까?
우선,git는 당신이 한 어떤 일도 잃지 않습니다.찾기 어려울 수도 있지만 절망하지 마세요.우리가 데려다 줄게.
하지만 처음부터 변화의 위협을 잃지 말자.
이것은 이 시리즈의 첫 번째 글입니다. 명령줄에서 저장소를 설정하는 방법, 변경 사항을 추가하고 저장하는 방법, 이름과 이메일 주소를 메타데이터로 변경 사항에 추가하는 방법,git 별명을 어떻게 정의하는지, 컨트롤러에서 변경된 예쁜 git 트리를 만드는 방법을 알려 줍니다.
(표지 사진은 Nerry Burg에서 FreeImages으로 바뀐다.)

버전 관리를 수행하는 이유


파일을 추가하거나 내용을 바꾸면 진도를 저장하는 방법이 필요합니다.파일을git 등 버전 제어 시스템에 저장하는 것은 하드디스크에만 저장하는 것이 아니라, 파일의 역사 기록과 다른 메타데이터를 가지고 있는 것과 다르다. 원한다면, 구 버전으로 복원해서, 언제, 누가 도입한 변경 사항인지, 그리고 의미 있는 메시지를 작성했다면, 왜 변경을 해야 하는지 확인할 수 있다.

너의 임무


만약 당신의 임무가 동물 백과사전 한 권을 만드는 것이라고 가정해 보세요.이것은 대량의 업무와 문장을 재편성해야 하기 때문에, 너는 너의 문장이 안전하다는 것을 알고 싶다.만약 당신의 편집자가 어느 날 그 부채 홍학에 관한 글을 처리하고 다음날 그들의 생각을 바꾸라고 말한다면, 당신은 아마도 약간의 변경을 회복하고 싶을 것이다.변경 사항을 제출하기 위해git 저장소를 시작하기로 결정했습니다.

설치 프로그램


git 저장소 초기화


셸에서 git init을 실행하여 새 디렉토리를 만들고git 저장소를 초기화합니다.

보시다시피 숨겨진 폴더 .git을 만듭니다.이 폴더를 다시 삭제하면 디렉터리는git 저장소가 아닙니다.

프로비저닝


다른 사람에게 당신이 도입한 변경 사항을 알리기 위해서 누구에게 연락해야 하는지 알려 주십시오. 왜냐하면 문제가 있을 수도 있기 때문입니다. (혹은 코드를 실행하고 싶을 때, 변경 사항이 1년 전에 완성되었는데, 지금은 기억이 나지 않기 때문입니다.) git 설정에 이름과 이메일을 설정해야 합니다.
현재 로그인한 사용자 전역에 대해 --global 수식자를 사용하여 이 동작을 수행할 수 있습니다. 이 수식자는 컴퓨터에서 이 사용자가 제출한 모든 저장소에 이 명령을 설정하거나, --local 로고를 사용하여 이 명령을 실행하면 이 저장소에만 이 동작을 실행하거나, "local"이 기본 설정이기 때문에 이 로고를 완전히 무시할 수 있습니다.
git config --global user.name "Evelyn Example"
git config --global user.email [email protected]

콘텐츠 시작


이제 우리는 이미 이 문제를 해결했으니, 우리 시작합시다!
git가 자동으로'main'이라는 지점을 만들었음을 알 수 있습니다. (설정에 따라'master '라고도 할 수 있습니다. git init를 실행할 때 만든 기본 지점의 이름을 master 이외의 이름으로 바꾸려면 git config --global init.defaultBranch main을 실행하거나, main이 아닌 원하는 이름을 실행할 수 있습니다.)
개발 시 사용하는 방법에 따라 다른 지점을 사용한 다음 승인이 필요한 합병 요청을 만들어서 변경 사항을 주 지점으로 이동하거나 주 지점만 사용할 수 있습니다.
만약 우리가 이 백과사전의 현재 유일한 합작자라고 가정한다면, 우리는 주요 지점을 사용하여 변경할 수 있고, 번거로움을 겪지 않을 것이다.(만약 여러 사람이 한 지점에서만 일한다면 이러한 변경 사항을 계속 심사하기 위해 고도의 조율이 필요한 팀이다)

파일 추가


우선, 우리는 우리가 글을 쓰고 싶은 동물 목록을 만들고 싶을 수도 있다.우리는 파일 animals-to-write-about을 만들고 house cat을 추가했다. 모두가 고양이를 좋아하는 것 같아서 우리 백과사전에는 고양이에 관한 글이 필요하다.

저장소의 현재 상태를 알고 싶으면 git status을 실행하십시오.
Git는 우리의 파일이 추적되지 않았다고 말했는데, 이것은 무엇을 의미합니까?
만약git가 아직 어떤 파일을 모른다면, 이 파일은 추적되지 않습니다.git에 추가하려면 git add <file>을 실행하거나 git add .이 있는 모든 파일만 추가할 수 있습니다. (마지막 점은 현재 디렉터리와 하위 디렉터리의 모든 파일을 표시합니다.)다음 단계에서 우리는 git commit 이 파일들을 만들 수 있다.제출한 파일만 잃어버리지 않기 때문에, 우리는 항상 보류하고 싶은 변경 사항을 제출하길 희망합니다.-m 로고를 추가하고 인용부호나 단인용부호에 주석을 추가하면 제출 메시지를 추가할 수 있습니다.이것은 항상 현재의 대문자 동사로 시작해야 한다.제출 메시지를 어떻게 작성하는지에 대한 더 많은 알림은 this article by Chris Beams을 참조하십시오.

Git 별명


방금 변경된 git lg 명령은 무엇입니까?이것은git의 별명이다.이것은 그 백과사전을 위해 너의 모든 타자 정력을 절약할 수 있는 편리한 방법이다.
Linux/MacOS에서 ~/.gitconfig 파일을 편집하여 별명을 추가할 수 있습니다.내 목록은 다음과 같습니다.
# This is Git's per-user configuration file.
[user]
    email = [email protected]
    name = S Heins
[credential]
    helper = osxkeychain
[alias]
    s = status
    c = commit -m
    co = checkout
    lg = !clear && git log --all --graph --pretty='format:%C(auto)%h%d %s  %C(magenta)[%an] (%ad)%C(reset)' --date=format:'%d.%m.%y %H:%M'
    p = pull --all -p
[core]
    excludesfile = /Users/heinss/.gitignore_global
[commit]
    template = /Users/heinss/.gitmessage.txt
[pull]
    rebase = true
[init]
    defaultBranch = main
명령줄에 예쁜 git 트리를 만들기 위해 lg에 별명을 추가하는 것을 강력히 권장합니다.

Outlook: 원격 장치 및 분기 사용


다음 글은 리모컨을 어떻게 사용하는지 연구하여 로컬 기기 이외의 다른 곳에 작업을 저장하고 지점을 어떻게 사용하는지 방지할 것입니다.
여러 협력자와 함께 작업을 한다면, 지점과 함께 버전 제어 서비스 (예:github 또는gitlab) 를 사용하면 요청을 만들고, 이 변경 사항을 주 지점에 전파할 수 있습니다. 그러면 변경 사항이 주 지점에 들어가기 전에 가장 쉽게 변경 사항을 볼 수 있습니다.변경 사항을 한 지점에서 다른 지점으로 전파하는 것을 한 지점을 다른 지점으로 통합하는 것이라고 한다.
그렇지 않으면 협력자는 주 지점에서 약속을 하고 심각한 오류가 발생하면 변경 사항을 되돌려야 한다.또는 제출에 재작업이 필요할 경우 추가 재작업 제출을 추가해야 합니다. 이로 인해 트리가 통합되기 전에 제출에 추가할 수 있는 것이 아니라 비대해질 수 있습니다.비록 하나의 지점만 사용하는 작업 패턴이 존재하지만;이것은 주간에 기초한 개발이라고 불린다.
그러나 내가 일했던 대부분의 팀은 지점과 이른바 합병 요청, 즉 요청 끌기를 선택했다.
하지만 다음 글에는 지점을 어떻게 사용하는지에 대한 내용이 더 많이 실릴 것입니다!

결론 및 명령 요약


우리는 첫 번째 로컬git 저장소를 만들고 그 안에 파일을 추가하고 제출했습니다.
다음은 기억해야 할 명령들입니다.
  • git init 로컬git 저장소 초기화
  • git status은 저장소 및 포함된 파일의 현재 상태를 표시합니다.
  • git add . 모든 파일 추가
  • git commit -m 'My message' 변경 사항을 커밋 메시지로 커밋합니다(이 변경 사항이 지점으로 전파되어 분실을 방지합니다).
  • ~/.gitconfig의 전역git 구성 파일에 다음과 같은 옵션을 설정합니다.
  • git config --global user.name "Evelyn Example" 전역 설정 작성자 이름(모든git 저장소에 적용)
  • git config --global user.email [email protected] 글로벌 설정 작성자 이메일 주소
  • git config --global init.defaultBranch main 새 저장소를 초기화할 때 기본 분기 이름을 main 글로벌
  • 으로 설정

    좋은 웹페이지 즐겨찾기