Git 基本使用说明

Git 基本使用

Git简介

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。它可以帮助开发者记录项目的版本历史,方便回溯、协作开发等。

安装

  • windows

    对于 Windows 用户,可以从 Git 官方网站下载安装包,下载完成后按照安装向导提示逐步完成安装。

  • mac

    若使用 Homebrew,在终端输入 brew install git 即可安装。

    若未安装 Homebrew,也可从Git 官方网站下载对应 dmg 文件安装。

  • linux

    Linux 用户(以 Ubuntu 为例),在终端执行 sudo apt-get install git 命令进行安装。

配置 Git

安装完成后,需要配置一些基本信息。

打开终端(或 Git Bash 等):

设置用户名:

git config --global user.name "Your Name"

设置邮箱:

git config --global user.email "your_email@example.com"

基本操作

初始化仓库

进入项目所在目录,在终端输入 git init,这将创建一个本地 Git 仓库,此时项目目录下会多一个隐藏的 .git 文件夹,它包含了仓库的所有版本信息。

添加文件

首先使用 git add . 命令,它会将当前目录下所有修改的文件添加到暂存区,若只想添加某个特定文件,如 test.txt,可使用 git add test.txt

提交文件

文件添加到暂存区后,使用 git commit -m "提交说明" 来提交,提交说明要简洁明了,描述本次提交所做的更改内容,方便后续查看版本历史。

查看状态

随时可以用 git status 查看仓库当前状态,包括哪些文件被修改、哪些在暂存区等。

分支操作

创建分支

例如创建一个名为 dev 的分支用于开发新功能,使用 git branch dev

切换分支

要切换到 dev 分支,执行 git checkout dev,也可以合并成一条命令 git checkout -b dev,即创建并切换到新分支。

合并分支

假设在 dev 分支完成开发,要合并回主分支 master。首先切换到 master 分支 git checkout master,然后执行 git merge dev,如有冲突需要手动解决冲突后再提交。

远程仓库操作

关联远程仓库

如果有一个 GitHub 或其他远程代码托管平台的仓库,使用 git remote add origin [远程仓库地址] 关联,例如 git remote add origin https://github.com/your-username/your-repo.git

推送本地代

关联后,将本地代码推送到远程仓库,第一次推送时使用 git push -u origin master(以推送到 master 分支为例),后续直接 git push 即可。

拉取远程代码

团队协作时,若他人更新了远程仓库,需要拉取最新代码,使用 git pull origin master (同样以 master 分支为例)。

版本回退

查看历史版本

使用 git log 可以查看提交历史,记录了每次提交的哈希值、作者、时间、提交说明等信息。

回退到指定版本

找到要回退到的版本哈希值,执行 git reset –hard [版本哈希值],即可回退到该版本,但要谨慎操作,回退后后续提交记录将丢失,若只是想撤销暂存区的修改,可用 git reset HEAD [文件路径]。

标签操作

打标签

当项目达到某个重要里程碑,如发布 v1.0 版本,可使用 git tag -a v1.0 -m “版本 1.0 发布” 来打标签标记该版本。

查看标签

执行 git tag 可查看已有标签。

推送标签

如果要将标签推送到远程仓库,使用 git push origin [标签名],如 git push origin v1.0。

小技巧

如何让 git 命令的输出支持中文

  1. 设置 Git 的 core.quotepath 选项为 false,这样 Git 就不会对非 ASCII 字符的文件名进行 quote,从而可以正确显示中文。

    git config --global core.quotepath false
    
  2. 如果你使用的是 Windows 系统,还需要设置 i18n.commitEncoding 和 i18n.logOutputEncoding 为 utf-8,以确保提交信息和日志输出的编码正确

    git config --global i18n.commitEncoding utf-8
    git config --global i18n.logOutputEncoding utf-8
    

如何让 git 暂时忽略本地的更改

git update-index --assume-unchanged <文件路径>
git update-index --no-assume-unchanged <文件路径>
git update-index --skip-worktree <文件路径>
git update-index --no-skip-worktree <文件路径>