Git 学习

整理一下自己学的 Git 相关的内容吧

一、安装

  • 在 Windows 上安装 Git

从 Git 官网下载安装: https://git-scm.com/download/win

安装完成后运行一次 Git Bash

  • 在 Linux 上安装 Git

Debian:sudo apt-get install git

Fedora:dnf install git

CentOS:yum install git

其他参考: https://git-scm.com/download/linux

  • 在 Mac OS X 上安装 Git

一是安装 homebrew,然后通过 homebrew 安装 Git,具体方法请参考 homebrew 的文档: http://brew.sh/

二是直接从 AppStore 安装 Xcode,Xcode 集成了 Git,不过默认没有安装,你需要运行 Xcode,选择菜单 Xcode - Preferences,在弹出窗口中找到 Downloads,选择 Command Line Tools,点 Install 就可以完成安装了

Xcode 是 Apple 官方 IDE,功能非常强大,是开发 Mac 和 iOS App 的必选装备,而且是免费的

二、配置

安装完成后需要配置自己的身份信息

1
2
git config --global user.name "Your Name"
git config --global user.email "[email protected]"

其中 Your Name 替换为您的姓名,email@example 替换为您的邮箱

三、创建版本库

创建新的 Git 仓库可以本地创建或者从远程仓库克隆

本地仓库

选择一个文件夹,然后执行命令

1
git init

这样该文件夹就称为可以被 Git 管理的仓库,请勿乱修改 ./.git 目录下的文件 (通常这是隐藏文件),该目录内容为 Git 跟踪管理版本库的

克隆自己的仓库

在个人的设置处添加 SSH 公钥: SSH and GPG keys ,然后就可以直接使用 SSH 克隆啦,例如

1
git clone [email protected]:yexca/typecho-theme-book.git

克隆需要修改的仓库

仓库的拥有者邀请您共同协作或者将您的密钥添加到仓库的 Deploy keys 后,您将拥有对于该仓库的修改权限,此时可以使用 SSH 克隆,然后修改后提交,例如

1
git clone [email protected]:yexca/typecho-theme-book.git

给大佬仓库添砖加瓦

这种一般是先 fork 一份,自己本地修改好后再 Pull requests 提交,具体可参考

如何使用 github 给大佬递茶 - idealclover

如何在 GitHub 提交第一个 pull request

克隆无权限的仓库

使用 HTTPS 克隆就行,例如

1
git clone https://github.com/yexca/typecho-theme-book.git

仓库链接可访问 仓库所在网页 ,点击 Code 获得

四、文件提交

一通操作后,多了几个文件,该提交到仓库了

将文件添加到本地仓库

1
2
3
git add filename
# 或者下面是提交所有修改的文件
git add .

添加完成后该提交了

1
git commit -m "some details"

some details 处描述本次提交了什么

提交规范

虽然提交内容可以随意书写,但是最好还是遵循一定的提交规范比较好,以下是一些常用的规范

前缀适用场景
feat引入了新功能(比如新写了一个上传头像的接口)
fix修复了一个 Bug
refactor代码重构,既不修复错误也不添加新功能
chore琐碎的工作。比如修改 .gitignore,或者更新 Maven 依赖版本
docs只改动了文档(README, JavaDoc 等)

在前缀后可以加入具体修改的模块,比如

1
git commit -m "refactor(OSS): replace Aliyun OSS with AWS S3 SDK"

忽视文件

如果有些文件不想提交到仓库,也就是有些文件可能不需要 Git 进行跟踪是否被修改的话,可以创建 .gitignore 文件,然后把不想被 Git 管理的文件名填入一行一个即可

1
2
3
4
5
# .gitignore 文件
test/    # 忽略 test 文件夹
test    # 忽略 test 文件
*.py[cod]    # 忽略 *.pyc *.pyo *.pyd 文件
!app.pyc    # 不忽略 app.pyc 文件

忽略了也可以强制提交:git add -f test.pyc

也有一些现成的文件,可以参考一下: https://github.com/github/gitignore

如果需要修改 .gitignore 文件,再次生效,需要先清除缓存

1
2
3
4
5
6
# 清除缓存
git rm -r --cached .
# 重新遍历文件
git add .
# 提交文件
git commit -m "update .gitignore"

五、日志与撤销

使用 git status 可以查看仓库的状态

使用 git diff 查看上次提交修改的内容

使用 git log 查看历史记录,即日志,如果信息太多可以加上 --pretty=oneline 参数,此时可以看到 commit ID

commit ID 后如果有 HEAD -> master 则说明此为最新提交,也就是当前版本,Git 使用 HEAD 表示当前版本,上一个版本就是 HEAD^,上上个版本是 HEAD^^ ,往上 60 个版本可以写成 HEAD~60

回退到上一个版本 git reset --hard HEAD^

回退到指定版本:

1
2
3
4
git reset --hard commitID
# 例如 commit ID 为 eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0,可以写如下:
git reset --hard eaadf4
# 只要写前几位并可以识别就行,没必要写全

如果你操作失误回退了,请不要关闭命令行窗口,查看命令日志:git reflog 找到刚才的版本号回退即可

六、远程推送

如果需要将代码推送到远程仓库需要先链接,但从远程仓库克隆的默认会链接好,不需要进行操作

链接远程仓库

本地创建了一个仓库,想要上传到 Github 的话,可以在 Github 上新建一个 repo ,然后将本地仓库链接远程仓库以上传

1
git remote add origin [email protected]:[your repo]

推送代码

使用 push 命令进行推送,例如

1
git push origin master

该命令为推送到远程仓库的 master 分支

修改分支

这里需要注意的是使用 Git 创建的仓库默认分支为 master 而 Github 默认分支为 main,如果想和 Github 保持一致的话,可以修改本地分支名称

1
git branch -m master main

不过也可以修改默认创建的分支名称为 main

1
git config --global init.defaultBranch main

默认分支

另外,可以设置默认推送仓库为 origin 的 main 分支

1
git push --set-upstream origin main

这样之后推送的时候直接使用

1
git push origin

即可

重新链接

可以通过以下命令查看远程仓库信息

1
git remote -v

如果链接仓库时输入错了,可以使用以下命令删除

1
git rmeote rm RepoName

一般远程仓库名称为 origin,所以删除命令为 git remote rm origin

七、分支管理

Git 分支是 Git 中用来独立开发不同功能、修复问题或实验新想法的机制。通过分支,可以在不影响主分支的情况下自由地进行更改

列出所有分支: git branch

创建分支:git branch new_branch

切换到分支 1:git checkout new_branch

切换到分支 1:git switch new_branch

推送到分支:git push origin cheny

比如添加一个搜索功能,首先将主分支提交完成后创建新分支

1
git switch -c search

上述命令表示创建并切换到分支 search

在新分支 search 修改并测试完成后提交

1
2
git add .
git commit -m "添加搜索功能"

然后切换回主分支 main

1
git switch main

合并分支 search

1
git merge search

(可选) 删除 search 分支

1
git branch -d search

八、创建服务端

参考: 搭建 Git 服务端及同步到指定目录

九、其他

同时使用 GitLab 和 Github: document-library/Git-study.md

参考文章

Git 教程 - 廖雪峰的官方网站

如何连接本地仓库与 GitHub 仓库 - CSDN博客

将本地 master 分支代码提交到远程 main 分支

git 修改 .gitignore 后生效

This post is licensed under CC BY-NC-SA 4.0 by the author.
最后更新于 2026-02-26 18:26 +0900