Git 使用指南(附详细解释)

Git 是一个强大的版本控制系统,广泛用于软件开发中,用于跟踪文件的更改、协作工作等。无论你是新手还是有经验的开发者,掌握 Git 都是非常有益的。这篇博客将带你了解 Git 的基本使用,希望能帮助你快速入门并有效使用 Git。

1. 创建和克隆仓库

初始化仓库

要在当前目录创建一个新的 Git 仓库,只需执行:

bash 复制代码
git init

执行后,当前目录下会生成一个 .git 目录,包含所有 Git 需要的数据和资源。

如果想指定一个新目录作为 Git 仓库,可以使用:

bash 复制代码
git init newrepo

这将在 newrepo 目录下创建 .git 目录。

添加和提交文件

要开始跟踪文件,使用 git add 命令:

bash 复制代码
git add *.c
git add README

这些命令添加所有 .c 文件和 README 文件到暂存区。然后,使用 git commit 提交这些文件:

bash 复制代码
git commit -m '初始化项目版本'

克隆现有仓库

如果需要复制或克隆现有的 Git 仓库,使用:

bash 复制代码
git clone <repo>

例如,要克隆远程 Git 仓库 Grit:

bash 复制代码
git clone git://github.com/schacon/grit.git

可以在命令后指定目录名,更改克隆的本地目录名:

bash 复制代码
git clone git://github.com/schacon/grit.git mygrit

2. Git 工作流

基本工作流

Git 的工作流程包括三个主要区域:工作目录、暂存区和 HEAD。

  • 工作目录:持有实际文件。
  • 暂存区:临时保存改动。
  • HEAD:指向最后一次提交的结果。

添加文件到暂存区:

bash 复制代码
git add <filename>
git add .

提交改动到仓库:

bash 复制代码
git commit -m "代码提交信息"

推送改动

将本地仓库的改动推送到远程仓库:

bash 复制代码
git push origin master

其中 master 可以替换为你想推送的任何分支。

3. 分支管理

创建与切换分支

查看所有分支:

bash 复制代码
git branch

创建新分支:

bash 复制代码
git branch new-feature

切换到新分支:

bash 复制代码
git checkout new-feature

或者创建并切换到新分支:

bash 复制代码
git checkout -b new-feature

合并分支

将更改从 new-feature 合并到 master 分支:

bash 复制代码
git checkout master
git merge new-feature

如果不再需要 new-feature 分支,可以将其删除:

bash 复制代码
git branch -d new-feature

4. 更新与合并

获取并合并远程仓库的改动到当前分支:

bash 复制代码
git pull

或者,如果只想获取远程分支的更新:

bash 复制代码
git fetch

然后合并到当前分支:

bash 复制代码
git merge origin/master

5. 实用小贴士

内建的图形化 Git

bash 复制代码
gitk

彩色的 Git 输出

bash 复制代码
git config color.ui true

显示历史记录的简洁格式

bash 复制代码
git config format.pretty oneline

交互式添加文件到暂存区

bash 复制代码
git add -i
相关推荐
今日无bug1 天前
Git 提交:用全栈技术打造智能 Commit Message 生成器
git·全栈
明月_清风1 天前
拒绝盲目 Git:VS Code 神级插件 GitLens 的 9 个进效杀手锏
前端·git
goodspeed3 天前
Git Worktree:多分支并行开发的利器
git·github
雮尘5 天前
让 AI Agent 高效并行开发的命令-git worktree
人工智能·git·agent
南果梨6 天前
OpenClaw 完整教程!从安装到使用(官方脚本版)
前端·git·开源
Selicens7 天前
git批量删除本地多余分支
前端·git·后端
闲云一鹤8 天前
Git LFS 扫盲教程 - 你不会还在用 Git 管理大文件吧?
前端·git·前端工程化
vibecoding日记11 天前
为什么我就想要「线性历史 + Signed Commits」,GitHub 却把我当猴耍 🤬🎙️
git·编程工具
程序员小崔日记11 天前
如何将代码轻松上传到 Gitee?Git 使用全攻略!
git·gitee·上传