1. Git 的基础配置
假设你是开发者 Alice,需要配置 Git 的用户名和邮箱:
git config --global user.name "Alice"
git config --global user.email "alice@example.com"
2. 创建或克隆仓库
- 初始化一个新的 Git 仓库:
假设你在一个名为 my_project
的目录下想要创建一个新的 Git 仓库:
cd my_project
git init
这将在当前目录下创建一个 .git
目录,使其成为一个 Git 仓库。
- 克隆一个远程仓库:
假设你想要克隆 GitHub 上的一个项目:
git clone https://github.com/username/repository.git
这将下载该项目的所有文件和历史记录到本地。
3. 基本操作
- 查看仓库状态:
git status
假设你修改了 index.html
文件并新增了 style.css
文件,运行 git status
会显示哪些文件已被修改或新增但尚未提交。
- 添加文件到暂存区:
假设你想将 index.html
和 style.css
文件添加到暂存区:
git add index.html
git add style.css
或者一次性添加所有改动:
git add .
- 提交更改:
假设你已经添加了文件到暂存区,现在想提交这些更改:
git commit -m "Add new styles and update index"
- 查看提交日志:
git log
这将显示所有提交的历史记录,包括每次提交的哈希值、作者、日期和提交信息。
4. 分支管理
- 创建新分支:
假设你正在开发一个新功能,想在新的分支上进行开发:
git branch feature-login
- 切换到指定分支:
git checkout feature-login
这将切换到你刚刚创建的 feature-login
分支。
- 创建并切换到新分支:
git checkout -b feature-signup
这将创建一个名为 feature-signup
的新分支并立即切换到该分支。
- 查看所有分支:
git branch
这将列出所有本地分支,并用 *
标记当前所在的分支。
- 删除分支:
假设你完成了 feature-login
分支的工作,想删除该分支:
git branch -d feature-login
5. 合并分支
假设你在 feature-signup
分支上完成了功能开发,并希望将其合并到 main
分支:
git checkout main
git merge feature-signup
这会将 feature-signup
的更改合并到 main
分支中。
6. 远程仓库操作
- 查看远程仓库:
git remote -v
这将列出所有关联的远程仓库 URL 及其 fetch 和 push 操作。
- 添加远程仓库:
假设你想将当前仓库与 GitHub 上的一个仓库关联:
git remote add origin https://github.com/username/repository.git
- 推送到远程仓库:
假设你想将 main
分支的更改推送到远程仓库:
git push origin main
- 拉取远程仓库的更新:
git pull
这将从远程仓库拉取最新的更改并与本地仓库合并。
7. 撤销与回退
- 撤销文件修改(未提交):
假设你修改了 style.css
文件,但想撤销这些未提交的更改:
git checkout -- style.css
这将恢复 style.css
到上次提交的状态。
- 撤销已提交的更改:
假设你想撤销最近的一次提交,但保留更改:
git revert HEAD
- 回退到某个版本:
假设你想回退到特定的提交(假设提交 ID 为 abc1234
):
git reset --hard abc1234
这会将你的仓库状态重置到 abc1234
这次提交。
8. 查看差异
- 查看工作区与暂存区的差异:
git diff
假设你修改了 index.html
文件,运行这个命令会显示该文件的具体改动。
- 查看暂存区与最后一次提交的差异:
git diff --cached
这将显示已经暂存但还未提交的更改。
9. Tag管理
- 创建标签:
假设你发布了一个新版本,想要为此创建一个标签:
git tag v1.0
- 推送标签到远程仓库:
git push origin v1.0
- 查看标签:
git tag
这将列出所有本地的标签。
10. 清理无用文件
- 清理没有被 Git 追踪的文件:
假设你在工作目录中有一些不再需要的文件,但这些文件未被 Git 追踪:
git clean -f
这将删除所有未追踪的文件。
这些例子涵盖了 Git 的常用操作,可以帮助你理解如何在实际开发中使用这些命令。