> php教程 > PHP开发 > Git 튜토리얼의 기본 조작에 대한 자세한 설명

Git 튜토리얼의 기본 조작에 대한 자세한 설명

黄舟
풀어 주다: 2016-12-16 15:00:11
원래의
1129명이 탐색했습니다.

기본 Git 작업

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

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

git init

git init를 사용하여 디렉터리에 새 Git 저장소를 만듭니다. 이 작업은 언제든지 어느 디렉터리에서나 수행할 수 있으며 완전히 현지화되어 있습니다.
디렉토리에서 git 실행 init을 실행하면 Git 저장소를 생성할 수 있습니다. 예를 들어 runoob 프로젝트를 생성합니다.

$ mkdir runoob
$ cd runoob/
$ git init
Initialized empty Git repository in /Users/tianqixin/www/runoob/.git/
# 在 /www/runoob/.git/ 目录初始化空 Git 仓库完毕<BR>
로그인 후 복사


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

ls -a
.. .git

git clone

Git 저장소를 로컬로 복사하려면 git clone을 사용하세요. 항목을 직접 보거나 변경할 수 있도록 합니다.

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

git clone [url]

[url] 명령을 실행하면 됩니다.

예를 들어 Github에서 프로젝트를 복제하는 경우:

$ git clone git@github.com:schacon/simplegit.git
Cloning into &#39;simplegit&#39;...
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을 실행합니다. 상태를 보면 이 두 파일이 추가된 것을 확인할 수 있습니다.

$ git status -s
A README
A hello.php
$
로그인 후 복사

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


$ vim README
<pre class="brush:php;toolbar:false">
<p>在 README 添加以下内容:<b># Runoob 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에는 두 가지 주요 애플리케이션 시나리오가 있습니다.

1. 캐시되지 않은 변경 사항: git diff

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

3. 캐시되지 않은 변경 사항: git diff HEAD

4. 전체 diff 대신 요약 표시: git diff --stat

hello.php 파일에 다음을 입력합니다. 🎜 >

<?php
echo &#39;菜鸟教程:www.runoob.com&#39;;
?>
로그인 후 복사


$ 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 &#39;菜鸟教程:www.runoob.com&#39;;
+?>
로그인 후 복사


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 @@
+# Runoob 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 &#39;菜鸟教程:www.runoob.com&#39;;
+?>
로그인 후 복사


git commit


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


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


$ git config --global user.name 'runoob'

$ git config --global user.email test@runoob.com

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


$ git add hello.php
$ git status -s
A README
A hello.php
$ $ git commit -m &#39;第一次版本提交&#39;
[master (root-commit) d32cf1f] 第一次版本提交
 2 files changed, 4 insertions(+)
 create mode 100644 README
 create mode 100644 hello.php
로그인 후 복사


이제 스냅샷을 녹화했습니다. git status를 실행하면:


$ git status

# 브랜치 마스터에서
아무 것도 없습니다. 커밋(작업 디렉토리 정리)

以上输出说明我们在最近一次提交之后,没有做任何改动,是一个"working directory clean:干净的工作目录"。
如果你没有设置 -m 选项,Git 会尝试为你打开一个编辑器以填写提交信息。 如果 Git 在你对它的配置中找不到相关信息,默认会打开 vim。屏幕会像这样:

# Please enter the commit message for your changes. Lines starting
# with &#39;#&#39; 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 &#39;菜鸟教程:www.runoob.com&#39;;
echo &#39;菜鸟教程:www.runoob.com&#39;;
?>
로그인 후 복사

再执行以下命令:


git commit -am &#39;修改 hello.php 文件&#39;
[master 71ee2cb] 修改 hello.php 文件
 1 file changed, 1 insertion(+)
로그인 후 복사

git reset HEAD

git reset HEAD 命令用于取消已缓存的内容。

我们先改动文件 README 文件,内容如下:

# Runoob Git 测试
# 菜鸟教程

hello.php 文件修改为:

<?php
echo &#39;菜鸟教程:www.runoob.com&#39;;
echo &#39;菜鸟教程:www.runoob.com&#39;;
echo &#39;菜鸟教程:www.runoob.com&#39;;
?>
로그인 후 복사

现在两个文件修改后,都提交到了缓存区,我们现在要取消其中一个的缓存,操作如下


$ 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 &#39;修改&#39;
[master f50cfda] 修改
 1 file changed, 1 insertion(+)
$ git status -s
 M hello.php
로그인 후 복사

可以看到 hello.php 文件的修改并为提交。

这时我们可以使用以下命令将 hello.php 的修改提交:

$ git commit -am &#39;修改 hello.php 文件&#39;
[master 760f74d] 修改 hello.php 文件
 1 file changed, 1 insertion(+)
$ git status
On branch master
nothing to commit, working directory clean
로그인 후 복사

简而言之,执行 git reset HEAD 以取消之前 git add 添加,但不希望包含在下一提交快照中的缓存。

git rm

git rm 会将条目从缓存区中移除。这与 git reset HEAD 将条目取消缓存是有区别的。 "取消缓存"的意思就是将缓存区恢复为我们做出修改之前的样子。

默认情况下,git rm file 会将文件从缓存区和你的硬盘中(工作目录)删除。

如果你要在工作目录中留着该文件,可以使用 git rm --cached:

如我们删除 hello.php文件:

$ git rm hello.php 
rm &#39;hello.php&#39;
$ ls
README
로그인 후 복사

不从工作区中删除文件:

$ git rm --cached README 
rm &#39;README&#39;
$ ls
README
로그인 후 복사

git mv

git mv 命令做得所有事情就是 git rm --cached 命令的操作, 重命名磁盘上的文件,然后再执行 git add 把新文件添加到缓存区。

我们先把刚移除的 README 添加回来:

$ git add README

然后对其重名:

$ git mv README README.md
$ ls
README.md
로그인 후 복사

   

 以上就是Git 教程之基本操作详解的内容,更多相关文章请关注PHP中文网(www.php.cn)!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿