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命令。