Git常见场景的使用教程

本文最后更新于 2025年4月22日 下午

安装git

1、windows

下载安装包直接安装:https://git-scm.com/downloads

2、linux

终端执行命令安装

1
sudo apt-get install git

生成git仓库

可以在本地直接创建一个空的git仓库,也可以从远程服务器下载已有git仓库

本地创建git仓库

进入指定目录,初始化仓库

1
git init

会生成一个隐藏的.git目录

下载远程git仓库

从服务器克隆一个已存在的仓库(需联网),在GitHub或Gitee上寻找一个仓库链接地址,复制url链接

1
git clone [url]

例如:

1
git clone https://github.com/lishan666/git_tutor.git

要重命名克隆的项目,在末尾添加自定义的项目名称即可

例如:

1
git clone https://github.com/lishan666/git_tutor.git myproject

备注:git支持https协议,也支持ssh协议

例如:

1
git clone git@github.com:lishan666/git_tutor.git

生成ssh秘钥

当使用SSH方式下载远程仓库,或后续提交代码到远程仓库时,就需要ssh秘钥的参与

使用以下命令检查本机是否存在ssh:

1
ls -al ~/.ssh

是否存在以pub后缀结尾的文件,例如以下文件:

  • id_rsa.pub
  • id_ecdsa.pub
  • id_ed25519.pub

如果不存在相关文件,则使用以下命令生成ssh秘钥:

1
ssh-keygen -t rsa -C [email]

说明:

  • -t 指定密钥类型,默认是 rsa ,可以省略
  • -C 设置注释文字,比如邮箱,可以省略
  • -f 指定密钥文件存储文件名,可以省略

例如:

1
ssh-keygen -t rsa -C "bitzerone@qq.com"

按3次回车,得到秘钥文件:

  • id_rsa(私有秘钥)
  • id_rsa.pub(公有秘钥)

查看并复制公有秘钥内容

1
2
cd ~/.ssh
cat id_rsa.pub

登录github或gitee账号,点击右上角头像,选择settings->SSH and GPG keys->New SSH key,粘贴秘钥,输入秘钥名

测试github的ssh秘钥是否生效:

1
ssh -T git@github.com

测试github的ssh秘钥是否生效:

1
ssh -T git@gitee.com

配置git仓库

配置用户名、邮箱

1
2
git config --global user.name <name>
git config --global user.email <email>

相关参数说明说明:

  • name 为用户名,作为后续提交版本的身份信息
  • email为邮箱,作为后续提交版本的邮箱信息
  • global为全局配置,若不加此参数,设置只对本仓库有效

全局配置成功后,以后提交版本可不再重复配置

例如:

1
2
git config --global user.name "lishan666"
git config --global user.email "bitzerone@qq.com"

查看配置

查看git配置信息

1
git config --list

文件操作

添加文件

可添加单个文件、多个文件,也可添加整个文件夹

1
git add [file1] [file2] [file3] [file4]...

说明:file必须文件全名,带后缀,例如:

1
git add readme.txt

特别的,添加当前文件目录下的所有文件

1
git add .

忽略文件

创建一个名为 .gitignore的文件

1
touch .gitignore

编辑该文件,内容如下

1
2
3
*.[oa]
*~
tmp/

说明:

  • 第一行告诉 Git 忽略所有以 .o 或 .a 结尾的文件。
  • 第二行告诉 Git 忽略所有名字以波浪符(~)结尾的文件。
  • 第三行告诉 Git 忽略tmp文件夹下的所有文件。

此外,你可能还需要忽略 log、 pid 等目录。

文件 .gitignore 的格式规范如下:

  • 所有空行或者以 # 开头的行都会被 Git 忽略。
  • 可以使用标准的 glob 模式匹配,它会递归地应用在整个工作区中。
  • 匹配模式可以以(/)开头防止递归。
  • 匹配模式可以以(/)结尾指定目录。
  • 要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。

删除文件

从本地磁盘删除文件,同时删除git暂存区文件

1
2
rm [files]
git rm [files]

保留本地磁盘文件,删除git暂存区文件,添加–cached参数

1
git rm --cached [files]

支持文件名匹配模式,即shell简化了的正则表达式(glob模式)

  • 星号匹配零个或多个任意字符;
  • [abc]匹配任何一个列在方括号中的字符;
  • 问号?只匹配一个任意字符;
  • [0-9] 表示匹配所有 0 到 9 的数字。

例如:

删除log文件夹下的所有log后缀文件

1
git rm log/\*.log

注意:星号前有反斜杠

移动文件

可用于重命名文件

1
git mv [file_from] [file_to]

例如:

1
git mv readme.txt readyou.txt

查看文件状态

git仓库中的文件状态有以下几种

  • 最新提交new file、
  • 提交后又修改modified、
  • 新增文件但未添加Untracked、
  • 删除deleted、
  • 文件无任何修改clean

查看当前仓库被修改文件

1
git status

查看简洁信息,添加参数-s

1
git status -s

查看被修改内容

1
git diff

查看指定文件在工作区和版本库里面最新版本的区别

1
git diff HEAD -- [file]

例如:

1
git diff HEAD -- readme.txt

提交文件

一次性提交刚才添加的所有文件

1
git commit -m [messgae]

说明:

  • m表示参数message,后面的双引号内容为本次提交的说明信息

例如:

1
git commit -m "first commit file"

若不想重复使用add命令添加文件,可在文件修改后跳过暂存直接提交,添加参数-a,使用如下命令

1
git commit -am [messgae]

查看提交的版本、作者、时间、提交信息

1
git log

说明:

  • 使用参数–pretty=oneline可简化输出信息

例如:

1
git log --pretty=oneline

撤销修改

修改文件后,重新追加提交

1
git commit  --amend

撤销在工作区所做的修改:

1
git checkout -- [file]

例如:

1
git checkout -- readme.txt

撤销在暂存区所做的修改,重新放回工作区:

1
git reset HEAD [file]

例如:

1
git reset HEAD readme.txt

撤销在版本库的修改,版本回退

1
git reset --hard [commit_id]

说明:

  • commit_id为版本号,当前版本号也可简写为HEAD^
  • 上一个版本号可简写为HEAD^^
  • 上100个版本可简写为HEAD~100

例如:

1
git reset --hard HEAD^

从版本库恢复文件

1
git checkout -- [file]

例如:

1
git checkout -- test.txt

查看历史操作的版本

1
git reflog

该命令会输出历史操作对应的版本号,使用git reset命令可切回对应状态

关联远程仓库

SSH方式

1
git remote add origin [ssh_address]

例如:

1
git remote add origin git@github.com:lishan666/git_tutor.git

HTTPS方式

1
git remote add origin [https_address]

例如:

1
git remote add origin https://github.com/lishan666/git_tutor.git

推送代码

推送本地库master分支到远程库master分支(关联master)

第一次推送:

1
git push -u origin master

以后推送:

1
git push origin master

远程仓库操作

添加远程仓库,并指定简写,默认简写为origin

1
git remote add [shortname] [url]

例如:

1
git remote add my https://github.com/lishan666/git_tutor.git

查看远程仓库信息

1
git remote -v

拉取远程仓库信息,默认简写为origin

1
git fetch [shortname]

自动抓取远程分支,并后合并到当前分支,默认远程仓库的 master 分支

1
git pull

推送到远程仓库

1
git push [remote] [branch]

例如:

将 master 分支推送到远程origin 服务器

1
git push origin master

注意:只有当你有所克隆服务器的写入权限,并且之前没有人推送过时,这条命令才能生效。

参考资料

git官方教程中文文档 https://git-scm.com/book/zh/v2

Git教程 - 廖雪峰的官方网站 https://www.liaoxuefeng.com/wiki/896043488029600

Git 教程 | 菜鸟教程 https://www.runoob.com/git/git-tutorial.html


Git常见场景的使用教程
https://www.bit01.top/2025/04/07/git-tutor/
作者
李珊
发布于
2025年4月7日
更新于
2025年4月22日
许可协议