目录
[1.在 Windows 上安装](#1.在 Windows 上安装)
[1.管理 Git 仓库中的远程仓库](#1.管理 Git 仓库中的远程仓库)
一.安装及配置
1.在 Windows 上安装
msysGit 的项目提供了安装包,可以到 GitHub 的页面上下载 exe 安装文件并运行:
http://msysgit.github.com/
2.用户信息
配置个人的用户名称和电子邮件地址。
$ git config --global user.name "John Doe"
$ git config --global user.email [email protected]
如果用 --global
选项,更改的是位于用户主目录下的配置文件,以后所有的项目都会默认使用这里配置的用户信息。如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global
选项重新配置即可,新的设定保存在当前项目的 .git/config
文件里。
•查看配置信息
要检查已有的配置信息,可以使用 git config --list
命令:
$ git config --list
user.name=Scott Chacon
[email protected]
color.status=auto
color.branch=auto
color.interactive=auto
color.diff=auto
...
也可以直接查阅某个环境变量的设定,只要把特定的名字跟在后面即可。
$ git config user.name
Scott Chacon
3.差异分析工具
在解决合并冲突时使用哪种差异分析工具。比如要改用 vimdiff 的话:
$ git config --global merge.tool vimdiff
二.基础
1.创建仓库
第1种是在现存的目录下,通过导入所有文件来创建新的 Git 仓库。第2种是从已有的 Git 仓库克隆出一个新的镜像仓库来。
**•**在工作目录中初始化新仓库
$ git init
$ git add *.c
$ git add README
$ git commit -m 'initial project version'
•从现有仓库克隆
在当前目录下创建一个名为grit
的目录,其中包含一个 .git
的目录,用于保存下载下来的所有版本记录,然后从中取出最新版本的文件拷贝。如果进入这个新建的 grit
目录,你会看到项目中的所有文件已经在里边了,准备好后续的开发和使用。
$ git clone git://github.com/schacon/grit.git
如果希望在克隆的时候,自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:
$ git clone git://github.com/schacon/grit.git mygrit
要克隆Git仓库的指定分支
git clone -b <branch_name> --single-branch <repository_url>
2.提交与修改
•git status:查看仓库当前的状态,显示有变更的文件。
$ git status
On branch master
nothing to commit, working directory clean
•忽略某些文件
可以创建1个名为 .gitignore
的文件,列出要忽略的文件模式。来看一个实际的例子:
$ cat .gitignore
*.[oa]
*~
第1行告诉 Git 忽略所有以 .o
或 .a
结尾的文件。一般这类对象文件和存档文件都是编译过程中出现的,我们用不着跟踪它们的版本。
第2行告诉 Git 忽略所有以波浪符(~
)结尾的文件,许多文本编辑软件(比如 Emacs)都用这样的文件名保存副本。
文件 .gitignore
的格式规范如下:
|--------------------------------------|
| 1. 所有空行或者以注释符号 #
开头的行都会被 Git 忽略 |
| 2.可以使用标准的 glob 模式匹配 |
| 3.匹配模式最后跟反斜杠(/
)说明要忽略的是目录 |
| 4.要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!
)取反 |
再看一个 .gitignore
文件的例子:
# 忽略所有 .a 结尾的文件
*.a
# 但 lib.a 除外
!lib.a
# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
/TODO
# 忽略 build/ 目录下的所有文件
build/
# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
# ignore all .txt files in the doc/ directory
doc/**/*.txt
•git add . :添加文件到暂存区。
git add .gitignore
•git diff:比较文件的不同,即暂存区和工作区的差异。
•git commit:提交更新。
git commit -m [message]
message\] 可以是一些备注信息。
•git rm :删除文件。
```python
#从暂存区和工作区中删除 1.txt 文件
git rm 1.txt
#强制删除选项 -f
git rm -f 1.txt
```
•git mv :移动或重命名一个文件、目录或软连接。
```python
git mv [file] [newfile]
```
3.查看提交历史
•git log :查看历史提交记录。
```python
git log [选项] [分支名/提交哈希]
```
常用的选项包括:
|-----------------|-----------------|
| `-p` | 显示提交的补丁(具体更改内容) |
| `--since=<时间>` | 只显示指定时间之后的提交 |
| `--until=<时间>` | 只显示指定时间之前的提交 |
| `--author=<作者>` | 只显示特定作者的提交 |
| `--grep=<模式>` | 只显示包含指定模式的提交消息 |
•git blame \