美文网首页程序员
2016-07-13 Git 基础(一)

2016-07-13 Git 基础(一)

作者: 重剑无锋_Augustine | 来源:发表于2016-07-13 11:19 被阅读44次

2.1 Git 基础 - 获取 Git 仓库

方式有两种

  • 在现有目录中初始化仓库
  • 克隆现有的仓库

在现有仓库中初始化仓库

git init
git add .
git commit -m "balabala"

克隆现有的仓库

git clone url
git clone url rename

2.2 Git 基础 - 记录每次更新到仓库

工作目录下每一个文件都不外乎两个状态:已跟踪和未跟踪。已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后,它们的状态可能处于未修改,已修改或已放入暂存区。 工作目录中除已跟踪文件以外的所有其它文件都属于未跟踪文件,它们既不存在于上次快照的记录中,也没有放入暂存区。 初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态。

文件的状态变化周期

查看当前文件状态

git status
On branch master
nothing to commit, working directory clean
echo 'My Project' > README
git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    README

nothing added to commit but untracked files present (use "git add" to track)

跟踪新文件

git add README
git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file:   README

git add 命令使用文件或者目录路径作为参数;如果参数是目录的路径,该命令将递归的跟踪该目录下的所有文件。

暂存已修改的文件

如果我们这个时候把 README 文件修改一下,然后查看状态如下:

➜  git_test git:(master) ✗ git status
On branch master

Initial commit

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

    new file:   readme

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   readme

怎么回事? 现在 CONTRIBUTING.md 文件同时出现在暂存区和非暂存区。 这怎么可能呢? 好吧,实际上 Git 只不过暂存了你运行 git add 命令时的版本, 如果你现在提交,CONTRIBUTING.md 的版本是你最后一次运行 git add 命令时的那个版本,而不是你运行 git commit 时,在工作目录中的当前版本。 所以,运行了 git add 之后又作了修订的文件,需要重新运行 git add 把最新版本重新暂存起来:

➜  git_test git:(master) ✗ git add readme
➜  git_test git:(master) ✗ gst
On branch master

Initial commit

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

    new file:   readme

忽略文件

一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以创建一个名为.gitignore的文件。

.gitignore 文件的格式规范如下:

  • 所有空行或者以 开头的行都会被 Git 忽略。
  • 可以使用标准的 glob 模式匹配。
  • 匹配模式可以以(/)开头防止递归。
  • 匹配模式可以以(/)结尾指定目录。
  • 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。 星号(*)匹配零个或多个任意字符;[abc]匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。 使用两个星号(*) 表示匹配任意中间目录,比如a/**/z 可以匹配 a/z, a/b/za/b/c/z

例子

# no .a files
*.a

# but do track lib.a, even though you're ignoring .a files above
!lib.a

# only ignore the TODO file in the current directory, not subdir/TODO
/TODO

# ignore all files in the build/ directory
build/

# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt

# ignore all .pdf files in the doc/ directory
doc/**/*.pdf

laravel 的例子 更多例子

vendor/
node_modules/

# Laravel 4 specific
bootstrap/compiled.php
app/storage/

# Laravel 5 & Lumen specific
bootstrap/cache/
.env.*.php
.env.php
.env

# Rocketeer PHP task runner and deployment package. https://github.com/rocketeers/rocketeer
.rocketeer/

相关文章

  • 2016-07-13 Git 基础(一)

    2.1 Git 基础 - 获取 Git 仓库 方式有两种 在现有目录中初始化仓库 克隆现有的仓库 在现有仓库中初始...

  • 2016-07-13 Git 基础(三)

    Git 基础 - 查看提交历史 查看提交历史 git log 如果不带任何参数的话,会按照提交时间列出所有的更新。...

  • 2016-07-13 Git 基础(二)

    Git 基础 - 记录每次更新到仓库(下) 查看已暂存和未暂存的修改 git diff 比较的是当前工作目录中的当...

  • 2016-07-13 Git 起步(一)

    这一章基本上没什么大营养,不愿意看的可以略过。。。 关于版本控制 本地版本控制没什么可说的,最原始的方式。自己根据...

  • 2016-07-13 Git 起步(三)

    直接记录快照,而非差异比较 svn\csv等是保存的信息看做一组基本文件和每个文件随着时间逐步积累的差异储存每个文...

  • 2016-07-13 Git 起步(二) - 初次运行 Git

    初次运行前配置 Git 自带一个 git config 的工具来设置 控制GIT 的外环和行为的配置变量。这些配置...

  • Git基本操作

    一、 git的基础操作 基础操作 1.在项目里创建一个git : $ git init 链接远程项目: $ git...

  • 2.Git初步

    Git是什么 Git是什么 Git基础 Git基础 1. 下载安装Git GIT官网 安装好后,按win+R 输入...

  • Git总结

    初步 下载git 基础配置: 基础操作 获取Git仓库 初始化现有仓库 git init 克隆远程仓库 git c...

  • git操作

    git基础命令: git commit ---- 提交git branch newBranchName --- 新...

网友评论

    本文标题:2016-07-13 Git 基础(一)

    本文链接:https://www.haomeiwen.com/subject/vbbsjttx.html