Git 基础概念
名称 | 说明 |
---|---|
工作区(Working Directory) | 你正在本地操作的代码目录 |
暂存区(Staging Area / Index) | 使用 git add 后进入的区域,等待提交 |
本地仓库(Local Repository) | 使用 git commit 后的本地版本历史 |
远程仓库(Remote Repository) | 如 GitHub、GitLab 上的远程版本库 |
Git 常用命令详解与示例
初始化本地仓库
bash
git init
在当前目录下创建
.git
文件夹,初始化为 Git 仓库。
克隆远程仓库
bash
git clone https://github.com/user/repo.git
下载一个已有的仓库副本到本地。
查看当前状态
bash
git status
显示哪些文件被修改、哪些在暂存区。
添加文件到暂存区
bash
git add filename
git add . # 添加所有文件
提交修改
bash
git commit -m "描述信息"
查看提交历史
bash
git log
简洁日志
bash
git log --oneline --graph --all
查看修改内容
bash
git diff # 查看工作区 vs 暂存区
git diff --cached # 查看暂存区 vs 上次提交
撤销操作
操作 | 命令 |
---|---|
撤销 git add |
git reset HEAD filename |
撤销修改但保留文件 | git checkout -- filename |
重置最近一次提交(不丢文件) | git reset --soft HEAD~1 |
丢弃最近一次提交和修改 | git reset --hard HEAD~1 |
分支操作
bash
git branch # 查看分支
git branch dev # 创建分支
git checkout dev # 切换分支
git checkout -b dev # 创建并切换分支
合并分支
bash
git checkout main
git merge dev
远程仓库操作
查看远程
bash
git remote -v
添加远程仓库
bash
git remote add origin https://github.com/user/repo.git
推送代码
bash
git push origin main # 将 main 分支推送到远程
首次推送可能需要加
-u
设置默认远程:
bash
git push -u origin main
拉取远程更新
bash
git pull origin main
等价于:
bash
git fetch origin
git merge origin/main
忽略文件
编辑 .gitignore
文件:
*.log
build/
*.tmp
标签管理
bash
git tag v1.0 # 打标签
git tag # 查看标签
git push origin v1.0 # 推送标签
常见工作流示例
示例 1:新建并提交一个项目
bash
mkdir my_project && cd my_project
git init
echo "# My Project" > README.md
git add README.md
git commit -m "init: first commit"
git remote add origin https://github.com/user/my_project.git
git push -u origin main
示例 2:创建新分支进行开发
bash
git checkout -b feature/login
# 修改代码
git add .
git commit -m "feat: implement login logic"
git checkout main
git merge feature/login
git push
示例 3:解决冲突
bash
git pull origin main
# 冲突文件显示 <<<<<<< HEAD 等标记
# 手动编辑解决后:
git add conflicted_file.cpp
git commit -m "fix: resolve merge conflict"
示例 4:多人协作(远程分支)
bash
git fetch origin
git checkout -b dev origin/dev
# 修改后提交
git push origin dev
补充技巧
功能 | 命令 |
---|---|
查看某一行的提交记录 | git blame filename |
设置用户名和邮箱 | git config --global user.name "xxx" |
保存临时修改 | git stash , git stash pop |
删除分支 | git branch -d dev |
删除远程分支 | git push origin --delete dev |
图形化工具推荐
- GitKraken:强大的跨平台 Git GUI
- GitHub Desktop:适合初学者,界面简洁
- TortoiseGit:Windows 系统集成 Git 工具
- VS Code Git 插件:集成 Git 视图,直观易用