10분 안에 가장 일반적으로 사용되는 git 명령을 단계별로 안내합니다.
기본적으로 Git은 텍스트 변경 사항을 기록할 수 있지만 Git의 정의는 버전 제어 시스템입니다. 이미 어떤 방식으로든 git을 사용했을 가능성이 높습니다. 분산 특성으로 인해 중앙 집중식 Apache Subversion(SVN)과 달리 코드 버전 제어를 위한 사실상의 표준입니다.
git 설치
Git이 설치되어 있는지 확인하려면 터미널에서
$ git version git version 2.27.0.rc1.windows.1
를 실행하세요. 설치되어 있지 않으면 https://git-scm.com/downloads의 지침을 따르세요. Mac 사용자는 Brew: Brew Install git을 사용하여 설치할 수 있습니다.
git 구성
몇 가지만 구성하면 됩니다
git config --global user.name "前端小智" && # 你的名字 git config --global user.email johndoe@example.com && # 你的邮箱 git config --global init.defaultbranch main # 默认分支名称,与GitHub兼容
다음 명령을 사용하여 현재 전역 구성을 볼 수 있습니다.
git config --global --list # Type ":q" to close
git은 구성을 일반 텍스트로 저장합니다. ~/.gitconfig에서 직접 수정하거나 ~/.config/git/config에서 전역 구성을 편집할 수 있습니다.
명령에서 알 수 있듯이 --global을 제거하면 이러한 명령의 범위가 현재 폴더로 확장됩니다. 하지만 이를 테스트하려면 저장소가 필요합니다.
새 저장소 만들기
저장소는 추적하려는 모든 항목이 들어 있는 폴더일 뿐입니다. 명령으로 생성:
mkdir gitexample && cd gitexample && git init # gitexample git:(main)
이 명령은 gitexample 폴더 내에 .git 폴더를 생성합니다. 이 숨겨진 .git 폴더는 저장소입니다. 모든 로컬 구성 및 수정 사항이 여기에 저장됩니다.
Change
저장소에 무언가를 생성하세요:
echo "Hello, Git " >> hello.txt
git status를 실행하면 새로 생성된 추적되지 않은 파일을 볼 수 있습니다.
git status # On branch main # # 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 add hello.txt
를 사용할 수 있습니다. 지금 저장소 상태를 확인하면 파일이 추가되었지만(즉, 준비됨) 아직 제출되지 않았습니다.
git status # On branch main # # No commits yet # # Changes to be committed: # (use "git rm --cached <file>..." to unstage) # new file: hello.txt
이러한 변경 사항을 문서화하려면 커밋해 보세요.
git commit -m "Add hello.txt" # [main (root-commit) a07ee27] Adds hello.txt # 1 file changed, 2 insertions(+) # create mode 100644 hello.txt
git commit -m
커밋 기록 확인:
git log # Author: qq449245884 <44924566884@qq.com> # Date: Sat Jul 17 14:57:24 2021 +0800 # # Add hello.txt #
브랜치 만들기
많은 상황에서 초기 코드의 독립적인 버전을 갖는 것이 유용합니다. 예를 들어, 확실하지 않은 기능을 테스트할 때 또는 피하기 위해 함께 작업할 때 코드 충돌. 이것이 바로 git 브랜치입니다. 역사의 특정 지점에서 성장합니다.
브랜치를 생성하려면 git Branch NAME을 실행하고, 브랜치를 전환하려면 git checkout NAME을 실행하세요. 또는 간단히
git checkout -b dev # 切换到一个名为“dev”的新分支 # Switched to a new branch 'dev' # gitexample git:(dev)
Hello.txt 파일에서 내용을 변경하고 변경 사항을 커밋합니다.
echo "\nHello, Git Branch" >> hello.txt && git commit -am "Change hello.txt"
이제 마스터 브랜치로 전환합니다.
git checkout main && cat hello.txt # Switched to branch 'main' # Hello, Git
보시다시피 파일 내용은 여전히 이전과 동일합니다. 분기를 비교하기 위해 실행할 수 있습니다.
git diff dev # diff --git a/hello.txt b/hello.txt # index 360c923..b7aec52 100644 # --- a/hello.txt # +++ b/hello.txt # @@ -1,3 +1 @@ # Hello, Git # - # -Hello, Git Branch # (END) # type ":q" to close
마스터 브랜치에서 변경해 보겠습니다.
echo "\nHi from Main Branch" >> hello.txt && git commit -am "Change hello.txt from main" # [main 9b60c4b] Change hello.txt from main # 1 file changed, 2 insertions(+)
이제 이러한 변경 사항을 병합해 보겠습니다.
git merge dev # Auto-merging hello.txt # CONFLICT (content): Merge conflict in hello.txt # Automatic merge failed; fix conflicts and then commit the result.
같은 곳에서 파일을 두번 수정해서 충돌이 났어요. 이 파일을 살펴보세요.
cat hello.txt <<<<<<< HEAD Hello, Git Hi from Main Branch ======= Hello, Git >>>>>>> dev
변경 사항을 개별적으로 볼 수 있는 명령도 있습니다:
git diff --ours # :q to close git diff --theirs #:q to close
파일을 수동으로 편집하고 변경 사항을 커밋할 수 있지만 한 가지 버전만 필요하다고 가정해 보겠습니다. 병합을 중단하는 것부터 시작하겠습니다.
git merge --abort
그리고 "그들의" 전략으로 병합을 다시 시작합니다. 이는 충돌이 발생할 경우 들어오는 분기가 보유하고 있는 것을 사용한다는 의미입니다.
git merge -X theirs dev # Auto-merging hello.txt # Merge made by the 'recursive' strategy. # hello.txt | 5 +---- # 1 file changed, 1 insertion(+), 4 deletions(-)
이 전략의 반대는 "우리"입니다. 이 두 가지 변경 사항을 병합하려면 수동 편집(또는 git mergetool 사용)이 필요합니다.
모든 브랜치 실행 목록 보기
git branch # type :q to close # dev # * main
마지막으로 브랜치를 삭제하고 실행하세요.
git branch -d dev # Deleted branch dev (was 6259828).
Reset Branch
브랜치는 Git 기록의 특정 지점에서 "성장"하며 리베이스를 사용하면 이 지점을 변경할 수 있습니다. 또 다른 브랜치를 만들고 hello.txt에 몇 가지 변경 사항을 추가해 보겠습니다.
git checkout -b story && echo "Once upon a time there was a file">>story.txt && git add story.txt && git commit -m "Add story.txt" # Switched to a new branch 'story' # [story eb996b8] Add story.txt # 1 file changed, 1 insertion(+) # create mode 100644 story.txt
이제 마스터 브랜치로 돌아가서 변경사항을 추가합니다.
git checkout main && echo "Other changes" >> changes.txt && git add changes.txt && git commit -m "Add changes.txt"
메인에서 변경한 내용을 스토리 브랜치로 재설정합니다.
git checkout story && git rebase main # Successfully rebased and updated refs/heads/story.
메인 브랜치에서 생성된 새 파일이 스토리에 추가되는 것을 볼 수 있습니다. 나뭇가지.
ls # changes.txt hello.txt story.txt
참고: master 분기와 같이 다른 사람이 사용했을 수 있는 분기를 리베이스하지 마세요. 또한 원격 저장소의 모든 기록 작업은 이러한 수정 사항을 강제로 적용해야 한다는 점을 기억하십시오.
원격 저장소
아직 계정이 없다면 GitHub 계정을 만들고 로그인한 후 새로운 빈 저장소(비공개 또는 공개)를 만드세요.
저장소 이름이 "example"이라고 가정하고 다음 명령을 실행합니다(사용자 이름으로 변경).
git remote add origin git@github.com:USERNAME/example.git && git push -u origin main
페이지를 새로 고치고 마스터 브랜치의 파일을 볼 수 있습니다. 모든 로컬 브랜치를 원격 저장소로 푸시하려면 다음을 실행하세요.
git push --all origin
GitHub에서 편집해 보겠습니다. 파일을 클릭하고 연필 아이콘을 클릭하기만 하면 됩니다. 원하는 텍스트 한 줄을 추가하고 "변경 사항 제출"을 누르세요.
변경 사항을 원격으로 가져오려면 이 명령을 로컬로 실행하세요. [권장: Git Tutorial]
git checkout main && git pull
커밋되지 않은 변경 사항 관리
나중에 사용하기 위해 로컬 수정 사항을 저장하려면 git stash를 사용할 수 있습니다.
echo "Changes" >> hello.txt && git stash
이제 다음 명령을 사용하여 이러한 변경 사항을 확인, 적용 또는 삭제할 수 있습니다.
git stash list # stash@{0}: WIP on main: 92354c8 Update changes.txt git stash pop # 应用更改 git stash drop # 撤销修改
你可以使用 stash 编号,即git stash pop 0来应用一个特定的储藏库,或者git stash drop 0来撤销。
如果你想放弃所有的本地修改,只需恢复版本库到最后提交的修改,请运行。
git restore .
管理提交的更改
一旦你创建了一个提交,这个变化就会保存在本地的git历史中。如前所述,所有影响远程历史的修改都需要git push --force。以下所有命令都要记住这一点。
我们从编辑最后的提交信息开始。
git commit --amend # type :wq to save and close # Press "i" to edit, "Esc" to stop editing
我们把一切重设到最开始怎么样?
要找到第一次提交的ID,请运行这个命令并滚动(向下箭头)到最后。
git log --abbrev-commit # commit a07ee27 # Author: Your Name <your@email.address> Date: Sun Jul 11 11:47:16 2021 +0200 Adds hello.txt (END) # type ":q" to close
现在运行这个来重置版本库,但保持所有的修改不被缓存。
git reset --soft COMMIT # e.g. a07ee27
与之相反,你也可以进行硬重置,用git reset --hard COMMIT来删除所有修改。还有几种其他的重置方式,你可以从git文档中了解到。
别名
大多数时候,你只需要使用少数几个命令(主要是checkout、add、commit、pull、push和merge),但有些命令可能是你想要“以防万一”的。
存储这些信息的一种方法是git aliases。要配置一个别名,只需在配置中设置它。例如,我经常使用的一个别名是git tree,它以树的形式打印出一个漂亮的历史日志。
git config --global alias.tree 'log --graph --decorate --pretty=oneline --abbrev-commit' # Try it with `git tree`
另一个有用的别名是删除所有合并的分支。
git config --global alias.clbr '!git branch --merged | grep -v \* | xargs git branch -D'
你可以看到它的前缀是"!",这允许我们使用任何命令,而不仅仅是git命令。
~完,我是刷碗智,今天礼拜六写的,要准备去刷碗了,骨的白!
▎作者:Valeria 译者:前端小智 来源:dev 原文:https://dev.to/valeriavg/master-git-in-7-minutes-gai
위 내용은 10분 안에 가장 일반적으로 사용되는 git 명령을 단계별로 안내합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

GIT 코드를 업데이트하는 단계 : 코드 확인 : git 클론 https://github.com/username/repo.git 최신 변경 사항 가져 오기 : Git Fetch Merge 변경 사항 : GIT 병합 원산지/마스터 푸시 변경 (옵션) : Git Push Origin Master

GIT를 통해 로컬로 프로젝트를 다운로드하려면 다음 단계를 따르십시오. GIT를 설치하십시오. 프로젝트 디렉토리로 이동하십시오. 다음 명령을 사용하여 원격 저장소 클로닝 : git 클론 https://github.com/username/repository-name.git

원격 GIT 서버에 안전하게 연결하려면 공개 및 개인 키를 포함하는 SSH 키를 생성해야합니다. SSH 키를 생성하는 단계는 다음과 같습니다. 터미널을 열고 명령을 엽니 다. 개인 키를 보호하려면 비밀번호 문구를 입력하십시오. 공개 키를 원격 서버에 복사하십시오. 개인 키를 계정에 액세스하기위한 자격 증명이므로 개인 키를 올바르게 저장하십시오.

git 커밋을 되돌려 보려면 Git Reset -Hard Head ~ N 명령을 사용할 수 있습니다. 여기서 N은 폴백의 커밋 수를 나타냅니다. 자세한 단계에는 다음이 포함됩니다. 롤백 할 커밋 수를 결정합니다. -하드 옵션을 사용하여 폴백을 강요하십시오. 지정된 커밋으로 돌아 가기 위해 명령을 실행하십시오.

git 저장소 주소를 보려면 다음 단계를 수행하십시오. 1. 명령 줄을 열고 리포지토리 디렉토리로 이동하십시오. 2. "git remote -v"명령을 실행하십시오. 3. 출력 및 해당 주소에서 저장소 이름을 봅니다.

GIT는 버전 제어 시스템이며 GitHub는 GIT 기반 코드 호스팅 플랫폼입니다. GIT는 코드 버전을 관리하는 데 사용되며 로컬 작업을 지원합니다. GitHub는 문제 추적 및 풀 레크와 같은 온라인 협업 도구를 제공합니다.

해결 : GIT 다운로드 속도가 느리면 다음 단계를 수행 할 수 있습니다. 네트워크 연결을 확인하고 연결 방법을 전환하십시오. GIT 구성 최적화 : 포스트 버퍼 크기를 늘리고 (GIT 구성-글로벌 http.postBuffer 524288000) 저속 제한 (git config --global http.lowspeedlimit 1000)을 줄입니다. git 프록시 (예 : git-proxy 또는 git-lfs-proxy)를 사용하십시오. 다른 git 클라이언트 (예 : Sourcetree 또는 Github 데스크탑)를 사용해보십시오. 화재 보호를 확인하십시오

GIT 코드 병합 프로세스 : 충돌을 피하기 위해 최신 변경 사항을 가져옵니다. 병합하려는 지점으로 전환하십시오. 병합을 시작하고 병합을 지정합니다. 병합 충돌을 해결하십시오 (있는 경우). 커밋 메시지를 제공하여 병합을 준비하고 커밋합니다.
