자신에게 멋진 새로운 수작을 부리다

7338 단어 gitterminal
여러분 안녕하세요!
이번에 우리는 터미널에서 Git를 사용하여 일반적인 작업을 수행하는 여러 가지 방법을 토론할 것이다.
Git 기능에 대해 자세히 알아보고 GitHub (또는 GitLab, Bitbucket 등) 에서 로컬 작업공간과 GitHub의 변경 사항을 관리할 때 도구상자에 새로운 기술을 추가합니다.
그러니까 시작할 준비가 되면 시작합시다!

기초 지식


우리 대다수의 사람들에게 우리는git의 흔한 업무 흐름에 익숙하다. 이것은 마치...
원격 재구매에서 최신 변경 사항을 추출하고 코드를 처리하며 우리의 변경 사항을 추가하여 제출하고 원격 재구매로 전송합니다
일반적으로 대부분의 작업은 주 브랜치에서 이루어지지 않기 때문에 명령을 통해 생성할 수 있는 피쳐 브랜치를 사용합니다.
git branch {branchName}
그리고 우리는 최근에 만든 지점으로 이동하거나 모든 사람이 가장 좋아하는 단축키를 사용할 수 있다
git checkout -b {branchName}
브랜치를 사용하는 것은 Git가 더 재미있어질 때이다.지점은 원격 재구매에 존재할 수도 있고 로컬 사본에 존재할 수도 있다
일반적으로, 우리는 로컬에서 지점을 만든 다음 원격 리셋으로 전송합니다. 비록 우리는 다른 방식으로 지점을 만들 수 있지만(즉, 원격에서 지점을 만들고 로컬에서 끌어내는 것)
현재, 우리는 어떤 지점이 존재하는지, 그리고 그것들이 일치하는 원격 지점이 있는지 어떻게 알 수 있습니까?
우선, 우리는 확실히 원격 환매가 우리의 현지 환매에 연결되어 있음을 확보한다.우리는 git remote 명령으로 이 점을 검사할 수 있다.
비록 우리가 --verbose 표지나 -v 를 줄임말로 사용할 때 더욱 유용하지만, 이렇게
git remote -v
원격 재구매가 있다는 사실을 알게 되면 기존 지점이 로컬과 git branch 에 있으며, 여기에는 모든 지점이 만들어지는 것이 나열됩니다.

우리는 -v 로고를 통해 그것들에 대한 더 많은 정보를 얻을 수 있습니다. 이 로고는 이 지점에서 마지막으로 제출한 id와 이름을 보여 줍니다.

마지막으로 제출한 정보뿐만 아니라 로컬 지점이 가리키는 원격 지점의 이름도 표시합니다(있는 경우).

일을 한 차원 높이다


이제 우리는 지점을 만들고 만든 후에 이동하는 방법을 알게 되었다.
서로 다른 지점 사이를 내비게이션하기 위해서, 우리는 -vv 명령과 지점의 이름을 사용해야 한다.
비록 교묘한 작은 기교가 두 지점 사이를 왔다갔다하며 항해할 수 있지만, 매번 그들의 이름을 쓸 필요는 없다.이렇게 하려면 명령을 사용하십시오.
git checkout -
파일을 변경하면 작업 디렉토리에 저장하고 임시 영역에 추가한 다음 원격으로 보내기 전에 제출할 수 있습니다.
Git 히스토리에 변경 사항을 제출하면 몇 가지 작업을 수행할 수 있습니다. 예를 들어 불필요한 일이 발생하면 변경 사항을 복구할 수 있습니다.
표준 명령은 git checkout 입니다. 만약 단독으로 사용한다면 Git 기본 편집기를 열어 메시지를 제출할 수 있도록 합니다.
명령을 실행하면 Git에게 기본 편집기로 사용할 편집기를 알려줄 수도 있습니다.
git config --global core.editor "your_editor_of_choice"
내 예에서, 나는 Vim (모든 텍스트 편집기의 전신) 을 사용하지만, 당신은 나노, emacs, 심지어 VSCode를 사용할 수 있습니다.
현재, 만약 우리가 일반적인 메시지가 있는 제출을 만들었다면, 편집기 설정을 시도하고 있기 때문에, 이 메시지를 더 설명적인 메시지로 바꾸고 싶습니다.이렇게 하려면 명령을 실행하십시오.
git commit --amend -m "More descriptive commit message" 
현재 저희가 제공한 메시지를 사용하여 새로운 제출을 만들 것입니다. 변경 사항을 원격 Repo로 보낼 준비를 할 수 있습니다...
하지만당신은 수정 표지판에 우리가 이미 잊어버렸을 수도 있는 다른 변경 사항을 추가할 수 있다는 것을 알고 있습니까? 이 변경 사항은 이전에 제출한 일부분일 것입니다.
이 경우 제출을 수정하기 전에 변경 사항을 추가해야 합니다git commit 또는git add .. 이것은 git add -A의 줄임말입니다.

-all와git-add 사이의 차이.


차이점은 git add -A 현재 디렉터리에만 파일을 추가하고, git add . 현재 디렉터리와 모든 하위 디렉터리에 파일을 추가하기 때문에 "all"입니다.
네, 필요한 서류를 추가해서 제출했습니다. 이제 원격으로 미루려고 합니다.우리는 명령을 통해 이렇게 했다
git push origin {branchName}
만약 이것이 우리가 처음으로 이 지점을 원격으로 밀어낸다면, 우리는 git add -A 표지 또는 --set-upstream 약칭을 다음과 같이 전입할 수 있다.
git push -u origin {branchName}
현재, 매번 우리가 같은 지점에서 새로운 변화를 추진하려고 할 때마다, 우리는 실행만 하면 -u Git는 우리가 무슨 원거리를 말하는지 알게 될 것이다.
현재, 우리는 원격 repo에서 제출 역사를 볼 수 있으며, 실행git push 명령을 실행할 때 보이는 URL로 이동할 수 있습니다.

원격 변경 내용 실행 취소


이제 제출을 잘못된 지점으로 미루었다고 가정합시다. (gitadd에 전달된 로고 간의 차이에 주목하느라 바빴기 때문일 수도 있습니다.)
걱정하지 마세요. 우리는 git remote -v 명령으로 이 문제를 해결할 수 있습니다.
가령 우리의 git revert 중 다음과 같은 역사 기록이 있다

열려 있는 지점에서 마지막 제출을 삭제하고 다른 지점으로 이동할 수 있습니다.
이런 상황에서, 우리는 이렇게revert 명령을 실행할 것이다.
git revert 0a995a8
이제 Git은 이전에 제출한 변경 사항을 포함하는 revert commit을 만듭니다.
(제출된 id가 아닌 "HEAD"를 사용하여 같은 결과를 얻을 수도 있지만, 지침이 아닌 Git 사용 id를 이해하기 쉽다고 생각합니다.)
지금 해야 할 일은 이 새로운revertcommit를 원격으로 보내는 것입니다. (만약 다른 사람과 함께 일한다면 복구할 수 있도록 당김 동작을 알려주십시오.)
이것은 그리 나쁘지 않다, 그렇지?다음에 더 조심하고 싶다면, 복구 제출을 피하고 로컬에서 제출을 처리할 수 있습니다.

커밋을 한 지점에서 다른 지점으로 이동


제출을 어떻게 이동하는지 봅시다.Git의 대부분과 같은 두 가지 방법이 있다.
"feature/about"지점에서 연락처 부분에서 복구할 내용을 찾아서 거기에 제출할 것이라고 상상해 봅시다.
현재, 우리는 제출을 다른 지점으로 옮기기를 희망합니다. 예를 들어'기능/연락처'입니다.이를 위해 명령을 실행합시다
git checkout feature/contact
현재 연락처 지점에 있습니다. 로그를 검사하면 현재 두 지점에 제출된 것을 볼 수 있고, 나머지는 첫 번째 지점에서 삭제하는 것입니다.
이제 우리 이전 지점으로 돌아가자 (사용 git log 기억나세요?)제출된 id를 가져옵니다. 이 id는 삭제할 id 앞에 있고 명령을 실행합니다.
git reset --hard {commitId}
"HEAD는 현재 {previousCommitId}{previousCommitName}에 있습니다."라는 메시지를 Git에서 받을 것입니다.
따라서 본질적으로 말하자면, 헤더 바늘이 뒤로 제출을 옮겼다. 마치 최신 제출이 처음부터 만들어진 적이 없는 것처럼, 그것은 여전히 우리가 원하는 지점에 존재한다.
다른 방법은 git checkout - 명령을 사용하는 것이다.
예를 들어, 만약에 우리가 "feature/about"지점에서 id (복사할 id) 를 제출한 다음 원하는 지점으로 이동하여 명령을 실행한다면
git cherry-pick {commitId}
이제 다른 지점에서 제출한 변경 사항이 우리가 있는 지점에 적용됩니다.
cherrypick은 전체 제출을 복사하지 않고 지점에 새 제출을 만들어서 선택한 제출의 변경 사항을 적용합니다.
우리는 지금 다른 지점으로 돌아가서 이전처럼 제출을 삭제해야 한다.
또한 한 지점에서 한 번 제출하고 변경 사항을 다른 지점으로 복사하려면 git cherry-pick 이 가능하고, git cherry-pick 를 사용하면 가장 가까운 모든 제출을 하고 다른 지점으로 이동해야 합니다.
그것 때문에 우리는 제출을 상응하는 지점으로 옮긴 후에 다시 원격으로 미루어 일을 현지에서 처리하기 쉽게 할 것이다.

더 높은 영역으로 진입하다


Git가 제공하는 추가 기능을 이용하여 다양한 지점과 원격 제출을 처리하는 방법을 연구하고자 합니다.
근데 그거 알아요?나는 단지 전체 문장을 훑어본 후에 그것이 매우 길어지고 이해하기 어려워졌다는 것을 깨달았다.
그래서 저는 Git 테크닉 2부에 고급 콘텐츠를 저장합니다.
이 문장에서 우리는 보게 될 것이다...
  • git checkout에 대한 다양한 옵션이 있습니다.
  • 에서 분실될 수 있는 제출을 복구하는 방법.
  • git reset 강제 추압이 아니라 조심해서 사용git reflog.
  • 및 변경 관리, 메시지 제출 등 어떻게 사용하는지--force-with-lease.
  • 따라서 Git를 사용하여 전통적인 소프트웨어 개발 절차를 진행할 때 추가 기교를 모를 수도 있습니다.
    나는 이것이 유용하길 바란다. 나는 몇 년 전에 Git의 대부분 기능을 알지 못하는 상황에서 Git를 사용했을 뿐만 아니라, 단지 자신을 가장 많이 사용하는 명령에 국한했을 뿐이라는 것을 안다.
    이번 주 댓글 여기까지!

    읽어 주셔서 감사합니다. 저는 다음 주에 두 번째 부분에서 당신을 만날 수 있기를 바랍니다.

    좋은 웹페이지 즐겨찾기