빠른 시작 Git 튜토리얼login
빠른 시작 Git 튜토리얼
작가:php.cn  업데이트 시간:2022-04-11 13:44:34

힘내 기본 작업


Git의 임무는 프로젝트의 스냅샷을 생성 및 저장하고 후속 스냅샷과 비교하는 것입니다. 이 장에서는 프로젝트의 스냅샷을 생성하고 제출하는 명령을 소개합니다.


프로젝트 명령 가져오기 및 만들기

git init

git init를 사용하여 디렉터리에 새 Git 저장소를 만듭니다. 이 작업은 언제든지 어느 디렉터리에서나 수행할 수 있으며 완전히 현지화되어 있습니다.

디렉토리에서 git init을 실행하여 Git 저장소를 생성합니다. 예를 들어, PHP 프로젝트를 생성하면

$ mkdir php
$ cd php/
$ git init
Initialized empty Git repository in /Users/tianqixin/www/php/.git/
# 在 /www/php/.git/ 目录初始化空 Git 仓库完毕。

이제 프로젝트에 .git 하위 디렉터리가 생성된 것을 볼 수 있습니다. 이는 프로젝트에 대한 모든 스냅샷 데이터가 저장되는 Git 저장소입니다.

ls -a
.	..	.git

git clone

git clone을 사용하여 Git 저장소를 로컬로 복사하면 프로젝트를 보거나 수정할 수 있습니다.

다른 사람과 프로젝트를 공동 작업해야 하거나 코드를 보기 위해 프로젝트 복사본을 만들고 싶다면 해당 프로젝트를 복제할 수 있습니다. 복사하려는 항목에 대해

 git clone [url]

[url] 명령을 실행하면 그게 전부입니다.

예를 들어 Github에서 프로젝트를 복제하면:

$ git clone git@github.com:schacon/simplegit.git
Cloning into 'simplegit'...
remote: Counting objects: 13, done.
remote: Total 13 (delta 0), reused 0 (delta 0), pack-reused 13
Receiving objects: 100% (13/13), done.
Resolving deltas: 100% (2/2), done.
Checking connectivity... done.

복제가 완료된 후 현재 디렉터리에 simplegit 디렉터리가 생성됩니다:

$ cd simplegit/ $ls README Rakefile lib

위 작업은 프로젝트의 모든 기록을 복사합니다.

$ ls -a
.        ..       .git     README   Rakefile lib
$ cd .git
$ ls
HEAD        description info        packed-refs
branches    hooks       logs        refs
config      index       objects

기본적으로 Git은 귀하가 제공한 URL에 표시된 프로젝트 이름으로 로컬 프로젝트 디렉터리를 생성합니다. 이는 일반적으로 URL의 마지막 / 뒤에 오는 프로젝트 이름입니다. 다른 이름을 원할 경우 명령 뒤에 원하는 이름을 추가할 수 있습니다.


기본 스냅샷

Git의 임무는 프로젝트의 스냅샷을 생성 및 저장하고 후속 스냅샷과 비교하는 것입니다. 이 장에서는 프로젝트의 스냅샷을 생성하고 제출하는 명령을 소개합니다.

git add

git add 명령은 캐시에 파일을 추가할 수 있습니다. 예를 들어 다음 두 파일을 추가합니다.

$ touch README
$ touch hello.php
$ ls
README		hello.php
$ git status -s
?? README
?? hello.php
$

git status 명령은 프로젝트의 현재 상태를 보는 데 사용됩니다.

다음으로 git add 명령을 실행하여 파일을 추가합니다.

$ git add README hello.php

이제 git status를 다시 실행하면 이 두 파일이 추가된 것을 확인할 수 있습니다.

$ git status -s
A  README
A  hello.php
$

새 프로젝트에서는 모든 파일을 추가하는 것이 일반적입니다. git add . 명령을 사용하여 현재 프로젝트의 모든 파일을 추가할 수 있습니다.

이제 README 파일을 수정합니다:

$ vim README
<pre>
<p>在 README 添加以下内容:<b># php Git 测试</b>,然后保存退出。</p>
<p>再执行一下 git status:</p>
$ git status -s
AM README
A  hello.php

"AM" 상태는 이 파일이 캐시에 추가된 후 변경되었음을 의미합니다. 변경한 후 git add 명령을 실행하여 캐시에 추가합니다.

$ git add .
$ git status -s
A  README
A  hello.php

제출할 스냅샷에 변경 사항을 포함하려면 git add를 실행해야 합니다.

git status

git status를 사용하여 마지막 커밋 이후 변경 사항이 있는지 확인하세요.

간단한 결과 출력을 얻기 위해 이 명령을 시연할 때 -s 매개변수를 추가했습니다. 이 매개변수가 추가되지 않으면 자세한 출력은 다음과 같습니다.

$ git status
On branch master

Initial commit

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

	new file:   README
	new file:   hello.php

git diff

git diff를 실행하면 git status 실행 결과에 대한 자세한 정보를 볼 수 있습니다.

git diff 명령은 캐시에 기록된 변경 사항과 수정되었지만 아직 캐시에 기록되지 않은 변경 사항 간의 차이를 보여줍니다. git diff에는 두 가지 주요 애플리케이션 시나리오가 있습니다.

  • 아직 캐시되지 않은 변경 사항: git diff

  • 캐시된 변경 사항 보기: git diff --cached

  • 캐시된 변경 사항과 캐시되지 않은 모든 변경 사항 보기: git diff HEAD

  • 보여주기 전체 diff 대신 요약: git diff --stat

hello.php 파일에 다음을 입력하세요:

<?php
echo 'php中文网:www.php.cn';
?>
$ git status -s
A  README
AM hello.php
$ git diff
diff --git a/hello.php b/hello.php
index e69de29..69b5711 100644
--- a/hello.php
+++ b/hello.php
@@ -0,0 +1,3 @@
+<?php
+echo 'php中文网:www.php.cn';
+?>

git status 마지막 커밋 업데이트 이후의 변경 사항을 표시하거나 변경 사항을 캐시에 기록하면 git diff가 표시됩니다. 구체적인 변경 사항은 한 줄씩 변경됩니다.

다음으로 git diff --cached의 실행 효과를 확인해 보겠습니다.

$ git add hello.php 
$ git status -s
A  README
A  hello.php
$ git diff --cached
diff --git a/README b/README
new file mode 100644
index 0000000..8f87495
--- /dev/null
+++ b/README
@@ -0,0 +1 @@
+# php Git 测试
diff --git a/hello.php b/hello.php
new file mode 100644
index 0000000..69b5711
--- /dev/null
+++ b/hello.php
@@ -0,0 +1,3 @@
+<?php
+echo 'php中文网:www.php.cn';
+?>

git commit

git add 명령을 사용하여 원하는 스냅샷의 내용을 캐시 영역에 씁니다. git commit을 실행하여 캐시 영역의 내용을 웨어하우스에 추가합니다.

Git은 제출할 때마다 이름과 이메일 주소를 기록하므로 첫 번째 단계는 사용자 이름과 이메일 주소를 구성하는 것입니다.

$ git config --global user.name 'php'
$ git config --global user.email test@php.cn

다음으로 캐시에 쓰고 모든 변경 사항을 hello.php에 커밋합니다. 첫 번째 예에서는 -m 옵션을 사용하여 명령줄에 커밋 주석을 제공합니다.

$ git add hello.php
$ git status -s
A  README
A  hello.php
$ $ git commit -m '第一次版本提交'
[master (root-commit) d32cf1f] 第一次版本提交
 2 files changed, 4 insertions(+)
 create mode 100644 README
 create mode 100644 hello.php

이제 스냅을 녹화했습니다. git status:

$ git status
# On branch master
nothing to commit (working directory clean)

를 실행하면 위 출력은 최근 제출 이후 아무런 변경도 하지 않았음을 보여주며 "작업 디렉터리 정리: 작업 디렉터리 정리"입니다.

-m 옵션을 설정하지 않으면 Git은 커밋 정보를 입력할 수 있는 편집기를 열려고 시도합니다. Git이 구성에서 관련 정보를 찾을 수 없으면 기본적으로 vim이 열립니다. 화면은 다음과 같습니다:

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
# modified:   hello.php
#
~
~
".git/COMMIT_EDITMSG" 9L, 257C

git add 커밋 캐싱 과정이 너무 번거롭다고 생각되면 Git에서는 -a 옵션을 사용하여 이 단계를 건너뛸 수도 있습니다. 명령 형식은 다음과 같습니다.

git commit -a

먼저 hello.php 파일을 다음 내용으로 수정합니다.

<?php
echo 'php中文网:www.php.cn';
echo 'php中文网:www.php.cn';
?>

그런 다음 다음 명령을 실행합니다.

git commit -am '修改 hello.php 文件'
[master 71ee2cb] 修改 hello.php 文件
 1 file changed, 1 insertion(+)

git Reset HEAD

git Reset HEAD 명령은 캐시를 취소하는 데 사용됩니다. 콘텐츠.

먼저 README 파일을 변경하면 내용은 다음과 같습니다.

# php Git 测试
# php中文网

hello.php 파일은 다음과 같이 수정됩니다.

<?php
echo 'php中文网:www.php.cn';
echo 'php中文网:www.php.cn';
echo 'php中文网:www.php.cn';
?>

이제 두 파일 모두 수정되어 캐시 영역에 제출되었으므로 이제 취소해야 합니다. 작업은 다음과 같습니다:

$ git status -s
 M README
 M hello.php
$ git add .
$ git status -s
M  README
M  hello.pp
$ git reset HEAD -- hello.php 
Unstaged changes after reset:
M	hello.php
$ git status -s
M  README
 M hello.php

이제 git commit을 실행하면 README 파일의 변경 사항만 커밋되고 hello.php에는 커밋되지 않습니다.

$ git commit -m '修改'
[master f50cfda] 修改
 1 file changed, 1 insertion(+)
$ git status -s
 M hello.php

hello.php 파일의 수정사항을 확인하고 제출하시면 됩니다.

이제 다음 명령을 사용하여 hello.php에 대한 수정 사항을 커밋할 수 있습니다.

$ git commit -am '修改 hello.php 文件'
[master 760f74d] 修改 hello.php 文件
 1 file changed, 1 insertion(+)
$ git status
On branch master
nothing to commit, working directory clean

간단히 말하면, 이전에 git add로 추가했지만 포함하고 싶지 않은 캐시를 취소하려면 git Reset HEAD를 실행하세요. 다음 커밋 스냅샷.

git rm

git rm은 캐시에서 항목을 제거합니다. 이는 항목을 캐시 해제하는 git Reset HEAD와 다릅니다. "Uncache"는 캐시 영역을 수정하기 전의 상태로 복원하는 것을 의미합니다.


기본적으로 git rm file은 캐시와 하드 드라이브(작업 디렉터리)에서 파일을 삭제합니다.

작업 디렉터리에 파일을 보관하려면 git rm --cached를 사용할 수 있습니다.

예를 들어 hello.php 파일을 삭제하는 경우:

$ git rm hello.php 
rm 'hello.php'
$ ls
README

작업 공간에서 파일을 삭제하지 마세요.

$ git rm --cached README 
rm 'README'
$ ls
README

git mv

git mv 명령이 수행하는 작업은 git rm --cached 명령의 작업으로, 디스크의 파일 이름을 바꾼 다음 git add를 실행하여 새 파일을 캐시에 추가하는 것뿐입니다.

먼저 방금 제거한 README를 다시 추가해 보겠습니다:

$ git add README

그런 다음 이름을

$ git mv README  README.md
$ ls
README.md
로 바꿉니다.

PHP 중국어 웹사이트