创建与获取项目命令

git init

用 git init 在目录中创建新的 Git 仓库。 你可以在任何时候、任何目录中这么做,完全是本地化的。

在目录中执行 git init,就可以创建一个 Git 仓库了。比如我们创建 demo 项目:

$ mkdir demo
$ cd demo/
$ git init
//或者
$ git init demo
# 初始化空的 Git 版本库于 /www/demo/.git/

此时在demo文件夹里可以看到生成了 .git 这个子目录。

git clone

使用 git clone 拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。

如果想要复制一个项目,看看代码,你就可以克隆那个项目。 执行命令:

git clone [url]

默认情况下,Git 会按照你提供的 URL 所指示的项目的名称创建你的本地项目目录。 通常就是该 URL 最后一个 / 之后的项目名称。如果你想要一个不一样的名字, 你可以在该命令后加上你想要的名称。

基本快照

Git 的工作就是创建和保存你的项目的快照及与之后的快照进行对比。

git add

git add 命令可将该文件添加到缓存:

$ git add demo.txt //添加 demo.txt 文件
$ git add . //添加当前项目的所有文件

git status

git status 以查看在你上次提交之后是否有修改。

$ git status
# 位于分支 master
# 未跟踪的文件:
#   (使用 "git add <file>..." 以包含要提交的内容)
#
#    .ssh
#    .ssh.pub
#    id_rsa
#    id_rsa.pub
提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)

git diff

执行 git diff 来查看执行 git status 的结果的详细信息。

git diff 命令显示已写入缓存与已修改但尚未写入缓存的改动的区别。git diff 有两个主要的应用场景。

  • 尚未缓存的改动:git diff;
  • 查看已缓存的改动: git diff --cached;
  • 查看已缓存的与未缓存的所有改动:git diff HEAD;
  • 显示摘要而非整个 diff:git diff --stat;

git commit

使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中。

$ git commit -m '第一次版本提交' //使用 -m 选项以在命令行中提供提交注释,如果没有设置 -m 选项,Git 会尝试为你打开一个编辑器以填写提交信息
git commit -a //如果觉得 git add 提交缓存的流程太过繁琐,Git 也允许你用 -a 选项跳过这一步
git commit -am '修改 demo.txt 文件' //跳过提交至缓存区并注释

git reset HEAD

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

$ git reset HEAD demo.txt 

git rm

要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除,然后提交。可以用以下命令完成此项工作:

git rm <file>

如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f:

git rm -f <file>

如果把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用 --cached 选项即可:

git rm --cached <file>

进入某个目录,删除整个目录中的文件:

git rm –r * 

git mv

git mv 命令用于移动或重命名一个文件、目录、软连接。

$ git mv demo.txt  demo.php //重命名

git log

查看提交记录可以用:

$ git log

Git 分支管理

列出分支

git branch //当执行 git init 的时候,默认情况下 Git 就会为你创建 master 分支

新增分支

$ git branch demo //新增一个名为demo的分支

切换分支

$ git checkout demo //切换到名为demo的分支
$ git checkout -b demo2 //创建demo2分支并切换到该分支下

删除分支

$ git branch -d demo2 //删除demo2分支

分支合并

一旦某分支有了独立内容,你终究会希望将它合并回到你的主分支:

$ git merge demo