提交新版本¶
在本地创建git
仓库后,就可以对文件进行版本控制.文件分为2
种状态:已追踪(tracked
)和未追踪(untracked
)
-
未追踪(
untracked
)文件就是未添加到版本控制的文件 -
已追踪的文件可分为已修改(
modified
),已暂存(staged
)和未修改(unmodified
)文件
基本的git
工作流程如下:
- 在工作目录下添加文件,修改文件或删除文件
- 保存文件状态到暂存区域
- 提交修改记录到仓库
查看文件状态¶
使用命令git status
查看文件状态,同时会给出相应文件状态下的命令
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: docs/source/index.rst
Untracked files:
(use "git add <file>..." to include in what will be committed)
.vscode/
docs/source/git/
no changes added to commit (use "git add" and/or "git commit -a")
仅需查看文件状态
$ git status -s
A .vscode/settings.json
M docs/source/index.rst
?? docs/source/git/
符号A
表示已暂存,符号M
表示已修改,符号??
表示未追踪
其中已修改文件有如下3
种状态
$ git status -s
M README
MM Rakefile
M lib/simplegit.rb
- 符号
_M
表示已修改还未加入暂存区域 - 符号
MM
表示已加入暂存区域的已修改文件又被修改了 - 符号
M_
表示添加到暂存区域的已修改文件
添加修改文件¶
使用命令git add
将未追踪文件或已修改文件添加到暂存区域
git add name1 name2 ...
# 添加所有文件
git add *
忽略文件¶
编辑.gitignore
文件,将整个工程文件中不想添加版本控制的文件加入进去
所有空行或者以 # 开头的行都会被 Git 忽略。
可以使用标准的 glob 模式匹配。
匹配模式可以以(/)开头防止递归。
匹配模式可以以(/)结尾指定目录。
要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
可参考github/gitignore,上面包含了很多不同开发环境下的.gitignore文件
如果git add
添加了忽略文件会报错,可以使用-f
强制添加
git add -f name1 name2 ...
提交暂存文件¶
git commit -m '提交信息'
或者git commit
然后回车,会打开设置的编辑器进行操作
撤销暂存文件¶
对添加到暂存区域的文件使用命令
git reset HEAD <file>...
撤销已修改文件¶
对已修改文件使用命令
git checkout -- <file>...