Git常见场景的使用教程
本文最后更新于 2025年4月22日 下午
安装git
1、windows
下载安装包直接安装:https://git-scm.com/downloads
2、linux
终端执行命令安装
1 |
|
生成git仓库
可以在本地直接创建一个空的git仓库,也可以从远程服务器下载已有git仓库
本地创建git仓库
进入指定目录,初始化仓库
1 |
|
会生成一个隐藏的.git目录
下载远程git仓库
从服务器克隆一个已存在的仓库(需联网),在GitHub或Gitee上寻找一个仓库链接地址,复制url链接
1 |
|
例如:
1 |
|
要重命名克隆的项目,在末尾添加自定义的项目名称即可
例如:
1 |
|
备注:git支持https协议,也支持ssh协议
例如:
1 |
|
生成ssh秘钥
当使用SSH方式下载远程仓库,或后续提交代码到远程仓库时,就需要ssh秘钥的参与
使用以下命令检查本机是否存在ssh:
1 |
|
是否存在以pub后缀结尾的文件,例如以下文件:
- id_rsa.pub
- id_ecdsa.pub
- id_ed25519.pub
如果不存在相关文件,则使用以下命令生成ssh秘钥:
1 |
|
说明:
- -t 指定密钥类型,默认是 rsa ,可以省略
- -C 设置注释文字,比如邮箱,可以省略
- -f 指定密钥文件存储文件名,可以省略
例如:
1 |
|
按3次回车,得到秘钥文件:
- id_rsa(私有秘钥)
- id_rsa.pub(公有秘钥)
查看并复制公有秘钥内容
1 |
|
登录github或gitee账号,点击右上角头像,选择settings->SSH and GPG keys->New SSH key,粘贴秘钥,输入秘钥名
测试github的ssh秘钥是否生效:
1 |
|
测试github的ssh秘钥是否生效:
1 |
|
配置git仓库
配置用户名、邮箱
1 |
|
相关参数说明说明:
- name 为用户名,作为后续提交版本的身份信息
- email为邮箱,作为后续提交版本的邮箱信息
- global为全局配置,若不加此参数,设置只对本仓库有效
全局配置成功后,以后提交版本可不再重复配置
例如:
1 |
|
查看配置
查看git配置信息
1 |
|
文件操作
添加文件
可添加单个文件、多个文件,也可添加整个文件夹
1 |
|
说明:file必须文件全名,带后缀,例如:
1 |
|
特别的,添加当前文件目录下的所有文件
1 |
|
忽略文件
创建一个名为 .gitignore的文件
1 |
|
编辑该文件,内容如下
1 |
|
说明:
- 第一行告诉 Git 忽略所有以 .o 或 .a 结尾的文件。
- 第二行告诉 Git 忽略所有名字以波浪符(~)结尾的文件。
- 第三行告诉 Git 忽略tmp文件夹下的所有文件。
此外,你可能还需要忽略 log、 pid 等目录。
文件 .gitignore 的格式规范如下:
- 所有空行或者以 # 开头的行都会被 Git 忽略。
- 可以使用标准的 glob 模式匹配,它会递归地应用在整个工作区中。
- 匹配模式可以以(/)开头防止递归。
- 匹配模式可以以(/)结尾指定目录。
- 要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。
删除文件
从本地磁盘删除文件,同时删除git暂存区文件
1 |
|
保留本地磁盘文件,删除git暂存区文件,添加–cached参数
1 |
|
支持文件名匹配模式,即shell简化了的正则表达式(glob模式)
- 星号匹配零个或多个任意字符;
- [abc]匹配任何一个列在方括号中的字符;
- 问号?只匹配一个任意字符;
- [0-9] 表示匹配所有 0 到 9 的数字。
例如:
删除log文件夹下的所有log后缀文件
1 |
|
注意:星号前有反斜杠
移动文件
可用于重命名文件
1 |
|
例如:
1 |
|
查看文件状态
git仓库中的文件状态有以下几种
- 最新提交new file、
- 提交后又修改modified、
- 新增文件但未添加Untracked、
- 删除deleted、
- 文件无任何修改clean
查看当前仓库被修改文件
1 |
|
查看简洁信息,添加参数-s
1 |
|
查看被修改内容
1 |
|
查看指定文件在工作区和版本库里面最新版本的区别
1 |
|
例如:
1 |
|
提交文件
一次性提交刚才添加的所有文件
1 |
|
说明:
- m表示参数message,后面的双引号内容为本次提交的说明信息
例如:
1 |
|
若不想重复使用add命令添加文件,可在文件修改后跳过暂存直接提交,添加参数-a,使用如下命令
1 |
|
查看提交的版本、作者、时间、提交信息
1 |
|
说明:
- 使用参数–pretty=oneline可简化输出信息
例如:
1 |
|
撤销修改
修改文件后,重新追加提交
1 |
|
撤销在工作区所做的修改:
1 |
|
例如:
1 |
|
撤销在暂存区所做的修改,重新放回工作区:
1 |
|
例如:
1 |
|
撤销在版本库的修改,版本回退
1 |
|
说明:
- commit_id为版本号,当前版本号也可简写为HEAD^
- 上一个版本号可简写为HEAD^^
- 上100个版本可简写为HEAD~100
例如:
1 |
|
从版本库恢复文件
1 |
|
例如:
1 |
|
查看历史操作的版本
1 |
|
该命令会输出历史操作对应的版本号,使用git reset命令可切回对应状态
关联远程仓库
SSH方式
1 |
|
例如:
1 |
|
HTTPS方式
1 |
|
例如:
1 |
|
推送代码
推送本地库master分支到远程库master分支(关联master)
第一次推送:
1 |
|
以后推送:
1 |
|
远程仓库操作
添加远程仓库,并指定简写,默认简写为origin
1 |
|
例如:
1 |
|
查看远程仓库信息
1 |
|
拉取远程仓库信息,默认简写为origin
1 |
|
自动抓取远程分支,并后合并到当前分支,默认远程仓库的 master 分支
1 |
|
推送到远程仓库
1 |
|
例如:
将 master 分支推送到远程origin 服务器
1 |
|
注意:只有当你有所克隆服务器的写入权限,并且之前没有人推送过时,这条命令才能生效。
参考资料
git官方教程中文文档 https://git-scm.com/book/zh/v2
Git教程 - 廖雪峰的官方网站 https://www.liaoxuefeng.com/wiki/896043488029600
Git 教程 | 菜鸟教程 https://www.runoob.com/git/git-tutorial.html