2.git基础
2020-07-29 本文已影响0人
周晓钏
获取到git仓库
获取git仓库有两种方式, 一种是自己将本地尚未进行版本控制的目录转化为git仓库,一种是克隆其他服务器上的git仓库
- 初始化仓库
将本地没有进行版本控制的目录转化为git仓库
cd /d/studyGit
git init
git init
命令会在当前目录下创建一个.git的子目录,这个目录里面含有初始化git仓库中的所有必须文件,这些文件是git仓库的重要文件。虽然我们已经建立好了仓库, 但是我们还没有给仓库里的东西进行备案(跟踪)。
通过git add
命令来对文件进行追踪,然后执行git commit
,这样就得到了一个被追踪文件与初始化提交的git仓库
// 追踪单个文件
git add 文件名
// 追踪以txt结尾的所有文件
git add *.txt
// 追踪所有文件
git add .
git commit -m '初始化仓库文件'
- 克隆现有的仓库
如果入职的公司已经有了创建好的git仓库, 我们入职的时候是不可能让我们创建一个新的仓库提交的, 这个时候只能克隆公司创建好的仓库(克隆仓库的时候会需要成员权限,先不提)
git clone 仓库地址
git clone https://github.com/libgit2/libgit2
克隆仓库的时候并指定目录名
git clone https://github.com/libgit2/libgit2 gitStudy
将记录更新到仓库
在仓库中的文件的状态只有两种, 已跟踪和未跟踪, 已跟踪文件是只被git add
的文件,在这个状态里,又分为已修改、未修改、已暂存
三种。未跟踪的文件是没有被git add
的文件
查看当前文件的状态
git status
// 状态简览
git status -s
git status --short
未跟踪文件状态
已跟踪文件和未跟踪文件状态
状态简览
- ??: 新添加的未追踪的文件
- A : 新添加的被
git add
过的文件 - M : 已经
commit
过又被修改,但现在被git add
的文件 - M: 已经
commit
过又被修改,但现在还没有被git add
的文件 - MM: 已经
commit
过,并被git add
的文件,又有了新的修改
忽略文件
在仓库里面, 有些文件我们不需要纳入git管理,也不想要他们出现在未跟踪的文件列表里面,在这种情况下,我们创建一个 .gitignore
文件来对这些文件进行忽略
touch .gitignore
- 格式规范
- 所有空行或者以 # 开头的行都会被 Git 忽略。
- 可以使用标准的 glob 模式匹配,它会递归地应用在整个工作区中。
- 匹配模式可以以(/)开头防止递归。
- 匹配模式可以以(/)结尾指定目录。
- 要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。
# 忽略所有的 .a 文件
*.a
# 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
!lib.a
# 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
/TODO
# 忽略任何目录下名为 build 的文件夹
build/
# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf
查看修改
git diff
git diff 文件名
git diff --staged 这条命令将比对已暂存文件与最后一次提交的文件差异
提交更新
git commit -m ''
git commit -a -m ''
这个命令会自动将已跟踪过的文件自动暂存提交, 不需要自己`git add`文件
移除文件
将文件从暂存区移除, 然后提交
git rm 文件
git rm --cached 文件 (让文件保留在磁盘, 但git不跟踪,类似于.gitignore文件)
移动文件
git mv file_from file_to