Git
Git 是常用的分布式版本控制工具,用于管理代码版本、分支协作和历史追踪。
配置用户信息
首次使用 Git 时,通常需要配置用户名和邮箱。
写法:
git config --global user.name "your-name"
git config --global user.email "your-email@example.com"效果/说明:
配置后,后续提交记录会带上对应的作者信息。
git config --global user.name
git config --global user.email初始化仓库
在当前目录初始化一个新的 Git 仓库。
写法:
git init效果/说明:
执行后会生成 .git 目录,当前目录开始被 Git 管理。
Initialized empty Git repository in /path/to/project/.git/克隆远程仓库
从远程地址复制一份仓库到本地。
写法:
git clone https://example.com/user/repo.git效果/说明:
执行后会在本地创建同名项目目录,并下载仓库历史记录。
Cloning into 'repo'...查看仓库状态
查看当前工作区和暂存区的变更状态。
写法:
git status效果/说明:
可以看到哪些文件被修改、哪些文件未跟踪、哪些文件已暂存。
On branch master
Changes not staged for commit:
modified: docs/index.md
Untracked files:
docs/tools/git/index.md查看简洁状态
适合快速查看变更列表。
写法:
git status --short效果/说明:
M docs/index.md
?? docs/tools/git/index.md常见状态含义:
| 标记 | 说明 |
|---|---|
M | 文件被修改 |
A | 新增文件 |
D | 删除文件 |
?? | 未跟踪文件 |
添加到暂存区
将文件变更加入暂存区,准备提交。
写法:
git add docs/index.md添加多个文件:
git add docs/index.md docs/tools/git/index.md添加当前目录所有变更:
git add .效果/说明:
添加后,文件会进入暂存区,等待 git commit 提交。
Changes to be committed:
modified: docs/index.md提交变更
将暂存区内容提交到本地仓库。
写法:
git commit -m "update docs"效果/说明:
提交成功后会生成一个提交记录。
[master abc1234] update docs
1 file changed, 10 insertions(+)查看提交历史
查看仓库提交记录。
写法:
git log简洁查看:
git log --oneline -5效果/说明:
abc1234 update docs
def5678 init project查看文件差异
查看工作区中尚未暂存的变更。
写法:
git diff查看已暂存但未提交的变更:
git diff --staged效果/说明:
-旧内容
+新内容分支管理
查看分支
写法:
git branch效果/说明:
当前分支前会显示 *。
* master
dev创建分支
写法:
git branch feature/docs效果/说明:
创建后可以通过 git branch 看到新分支。
feature/docs
* master切换分支
写法:
git switch feature/docs旧版本 Git 也可以使用:
git checkout feature/docs效果/说明:
Switched to branch 'feature/docs'创建并切换分支
写法:
git switch -c feature/docs效果/说明:
Switched to a new branch 'feature/docs'合并分支
将指定分支合并到当前分支。
写法:
git switch master
git merge feature/docs效果/说明:
如果没有冲突,会自动完成合并。
Merge made by the 'ort' strategy.删除分支
删除已经合并的本地分支。
写法:
git branch -d feature/docs效果/说明:
Deleted branch feature/docs.如果分支未合并,Git 会阻止删除,避免误删代码。
远程仓库
查看远程地址
写法:
git remote -v效果/说明:
origin https://example.com/user/repo.git (fetch)
origin https://example.com/user/repo.git (push)添加远程地址
写法:
git remote add origin https://example.com/user/repo.git效果/说明:
添加后,本地仓库可以和远程仓库关联。
拉取远程更新
从远程仓库获取并合并更新。
写法:
git pull常用 rebase 方式:
git pull --rebase效果/说明:
本地分支会同步远程提交。
Already up to date.推送到远程
将本地提交推送到远程仓库。
写法:
git push首次推送新分支时:
git push -u origin feature/docs效果/说明:
To https://example.com/user/repo.git
abc1234..def5678 feature/docs -> feature/docs撤销操作
撤销工作区修改
放弃某个文件在工作区中的修改。
写法:
git restore docs/index.md效果/说明:
文件会恢复到最近一次提交或暂存的状态。此操作会丢弃本地未保存修改,使用前需要确认。
取消暂存
将文件从暂存区移回工作区。
写法:
git restore --staged docs/index.md效果/说明:
文件修改仍然保留,但不再处于待提交状态。
修改最近一次提交信息
写法:
git commit --amend -m "new commit message"效果/说明:
会修改最近一次提交信息。如果提交已经推送到远程,修改前需要谨慎。
标签管理
标签常用于标记版本号。
创建标签
写法:
git tag v1.0.0效果/说明:
v1.0.0查看标签
写法:
git tag推送标签
写法:
git push origin v1.0.0忽略文件
使用 .gitignore 忽略不需要提交的文件。
写法:
node_modules/
dist/
.env
*.log效果/说明:
这些文件不会出现在 git status 的未跟踪列表中。
如果文件已经被 Git 跟踪,只加入 .gitignore 不会自动取消跟踪,需要先从 Git 索引中移除。
git rm --cached .env常用工作流
下面是一次常见的开发提交流程。
写法:
git status --short
git add docs/tools/git/index.md
git commit -m "update git docs"
git pull --rebase
git push效果/说明:
- 查看当前变更
- 添加需要提交的文件
- 创建本地提交
- 同步远程最新提交
- 推送本地提交到远程
常用命令速查
| 命令 | 说明 |
|---|---|
git status | 查看仓库状态 |
git add <file> | 添加文件到暂存区 |
git commit -m "message" | 提交变更 |
git log --oneline | 简洁查看提交历史 |
git diff | 查看工作区差异 |
git branch | 查看本地分支 |
git switch <branch> | 切换分支 |
git merge <branch> | 合并分支 |
git pull | 拉取远程更新 |
git push | 推送到远程 |
