Git 命令还在更新

初次运行前配置 git config 工具

git config是用来设置控制 Git 外观和行为的配置变量
这些变量存储在三个不同的位置:

1、/etc/gitconfig 文件: 包含系统上每一个用户及他们仓库的通用配置。 如果使用带有 --system 选项的 git config 时,它会从此文件读写配置变量。

2、/.gitconfig 或 ~/.config/git/config 文件:只针对当前用户。 可以传递 --global 选项让 Git 读写此文件。

3、当前使用仓库的 Git 目录中的 config 文件(就是 .git/config):针对该仓库。
每一个级别覆盖上一级别的配置

标题设置用户信息

当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改:

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。

文本编辑器 vim

检查配置信息 git config --list

重复的变量名:Git 会使用它找到的每一个变量的最后一个配置。
git config : 来检查 Git 的某一项配置

获取帮助

三种方式

$ git help <verb>
$ git <verb> --help
$ man git-<verb>

例如:

$ git help config

git 基础

获取仓库

有两种取得 Git 项目仓库的方法:
1、在现有项目或目录下导入所有文件到 Git 中;
2、从一个服务器克隆一个现有的 Git 仓库。
第一种实现方式:
a:你只需要进入该项目目录并输入:

$ git init

b:你可通过 git add 命令来实现对指定文件的跟踪,然后执行 git commit 提交:

 $ git add *.c
$ git add LICENSE
$ git commit -m 'initial project version'

现在,你已经得到了一个实际维护(或者说是跟踪)着若干个文件的 Git 仓库。

第二种实现方式
使用克隆仓库的命令 git clone [url]
例如:

$ git clone https://github.com/libgit2/libgit2

这会在当前目录下创建一个名为 “libgit2” 的目录,并在这个目录下初始化一个 .git 文件夹,从远程仓库拉取下所有数据放入 .git 文件夹,然后从中读取最新版本的文件的拷贝。 如果你进入到这个新建的 libgit2 文件夹,你会发现所有的项目文件已经在里面了,准备就绪等待后续的开发和使用。 如果你想在克隆远程仓库的时候,自定义本地仓库的名字,你可以使用如下命令:

$ git clone https://github.com/libgit2/libgit2 mylibgit

本地仓库的名字就会被命名为mylibgit

记录每次更新到仓库

文件状态:已跟踪或未跟踪
git文件生命周期:未修改-》已修改-》逐步将这些修改过的文件放入暂存区,然后提交所有暂存了的修改

$ git status可以查看文件状态,是否被修改,是否有未提交的文件,是否有未跟踪的文件,并告诉你这个分支同远程服务器上对应的分支没有偏离

状态简览:git status -s(git status --short)输出内容更加紧凑
$

 git status -s
 M README
MM Rakefile
A  lib/git.rb
M  lib/simplegit.rb
?? LICENSE.txt

未跟踪文件前面有 ?? 标记,
新添加到暂存区中的文件前面有 A 标记
新添加的未跟踪文件前面有 ?? 标记,新添加到暂存区中的文件前面有 A 标记,修改过的文件前面有 M 标记
而 Rakefile 在工作区被修改并提交到暂存区后又在工作区中被修改了,所以在暂存区和工作区都有该文件被修改了的记录。

跟踪新文件

$ git add <文件名>/<l路径名>
例如 :git add TestClass
git add 命令使用文件或目录的路径作为参数;如果参数是目录的路径,该命令将递归地跟踪该目录下的所有文件。
这是个多功能命令:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等。 将这个命令理解为“添加内容到下一次提交中”而不是“将一个文件添加到项目中”要更加合适。

忽略文件

我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式。 来看一个实际的例子:
$

 cat .gitignore
*.[oa]
*~

第一行告诉 Git 忽略所有以 .o 或 .a 结尾的文件。
文件 .gitignore 的格式规范如下:

所有空行或者以 # 开头的行都会被 Git 忽略。

可以使用标准的 glob 模式匹配。

匹配模式可以以(/)开头防止递归。

匹配模式可以以(/)结尾指定目录。

要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
提交:
$ git commit -m "Story 182: Fix benchmarks for speed"
git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤
git rm 记录此次移除文件的操作:

移动文件

$ git mv file_from file_to
可做重命名
运行 git mv 就相当于运行了下面三条命令:
$

 mv README.md README
$ git rm README.md
$ git add README

查看已暂存和未暂存的修改

,git diff 将通过文件补丁的格式显示具体哪些行发生了改变。
若要查看已暂存的将要添加到下次提交里的内容,可以用 git diff --cached 命令。与 git diff --staged一样
请注意,git diff 本身只显示尚未暂存的改动,而不是自上次提交以来所做的所有改动。 所以有时候你一下子暂存了所有更新过的文件后,运行 git diff 后却什么也没有,
在这里插入图片描述

提交更新

git commit 之前git status查看是不是所有的修改都已经git add了
git commit -a 可以跳过暂存
可以用 -v 选项,这会将你所做的改变的 diff 输出放到编辑器中从而使你知道本次提交具体做了哪些修改。
添加 -m 选项,将提交信息与命令放在同一行

移除文件

从暂存区域移除已跟踪的文件
例如

$ git rm helloWord.java

下一次提交时,该文件就不再纳入版本管理了
删除修改并提交到暂存区的文件,-f(force)
当你想从git删除,并且不想删除文件 git rm --cached
命令后面可以列出文件或者目录的名字,也可以使用 glob 模式。 比方说:

$ git rm log/\*.log

此命令删除 log/ 目录下扩展名为 .log 的所有文件。

 $ git rm \*~

该命令为删除以 ~ 结尾的所有文件。

2.3查看提交历史

完成这个任务最简单而又有效的工具是 git log 命令。
选项是 -p,用来显示每次提交的内容差异。 你也可以加上 -2 来仅显示最近两次提交:

$ git log -p -2

如果你想看到每次提交的简略的统计信息,你可以使用 --stat 选项:

$ git log --stat

选项是 --pretty。 这个选项可以指定使用不同于默认格式的方式展示提交历史,比如用 oneline 将每个提交放在一行显示,查看的提交数很大时非常有用。 另外还有 short,full 和 fuller 可以用,展示的信息或多或少有些不同

$ git log --pretty=oneline

format,可以定制要显示的记录格式
$ git log --pretty=format:"%h - %an, %ar : %s"
format选项说明:
在这里插入图片描述

log 限制输出长度

按照时间作限制的选项,比如 --since 和 --until 也很有用
面的命令列出所有最近两周内的提交:

$ git log --since=2.weeks

–author 选项显示指定作者的提交,用 --grep 选项搜索提交说明中的关键字。
筛选选项是 -S,可以列出那些添加或移除了某些字符串的提交。 比如说,你想找出添加或移除了某一个特定函数的引用的提交,你可以这样使用:

$ git log -Sfunction_name

来看一个实际的例子,如果要查看 Git 仓库中,2008 年 10 月期间,Junio Hamano 提交的但未合并的测试文件,可以用下面的查询命令:

$ git log --pretty="%h - %s" --author=gitster --since="2008-10-01" \
   --before="2008-11-01" --no-merges -- t/

2.4撤销操作

可以运行带有 --amend 选项的提交命令尝试重新提交:

$ git commit --amend

参考:https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%91%BD%E4%BB%A4%E8%A1%8C

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值