Git 명령행에 대한 부드러운 설명

Git는 Linus Torvalds가 2005년에 작성한 버전 제어 시스템입니다.Linux 커널 프로젝트를 관리하기 위해 특별히 제작되었습니다.리눅스 커널 개발자가 리눅스 커널 개발자를 위해 작성했다고 할 수 있다.따라서git를 사용하는 초기 환경은 명령줄입니다.
현재 명령줄 (예를 들어 리눅스 핵 개발자) 에 익숙하지 않다면, 이것은 사람을 두려워하게 할 수도 있다.이렇게 많은 GUI 도구가 있으니, 너는 아마도 전혀 공부할 필요가 없다고 느낄 것이다.개발자로서git GUI가 백그라운드에서 어떻게 작동하는지 이해하는 것이 매우 도움이 될 것이라고 제안하고 싶습니다.일부 노력과 학습을 통해 당신은 곧git 명령행의 슈퍼 사용자가 될 것이다...아직 한참 남았어.
주의: 명확하게 보기 위해서, 나는git 출력을 약간 생략했다.

새git 저장소 만들기
터미널을 열고 다음 명령을 실행합니다.
    $ mkdir project 
    $ cd project
    $ git init
우리 방금 뭐 했지?
우리는 방금 빈git 저장소를 만들었습니다.
git 작업 영역의 상태를 보십시오:
    $ git status
    On branch master

    No commits yet

    nothing to commit (create/copy files and use "git add" to track)

작업 디렉토리에 파일 추가
다음 명령을 입력합니다.
    $ echo ‘hello world’ > hello.txt
상태를 다시 보려면 다음과 같이 하십시오.
    $ git status
    On branch master

    No commits yet

    Untracked files:
    (use "git add <file>..." to include in what will be committed)

      hello.txt

    nothing added to commit but untracked files present (use "git add" to track)

상태는 다음 단계에 무엇을 해야 하는지에 대한 단서를 제공합니다.
    $ git add .
Git는 새 파일이 있다는 것을 알고 저장소에 추가하려고 했지만 아직 제출하지 않았습니다.새로운 사용자에게 있어서, 이것은 왕왕 곤혹스러운 점이다.나는 git add가 약혼반지 같다고 생각한다.이것은 약속이지만, 우리는 아직 실현하지 못했다.
상태를 다시 한 번 살펴보겠습니다.
    $ git status
    On branch master

    No commits yet

    Changes to be committed:
      (use "git rm --cached <file>..." to unstage)

        new file:   hello.txt


약속할 때가 됐어요.
다음을 입력합니다.
    $ git commit -m “Commit first file to the repo”
축하합니다!우리는 이미 주요 지점에 첫 번째 약속을 했다.
우리는 우리가 현재 어느 지점에 있는지 어떻게 알 수 있습니까?
     $ git branch
     * master

새 브랜치 생성
터미널에 다음을 입력합니다.
    $ git checkout -b dev_llam
      Switched to a new branch 'dev_llam'
이렇게 하면 새 분기가 생성되고 분기로 전환됩니다.
우리는 지금 이 두 가지를 볼 수 있을 것이다.
    $ git branch
    * dev_llam
      master
"잠깐만??? 나는 cd에 새 디렉터리에 들어가지 않았어. 내가 어떻게 새로운 지점으로 전환했지?"라고 생각할 수도 있어.
다른 버전 제어 시스템에서 온 사용자들에게는 곤혹스러울 수도 있다.
나는 이것이 마치 누군가가 내 아래에서 양탄자를 끌어내서 새 양탄자로 바꾼 것 같았고, 나는 전혀 일어설 필요가 없었다.실제로 파일 시스템의 동일한 디렉토리에 있지만 분기가 아래에서 변경되었습니다.

우리 새 지점을 바꿉시다.
편집장님, 안녕하세요.두 번째 줄을 추가하여 당신이 누구인지 설명하세요.(예: "나는 리즈다.")
상태를 확인하면git에서 변경 내용을 알 수 있습니다.
    $ echo 'I am Liz.' >> hello.txt
    $ cat hello.txt
      hello world
      I am Liz.
    $ git status
    On branch dev_llam
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   hello.txt

    no changes added to commit (use "git add" and/or "git commit -a")

변경 사항을 추가하고자 합니다.
    $ git add .
이제 우리는 약속해야 한다.
    $ git commit -m “Saying who I am”

우리 지금까지의 역사를 봅시다.
터미널에서 다음을 입력합니다.
    $ git log --oneline
      187c6fa (HEAD -> dev_llam) Saying who I am
      deccda5 (master) Commit first file to the repo.
우리의 개발 지점에서, 우리는 지금 두 가지 약속을 가지고 있다.
참고: 메시지를 제출하기 전에 임의로 표시되는 문자를 제출 SHA라고 합니다.이 파일은 작성자와 날짜 정보를 포함하여 당신에게 유일무이한 것입니다.터미널에서 추적을 진행하면 출력이 달라질지 걱정하지 마십시오.
스님을 봅시다.
    $ git checkout master
    $ git log --oneline
      deccda5 (HEAD -> master) Commit first file to the repo.
    $ cat hello.txt
      hello world

합병할 때가 됐어!
우리는 우리의 변경 사항을 dev에서 마스터로 통합하기를 희망합니다.
목표 지점은 항상 당신이 있는 지점이라는 것을 기억하세요.자신이 어디에 있는지 확실하지 않으면 git branch을 사용하세요.
    $ git merge dev_llam
이제 마스터와 dev 지점이 같은 변경을 보았을 것입니다.
    $ git log --oneline
      187c6fa (HEAD -> master, dev_llam) Saying who I am
      deccda5 Commit first file to the repo.
    $ cat hello.txt
      hello world
      I am Liz.

클론은요?
다른 터미널 창을 열고 새로 만든 재구매 계약을 복제합니다.
    $ git clone /path/to/git/project project2
당신은 우리가 원시 프로젝트의 정확한 사본을 볼 수 있을 것이다.
    $ cd project2
    $ git log --oneline 
      187c6fa (HEAD -> master, dev_llam) Saying who I am
      deccda5 Commit first file to the repo.
    $ cat hello.txt 

당길까?
환매 협의를 갱신하기 위해서 우리는 원시/원격에서 해야 한다.
원본 항목을 열고 첫 번째 터미널 창으로 이동해서 변경하고 제출합니다.
   $ echo 'I love coffee!' >> hello.txt
   $ git add .
   $ git commit -m "Add line about my love of caffeine."
프로젝트 2가 열린 상태에서 두 번째 터미널 창으로 돌아가 상태를 확인합니다.
    $ git status
    On branch master
    Your branch is up to date with 'origin/master'.

    nothing to commit, working tree clean
이거 재미있다.우리 방금 원래 프로젝트 바꿨잖아?!?우리의 복제 프로젝트 (프로젝트 2) 는 원본 프로젝트와 이미 유행이 지났는지 모른다.
변경 사항을 가져와야 하기 때문입니다. (주의: 가져오는 것은 가져오는 것과 다르기 때문입니다.)
    $ git fetch origin master
    $ git status
      On branch master
      Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
        (use "git pull" to update your local branch)

      nothing to commit, working tree clean

위대하다지금 우리의 환매 협의가 갱신되었다...근데 우리 작업 목록은 아니야.
이것은 캡처는 로컬 리포만 업데이트하고, 캡처는 캡처해서 로컬 작업 영역에 통합하기 때문입니다.
git 출력에서 보듯이 당기자!
    $ git pull
    $ git log --oneline
      fb58b27 (HEAD -> master, origin/master, origin/HEAD) Add line about my love of caffeine.
      187c6fa (origin/dev_llam) Saying who I am
      deccda5 Commit first file to the repo.
예!우리 망했어!우리는 이미 원격 환매에서 커피 잔돈을 성공적으로 인출했다.
만약 네가 이 점을 할 수 있다면, 너는 기병이다!축하합니다!
이제 여러분은
  • 새git 저장소 만들기
  • 환매 협의에 서류 추가 및 제출
  • 분기 생성 및 결합
  • 클론 저장소
  • 변경 내용 가져오기 및 끌어오기
  • git와 네 손끝에 있는 명령행에서 일어날 수 있는 일들에 대한 식견이 있는 일별이었으면 좋겠다.

    좋은 웹페이지 즐겨찾기