git init
用 git init 在目录中创建新的 Git 仓库。 你可以在任何时候、任何目录中这么做,完全是本地化的。
在目录中执行 git init,就可以创建一个 Git 仓库了。比如我们创建 runoob 项目:
[root@localhost ~]# mkdir runoob [root@localhost ~]# cd runoob [root@localhost runoob]# git init Initialized empty Git repository in /root/runoob/.git/ # 在 /root/runoob/.git/ 目录初始化空 Git 仓库完毕。
现在可以看到在你的项目中生成了 .git 这个子目录。 这就是你的 Git 仓库了,所有有关你的此项目的快照数据都存放在这里。
ls -a ....git
git clone
使用 git clone 拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。
如果你需要与他人合作一个项目,或者想要复制一个项目,看看代码,你就可以克隆那个项目。 执行命令:
git clone [url]
[url] 为你想要复制的项目。
例如我们克隆 Github 上的项目:
[root@localhost ~]# 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.
克隆完成后,在当前目录下会生成一个 simplegit 目录:
上述操作将复制该项目的全部记录。
[root@localhost ~]# cd simplegit
[root@localhost simplegit]# ls -a
. .. .git lib Rakefile README
[root@localhost simplegit]# cd .git
[root@localhost .git]# ls
branches description hooks info objects refs
config HEAD index logs packed-refs
默认情况下,Git 会按照你提供的 URL 所指示的项目的名称创建你的本地项目目录,通常就是该 URL 最后一个 / 之后的项目名称。如果你想要一个不一样的名字, 你可以在该命令后加上你想要的名称。
git add
git add 命令可将文件添加到缓存,如添加以下两个文件:
[root@localhost runoob]# touch README
[root@localhost runoob]# touch hello.php
[root@localhost runoob]# ls
hello.php README
[root@localhost runoob]# git status -s
?? README
?? hello.php
git status 命令用于查看项目的当前状态,上面两个文件仅存在于工作区,用??表示他们此时的状态。
接下来我们执行 git add 命令来添加文件:
[root@localhost runoob]# git add README hello.php
现在我们再执行 git status,就可以看到这两个文件已经加到暂存区了。用A表示文件由当前目录加入到暂存区的状态,当某个文件处于这个状态,说明该文件在目录区和暂存区是一致的。
[root@localhost runoob]# git status -s
A README
A hello.php
新项目中,添加所有文件很普遍,我们可以使用 git add . 命令来添加当前项目的所有文件。
现在修改 README 文件:
[root@localhost runoob]# vim README 测试项目
[root@localhost runoob]# git status -s AM README A hello.php
"AM" 状态的意思是,这个文件在将它添加到暂存之后又有改动。
改动后再执行 git add 命令将其添加到暂存中:
[root@localhost runoob]# git add .
[root@localhost runoob]# git status -s
A README
A hello.php
当你要将你的修改包含在即将提交的快照里时,需要执行 git add命令。
git status
git status 查看在上次提交之后是否有修改,仅表示上次提交之后的状态变化。
当该命令加了 -s 参数,获得简短的结果输出。如果没加该参数会详细输出内容:
[root@localhost runoob]# 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
#
[root@localhost runoob]#
git diff
执行 git diff 来查看执行 git status 的结果的详细信息。
git diff 命令显示已写入暂存与已修改但尚未写入缓存的改动的区别。git diff 有两个主要的应用场景。
- 尚未缓存的改动(以上一次add操作为参照点):git diff
- 查看已缓存的改动(以上一次commit操作为参照点): git diff --cached
- 查看已缓存的与未缓存的所有改动:git diff HEAD
- 显示摘要而非整个 diff:git diff --stat
在 hello.php 文件中输入以下内容:
<?php
echo 'test project';
?>
[root@localhost runoob]# git status -s
A README
AM hello.php
[root@localhost runoob]# git diff
diff --git a/hello.php b/hello.php
index e69de29..96ca0d3 100644
--- a/hello.php
+++ b/hello.php
@@ -0,0 +1,3 @@
+<?php
+echo 'test project';
+?>
git diff 一行一行地显示这些改动具体是啥。
接下来我们来查看下 git diff --cached 的执行效果:
[root@localhost runoob]# git add hello.php
[root@localhost runoob]# git status -s
A README
A hello.php
[root@localhost runoob]# git diff --cached
diff --git a/README b/README
new file mode 100644
index 0000000..4c3ced1
--- /dev/null
+++ b/README
@@ -0,0 +1 @@
+test project
diff --git a/hello.php b/hello.php
new file mode 100644
index 0000000..96ca0d3
--- /dev/null
+++ b/hello.php
@@ -0,0 +1,3 @@
+<?php
+echo 'test project';
+?>
git commit
执行 git commit 将缓存区内容添加到仓库中。
Git 为你的每一个提交都记录你的名字与电子邮箱地址,所以第一步需要配置用户名和邮箱地址。
$ git config --global user.name 'cakin24' $ git config --global user.email 798103175@qq.com
在首个例子中,使用 -m 选项以在命令行中提供提交注释。
[root@localhost runoob]# git status -s
A README
A hello.php
[root@localhost runoob]# git commit -m 'first commit'
[master (root-commit) 5a1876f] first commit2 files changed, 4 insertions(+) create mode 100644 README
create mode 100644 hello.php
现在我们已经记录了快照。如果我们再执行 git status:
[root@localhost runoob]# git status
# On branch master
nothing to commit, working directory clean
[root@localhost runoob]# git status -s
[root@localhost runoob]# git diff
[root@localhost runoob]# git diff --cached
[root@localhost runoob]#
以上输出说明我们在最近一次提交之后,没有做任何改动,是一个"working directory clean:干净的工作目录"。
如果你没有设置 -m 选项,Git 会尝试为你打开一个编辑器以填写提交信息。屏幕会像这样:
[root@localhost runoob]# git commit
# 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: README
#
~
~
".git/COMMIT_EDITMSG" 9L, 257C
[master 30d7ccd] modified: README
1 file changed, 1 insertion(+)
如果你觉得 git add 提交缓存的流程太过繁琐,Git 也允许你用 -a 选项跳过这一步。命令格式如下:
git commit -a
我们先修改 hello.php 文件为以下内容,即加红色的那两行:
<?php
echo 'test project';
echo 'test 1 line';
echo 'test 2 line';
?>
再执行以下命令:
[root@localhost runoob]# git commit -am 'change hello.php'
[master 58f4af3] change hello.php1 file changed, 2 insertions(+)
git reset HEAD
git reset HEAD 命令用于取消已缓存的内容。
改动README文件,内容如下,即新加入红色的3行:
test project
test1
test2
test3
test4
hello.php 文件修改如下,即新加入红色的2行:
<?php
echo 'test project';
echo 'test 1 line';
echo 'test 2 line';
echo 'test 3 line';
echo 'test 4 line';
?>
现在两个文件修改后,都提交到了缓存区,我们现在要取消其中一个的缓存,操作如下:
[root@localhost runoob]# git status -s M README M hello.php [root@localhost runoob]# git add . [root@localhost runoob]# git status -s M README M hello.php [root@localhost runoob]# git reset HEAD -- hello.php Unstaged changes after reset: M hello.php [root@localhost runoob]# git status -s M README M hello.php
上面的操作有两个地方要注意:
1.--符号后有1个空格
2.注意两个M的位置,第1个M是缓存区针对版本库有修改。第2个M是工作区针对缓存区有修改。
现在你执行 git commit,只会将 README 文件的改动提交,而 hello.php 由于缓存区没发生变化,所以提交不会发生变化。
[root@localhost runoob]# git commit -m 'changed README' [master b2ea2fe] changed README 1 file changed, 3 insertions(+)[root@localhost runoob]# git status -s M hello.php
现在要将hello.php 文件的修改提交。
这时我们可以使用以下命令将 hello.php 的修改提交:
[root@localhost runoob]# git commit -am 'change hello.php'
[master 462a9de] change hello.php
1 file changed, 2 insertions(+)
[root@localhost runoob]# 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文件:
[root@localhost runoob]# git rm hello.php
rm 'hello.php'
[root@localhost runoob]# ls
README
不从工作区中删除文件:
[root@localhost runoob]# git rm --cached README
rm 'README'
[root@localhost runoob]# ls
README
git mv
git mv 命令做得所有事情就是 git rm --cached 命令的操作, 重命名磁盘上的文件,然后再执行 git add 把新文件添加到缓存区。
我们先把刚移除的 README 添加回来:
[root@localhost runoob]# git add README
然后对其重命名:
[root@localhost runoob]# git mv README README.md
[root@localhost runoob]# ls
README.md
相关推荐
通过本文档提供的Git基本操作命令详解,读者可以快速上手使用git命令。 首先,了解Git的基本概念是非常重要的。在Linux和POSIX系统上,可以在Git官方网站下载Git安装包。初始化版本控制前的准备工作,可以通过git ...
### Git常用操作命令详解 #### 一、远程仓库管理(Remote Management) 在使用Git进行版本控制时,远程仓库是项目协作的重要组成部分。以下是一些常用的远程仓库管理命令: 1. **克隆远程仓库 (Clone Remote ...
以上总结了git的基本操作命令,包括了配置、初始化、文件添加、提交、状态查看、差异对比、分支管理、撤销与恢复、远程仓库管理以及一些特殊操作。这些命令是git使用中最常用的基础命令,掌握了它们,就能够有效地...
开发常用git指令: git init # 初始化本地git环境 git clone <#> 克隆一份代码到本地 ...也即是将readme.txt撤回到最近一次git add或git commit状态(注:--表示在当前分支,如果没有,则切换到另一个分支)
Git 基本操作文档 Git 是一个开源的版本控制系统,广泛应用于软件开发、文档管理等领域。本文档将介绍 Git 的基本操作,...Git 是一个强大的版本控制系统,掌握 Git 的基本操作可以帮助读者更好地管理代码和协作开发。
Git 基本操作 Git 是一个分布式版本控制软件,不仅仅是一个版本控制系统,也是一个内容管理系统(CMS)、工作管理系统等。...通过本文的学习,您可以掌握 Git 的基本操作和命令,并将其应用于实际项目中。
Git 是一个开源的分布式版本控制系统,git 使用基本操作linux命令
### git的常用命令使用 #### 基本概念与初始化 - **Git**:一种分布式版本控制系统,可以高效地管理...通过以上内容,我们了解了Git的基础操作及常见命令的使用方法,这对于快速入门Git并熟练掌握其使用非常有帮助。
本篇文章将详细解析Git的常用命令,帮助你更好地理解和掌握Git的基本操作。 ### 新建代码库 创建一个新的Git代码库,你可以使用以下命令: 1. 在当前目录初始化Git代码库:`git init` 2. 在指定目录初始化Git代码...
在使用git时的一些基本命令
总的来说,Git的这些基本操作构成了开发者日常工作中不可或缺的一部分。熟练掌握它们,能提高团队协作效率,确保项目的稳定性和可维护性。无论你是初学者还是经验丰富的开发者,定期回顾和实践这些命令都是保持Git...
#### 四、Git基本操作 ##### 1. 创建版本库 - **概念**: 版本库是一个包含项目文件及其版本历史的特殊目录。 - **步骤**: 1. 在指定位置创建一个空目录作为版本库。 2. 在该目录内运行`git init`命令初始化版本...
Git Bash常用操作命令,包括基本的pull push merge操作等
### Git 常用命令与操作指南 #### Git 简介 Git 是一款功能强大、高效且开源的分布式版本控制系统。自推出以来,Git 因其灵活性和速度,在开源和协作编程社区迅速取代了传统的版本控制系统如 SVN、CVS 和 Perforce...
根据给定文件的信息,我们可以提炼出以下几个核心知识点: ### 一、Git与版本控制的重要性 #### 版本控制概述 版本控制(Revision control)是一...掌握 Git 的基本操作和最佳实践能够极大地提升开发效率和代码质量。
以下是对标题和描述中提到的Git基本操作的详细说明: 1. **创建 Git 仓库** 在源代码目录下使用 `git init` 命令可以初始化一个新的 Git 仓库。这会在目录中生成一个隐藏的 `.git` 文件夹,用于存储仓库的所有元...
#### 三、Git基本操作详解 **Git**的操作流程主要包括以下几个步骤: 1. **初始化一个本地仓库**: - 使用`git init`命令来初始化一个新的仓库。这会在当前目录下创建一个名为`.git`的隐藏目录,用于存放所有必要...
3. 基本操作命令 - 提交改动到本地仓库:`git commit -m "提交信息"` - 查看当前状态:`git status` - 查看文件差异:`git diff` - 添加文件到暂存区:`git add [文件名]` - 添加所有改动到暂存区:`git add .`...