Git教程:一文带你快速掌握Git基础 – wiki词典

Git教程:一文带你快速掌握Git基础

Git是一个免费、开源的分布式版本控制系统(DVCS),用于敏捷高效地处理任何或大或小的项目。它能跟踪你项目中的文件变化,让你能够回溯到项目的任何一个历史版本,并且方便团队协作。

1. Git核心概念

在深入学习Git命令之前,理解几个核心概念至关重要:

  • 工作区 (Working Directory):你正在电脑上看到的目录,包含你的项目文件和Git目录。
  • 暂存区 (Staging Area / Index):一个临时区域,用于保存你即将提交到本地仓库的更改。你可以选择性地将工作目录中的更改添加到暂存区,这样可以一次提交多个文件的更改,而不必提交所有文件的更改。
  • 本地仓库 (Local Repository):一个隐藏在.git目录中的数据库,用于存储项目的所有提交历史记录。每次你提交更改时,Git会将暂存区中的内容保存到本地仓库中。
  • 远程仓库 (Remote Repository):托管在网络上的仓库,如GitHub、Gitee等,用于团队协作和备份。

2. 安装Git

Git可以在多种操作系统上安装:

  • Windows: 从Git官方网站下载Git for Windows并按默认选项安装。
  • macOS: 可以通过Homebrew安装,命令为 brew install git
  • Linux: 通常可以通过系统的包管理器安装,例如Debian/Ubuntu使用 sudo apt-get install git,CentOS/Fedora使用 sudo dnf install git

3. 初次配置Git

安装完成后,你需要配置你的用户名和邮箱,这些信息将伴随你的每一次提交:

bash
git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"

--global 参数表示这些配置将应用于你所有的Git项目。

4. 创建与克隆仓库

4.1 创建新仓库 (git init)

如果你想将一个现有项目纳入Git管理,或者从头开始一个新项目:

  1. 进入你的项目目录。
  2. 执行 git init 命令。这会在当前目录创建一个名为.git的隐藏子目录,这就是你的Git仓库。

bash
mkdir my_project
cd my_project
git init

4.2 克隆远程仓库 (git clone)

如果你想获取一个已存在的远程Git仓库的副本:

bash
git clone <远程仓库URL>

例如:git clone https://github.com/user/repo.git。这会将远程仓库完整地复制到你的本地。

5. Git基本工作流程

Git的基本工作流程包括:修改文件 -> 添加到暂存区 -> 提交到本地仓库。

5.1 查看文件状态 (git status)

随时使用 git status 命令可以查看工作区和暂存区的状态,了解哪些文件被修改、哪些文件已暂存。

bash
git status

5.2 添加文件到暂存区 (git add)

当你修改了文件或创建了新文件后,需要使用 git add 命令将这些更改添加到暂存区。

  • 添加单个文件:
    bash
    git add <文件名>
  • 添加所有更改(包括新文件、修改文件):
    bash
    git add .

5.3 提交更改 (git commit)

当暂存区中的内容准备好后,使用 git commit 命令将其提交到本地仓库。每次提交都应该附带一条有意义的提交信息,说明本次提交做了什么。

bash
git commit -m "本次提交的说明信息"

5.4 查看修改内容 (git diff)

git add 之前,你可以使用 git diff 查看工作区与暂存区之间的差异。
git commit 之前,你可以使用 git diff --cachedgit diff --staged 查看暂存区与上次提交之间的差异。

bash
git diff # 查看工作区与暂存区的差异
git diff --cached # 查看暂存区与最新提交的差异

6. 查看提交历史 (git log)

git log 命令可以查看所有的提交历史,包括提交ID、作者、日期和提交信息。

bash
git log

常用选项:
* git log --oneline: 简洁显示提交历史。
* git log --graph: 以图形化方式显示分支合并历史。

7. 版本回退 (git reset)

git reset 命令可以让你回溯到历史版本。这是一个强大的命令,请谨慎使用。

  • 回退到上一个版本
    bash
    git reset --hard HEAD^

    HEAD^ 表示上一个版本,HEAD~n 表示往上n个版本。
  • 回退到指定版本
    bash
    git reset --hard <commit_id>

    <commit_id> 是你在 git log 中看到的提交ID的前几位(通常是7位或更多,只要能唯一标识即可)。

--hard 参数会彻底丢弃回退点之后的所有本地修改。如果你只想撤销暂存区的修改,可以使用 git reset HEAD <file>

8. 撤销修改 (git checkout)

如果你想撤销工作区中某个文件的修改,使其回到最近一次 git addgit commit 时的状态:

bash
git checkout -- <文件名>

这个命令会用暂存区或本地仓库的版本覆盖工作区的文件。

9. 分支管理 (Branching)

分支是Git的强大功能之一,它允许你在不影响主线开发的情况下进行新功能开发或Bug修复。

  • 查看分支
    bash
    git branch

    * 标记当前所在分支。
  • 创建新分支
    bash
    git branch <新分支名>
  • 切换分支
    bash
    git checkout <分支名>
  • 创建并切换到新分支
    bash
    git checkout -b <新分支名>
  • 合并分支 (git merge)
    将指定分支的更改合并到当前分支。
    bash
    git merge <要合并的分支名>

    如果合并过程中发生冲突,你需要手动解决冲突,然后 git add 冲突文件,最后 git commit
  • 删除分支
    bash
    git branch -d <要删除的分支名>

    -d 选项用于删除已合并的分支。如果分支未合并,可以使用 -D 强制删除。

10. 远程仓库操作

10.1 查看远程仓库 (git remote)

bash
git remote -v

这会列出你配置的所有远程仓库的名称和URL。通常,origin 是默认的远程仓库名称。

10.2 添加远程仓库 (git remote add)

如果你先在本地创建了Git仓库,然后想关联一个远程仓库(例如GitHub上的空仓库):

bash
git remote add origin <远程仓库URL>

origin 是远程仓库的别名,你可以自定义。

10.3 推送更改到远程仓库 (git push)

将本地仓库的提交推送到远程仓库。

bash
git push -u origin <本地分支名>

首次推送时,-u 参数会将本地分支与远程分支关联起来,之后可以直接使用 git push

10.4 从远程仓库拉取更改 (git pull)

从远程仓库获取最新更改并合并到当前本地分支。

bash
git pull origin <远程分支名>

如果本地分支已经关联了远程分支,可以直接使用 git pull

10.5 获取远程仓库更改 (git fetch)

git fetch 仅从远程仓库下载最新的更改,但不会自动合并到你的本地分支。这允许你在合并前检查更改。

bash
git fetch origin


通过掌握这些基本的Git概念和命令,你已经可以开始有效地进行版本控制和团队协作了。实践是最好的学习方式,多动手操作,你会越来越熟练!

滚动至顶部