git简介
git 是一个开源的分布式版本控制系统(VCS),用于高效、快速地处理从小型到大型项目的所有内容管理。它由 Linus Torvalds(Linux 之父)于 2005 年创建,最初是为了更好地管理 Linux 内核开发。
git基本概念
| 术语 | 含义 |
|---|---|
| 仓库(Repository) | 存储项目所有文件和历史记录的地方 |
| 工作区(Working Directory) | 你电脑上实际看到的项目文件夹 |
| 暂存区(Index/Stage) | 准备提交的更改区域,介于工作区和仓库之间 |
| 提交(Commit) | 保存项目当前状态为一个版本 |
| 分支(Branch) | 从主线上分出来的独立开发线,不影响主线 |
| 合并(Merge) | 将分支的更改整合到另一个分支 |
| 远程仓库(Remote) | 托管在网络上的仓库,如 GitHub、GitLab |
git基本操作
- 克隆(clone) 远程仓库到本地
1git clone https://github.com/user/repo.git
-
在工作区中修改文件。
-
暂存(add) 更改到暂存区
1git add .
- 提交(commit) 更改到本地仓库
1git commit -m "描述信息"
2
3# 若提交时无文件更改
4git commit -m "描述信息" --allow-empty
- 推送(push) 到远程仓库
1git push 分支名
- 拉取(pull) 获取他人更新
1git pull origin main
变更分支
若更改未push到远程仓库中,默认保存在本地工作文件夹的.git文件夹中,此时可以对分支进行任意的修改操作。
- 进入工程文件夹,在终端中输入
1git log
此命令可以查看当前所有提交的具体信息,包括提交时间、作者、提交ID等。可以使用键盘的“↑”、“↓”键滚动,按q键退出。
-
选择需要更改的提交,复制它的ID。
-
退出log,在终端中输入
1git rebase -i 复制的提交ID
这样会打开一个Nano编辑器(Linux环境下),在要删除的提交前加上#,然后Ctrl+O写入、回车、Ctrl+X保存。系统会自动变更分支结构。
- 继续提交新的更改,变更完成。
若要更改的提交已经push到远程仓库,则只需在最后push时输入
1git pull <分支名> --force
强制变更。
注意:强制变更时应保证此时没有其他人员的提交,否则会导致分支出错。
Github使用教程
Github是当前世界最大的开源网站库,使用git操作管理所有文件。
注册一个Github账号后即可在Github上免费创建和使用仓库,也可以加入其他开源项目的开发。
添加 SSH 密钥
一些情况下,使用git push时会提示网络连接超时。这时可以尝试使用SSH协议,为你的Github账户添加 SSH 密钥。
以下操作均在Linux系统下进行。
- 生成SSH密钥(如果尚未生成):
1ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
2# 引号中填写注册Github时的邮箱地址。
- 将公钥添加到GitHub账户:
复制公钥内容:
1cat ~/.ssh/id_rsa.pub
登录GitHub,进入Settings → SSH and GPG keys → New SSH key,粘贴公钥并保存。
- 更新Git远程仓库地址为SSH格式:
1git remote set-url origin git@github.com:USERNAME/REPOSITORY.git
替换USERNAME和REPOSITORY为你的GitHub用户名和仓库名。
如果是Windows系统,则需要首先安装Git Bash,然后在Git Bash中执行上述操作。