git help 获取帮助
git help 命令
git 命令 –help 调出帮助文档
git add -help
git add 添加至暂存区
git add命令实现对指定文件的跟踪,并放入到暂存区中。git add 后面跟的是文件,跟踪的是当前目录下的该文件。如果git add 后跟的是目录路径,递归跟踪该目录下的所有文件。
- 添加指定文件 git add 文件名
3. 添加所有文件 git add .
git commit 提交
git add 把文件放入暂存区,需要再执行git commit命令完成提交,这样就放入仓库当中。在提交的过程中需要加一个-m选项,输入提交说明,这个选项必不可少。在git提交时,如果在命令行中没有提供说明,也就是没有使用-m选项参数,那么git会打开一个默认的编辑器,要求输入提交说明,输入完毕后保存退出即可。
git commit --amend 提交撤消操作
提交到了仓库才发现漏掉了几个文件没有添加,或者提交信息写错了。git commit --amend提交命令尝试重新提交。会将暂存区中的文件提交。 如果自上次提交以来你还未做任何修改(例如,在上次提交后马上执行了此命令),那么快照会保持不变,而你所修改的只是提交信息。
说明:只会有一个提交。第二次提交将代替第一次提交的结果。
Ctrl + u 清除一行
Ctrl + L 清屏
git status 显示工作区文件状态
查看哪些文件处于什么状态,可以使用git status命名。
克隆仓库后立即使用git status 命令会见到类似以下这样的输出信息
nothing to commit, working directory clean
工作目录相当干净,所有已跟踪文件在上次提交后都未被更改过。当前目录下没有出现任何处于未跟踪状态的新文件。否则 Git 会在这里列出来。
On branch 分支名称
当前所在分支。
在仓库中新建一个文件,之前并不存在这个文件,使用git status 命令会见到类似以下这样的输出信息
Untracked files
未跟踪的文件意味着 Git 在之前的快照(提交)中没有这些文件。Git 不会自动将之纳入跟踪范围,除非你告诉它“需要跟踪该文件”, 这样将不必担心生成的二进制文件或其它不想被跟踪的文件包含进来。
使用命令 git add 开始跟踪一个文件,添加到暂存区,使用git status 命令会见到类似以下这样的输出信息
Changes to be committed
如果文件在 Changes to be committed 这行下面的,就说明是已暂存状态。 如果此时提交,那么该文件此时此刻的版本将被留存在历史记录中。
修改一个已被跟踪的文件(暂存已修改文件),使用git status 命令会见到类似以下这样的输出信息
Changes to be committed:
如果文件出现在 Changes not staged for commit 这行下面,说明已跟踪文件的内容发生了变化,但还没有放到暂存区。 要暂存这次更新,需要运行 git add 命令。 git add是个多功能命令,可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等。 简单理解git add这个命令是添加内容到下一次提交中。
git status紧凑的格式输出
git status -s 或 git status –short
图1显示的是M靠右边,表示该文件已放入暂存区,之后又被修改了
图2 ?? 新添加的未跟踪文件
标记
?? 新添加的未跟踪文件
A 新添加到暂存区中的文件
M 修改过的文件。M 有两个可以出现的位置,出现在右边的 M 表示该文件被修改了但是还没放入暂存区,出现在靠右边的 M 表示该文件被修改了并放入了暂存区。
git clone 克隆版本库
git clone克隆现有的仓库,获得一份已经存在了的 Git 仓库的拷贝。Git 克隆的是该 Git 仓库服务器上的几乎所有数据,而不是仅仅复制完成你的工作所需要文件。执行 git clone 命令的时候,默认配置下远程 Git 仓库中的每一个文件的每一个版本都将被拉取下来。
格式:git clone [url]
克隆远程仓库的时候,自定义本地仓库的名字
git clone [url] 自定义的名称
git diff 差异比较
git diff命令通过文件补丁的格式显示具体哪些行发生了改变。查看尚未暂存的文件更新了哪些部分,不加参数直接输入 git diff命令。比较的是工作目录中当前文件和暂存区域快照之间的差异, 也就是修改之后还没有暂存起来的变化内容。
git diff --cached 命令或git diff --staged查看已暂存的将要添加到下次提交里的内容。
说明:git diff 本身只显示尚未暂存的改动,而不是自上次提交以来所做的所有改动。有时候一下子暂存了所有更新过的文件后,运行 git diff 后却什么也没有。
git diff 的插件版本
git difftool命令调用图形化差异比较工具
git difftool --tool-help 命令来看你的系统支持哪些 Git Diff 插件。
git rm 删除文件
git rm 移除文件,要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除,从暂存区域移除,然后提交。 使用 git rm 命令,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了。
说明:如果只是简单地从工作目录中手工删除文件,运行 git status 时就会出现“Changes not staged for commit”未暂存清单。
git rm 记录此次移除文件的操作,下一次提交时,该文件就不再纳入版本管理了。 如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f。是一种安全特性,用于防止误删还没有添加到快照的数据,这样的数据不能被 Git 恢复。
想把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中。想让文件保留在磁盘,但是并不想让 Git 继续跟踪。忘记添加 .gitignore 忽略文件,可以使用git rm --cached。
git rm 命令后面可以列出文件或者目录的名字,也可以使用 glob 模式。
例如:删除 log/ 目录下扩展名为 .log 的所有文件。
git rm -f log/*.log
说明:星号 * 之前的反斜杠 \, 因为 Git 有它自己的文件模式扩展匹配方式。
git mv 重命名
注意:本地重命名的文件需要git add .与git commit 最后git push 到远程仓库,远程的文件才会重命名
Git 不像其它的版本控制系统,并不显式跟踪文件移动操作。如果在 Git 中重命名了某个文件,仓库中存储的元数据并不会体现出这是一次改名操作。但是Git会知道发生了什么。
格式:git mv 旧文件名 新文件名
git mv命令相当于运行了 三条命令
mv 旧文件名 新文件名 git rm 旧文件名 git add 新文件名
说明:分开操作话,Git意识到这是一次改名,不管以哪种方式结果都一样。git mv 是一条命令而另一种方式需要三条命令。有时用其他工具批量改名,记得在提交前删除老的文件名,再添加新的文件名。