Git命令
1 取得项目的Git仓库
有两种取得 Git 项目仓库的方法。第一种是在现存的目录下,通过导入所有文件来创建新的 Git 仓库。第二种是从已有的 Git 仓库克隆出一个新的镜像仓库来。
1.1 在工作目录中初始化新仓库
git init
git add *.c
git add README.md
git commit -m "basic version"
初始化后,在当前目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。
如果当前目录下有几个文件想要纳入版本控制,需要先用git add
命令告诉 Git 开始对这些文件进行跟踪,然后提交。
1.2 从现有仓库克隆
git clone https://github.com/username/project_name.git [new_folder_name]
在当前目录创建名为project_name
的目录,里面包含.git
目录,用于保存下载下来的所有版本记录,然后从中取出最新版本的文件拷贝。另外也可以指定新的目录名new_folder_name
2 记录每次更新到仓库
工作目录下面的所有文件都不外乎这两种状态:已跟踪或未跟踪。已跟踪的文件是指本来就被纳入版本控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们的状态可能是未更新,已修改或者已放入暂存区。而所有其他文件都属于未跟踪文件。它们既没有上次更新时的快照,也不在当前的暂存区域。初次克隆某个仓库时,工作目录中的所有文件都属于已跟踪文件,且状态为未修改。Git文件状态变化周期如图:
2.1 检查当前文件状态
要确定哪些文件当前处于什么状态,可以用git status
命令。
Untracked files
是未跟踪文件,表面Git在之前的快照(提交)中没有这些文件;Git 不会自动将之纳入跟踪范围,除非使用git add
跟踪文件。
Changes to be committed
是已暂存文件,等待提交。
Changes not staged for commit
是已跟踪文件的内容发生了变化,但还没有放到暂存区。
2.2 跟踪新文件
使用命令git add
开始跟踪一个新文件。在git add
后面可以指明要跟踪的文件或目录路径。如果是目录的话,就说明要递归跟踪该目录下的所有文件。
2.3 暂存已修改文件
使用命令git add
将已跟踪的并且内容发生改变的文件放到暂存区。
2.4 忽略某些文件
创建一个名为 .gitignore 的文件,列出要忽略的文件模式。文件.gitignore
的格式规范如下:
- 所有空行或者以注释符号
#
开头的行都会被Git
忽略。 - 可以使用标准的
glob
模式匹配。 - 匹配模式最后跟反斜杠
/
说明要忽略的是目录。 - 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号
!
取反。
2.5 查看已暂存和未暂存的更新
如果要查看具体修改了什么地方,可以用git diff
命令。