深入理解 Git 一个开发者的必备工具
- 在现代软件开发中,版本控制系统扮演着至关重要的角色。其中,Git 是最流行的选择之一。无论你是新手还是有经验的开发者,了解 Git 的基本概念和使用方法都能大大提升你的工作效率。
什么是 Git?
- Git 是一个分布式版本控制系统,旨在高效地处理从小型到大型的项目。与传统的版本控制系统不同,Git 允许每个开发者在本地拥有一个完整的版本库,这使得协作和分支管理变得更加灵活。
git 工作流
-
首先我们的了解 Git 通常的操作流程,网上流行的不错一张图
-
工作区:
本地项目存放文件的位置,可以理解成图上的 workspace -
暂存区 (Index/Stage):
顾名思义就是暂时存放文件的地方,通过是通过 add 命令将工作区的文件添加到缓冲区 -
本地仓库(Repository)
通常情况下,我们使用 commit 命令可以将暂存区的文件添加到本地仓库,通常而言,HEAD 指针指向的就是 master 分支 -
远程仓库(Remote)
举个例子,当我们使用 GitHub 托管我们项目时,它就是一个远程仓库。通常我们使用 clone 命令将远程仓库代码拷贝下来,本地代码更新后,通过 push 托送给远程仓库。
Git 安装指南
- 下载: 前往 Git for Windows 网站,下载最新的安装程序。
- 安装: 运行下载的安装程序,按照向导进行操作。推荐使用默认选项。
- 验证安装: 打开命令提示符(cmd)或 PowerShell,输入以下命令:
git --version
- 使用 Homebrew: 如果你已安装 Homebrew,可以通过以下命令安装 Git:
brew install git
- 验证安装: 打开终端,输入:
git --version
- Debian/Ubuntu:
sudo apt update
sudo apt install git
- CentOS/Fedora:
sudo dnf install git # Fedora
sudo yum install git # CentOS
- 验证安装: 打开终端,输入:
git --version
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
git 常用命令
git init
git clone 仓库地址
git status
git diff # 未暂存的变更
git diff --cached # 已暂存的变更
git add 文件名
git add . # 添加所有变更
git commit -m "提交信息"
git branch
git branch 新分支名
git checkout 分支名
git merge 分支名
git branch -d 分支名
git remote add origin 仓库地址
git push origin 分支名
git pull
git log
git log --oneline
git reset --hard 提交哈希
git merge --continue
git 高级命令
- 使用 git add -p,你可以逐块选择需要暂存的改动,使提交更精确
git add -p
git tag -a 标签名 -m "说明"
git tag
git tag -d 标签名
- 使用 git add -p,你可以逐块选择需要暂存的改动,使提交更精确
git add -p
git tag -a 标签名 -m "说明"
git tag
git tag -d 标签名
git push origin 标签名
git push origin 标签名
- 如果你需要修改最近的提交,可以使用
git commit --amend
git show 提交哈希
git log --graph --oneline --decorate --all
git log -- 文件名
- 在合并或变基时发生冲突后,解决冲突后继续操作:
git add 解决的文件
git rebase --continue # 或者 git merge --continue
- 子模块可以管理依赖于其他 Git 仓库的项目
git submodule add 仓库地址
git submodule init
git submodule update
- Cherry-pick 允许你从其他分支选择特定的提交
git cherry-pick 提交哈希
git checkout -- 文件名
git reset HEAD 文件名
git diff 提交哈希1 提交哈希2 -- 文件名
git remote -v
git remote add origin 仓库地址
git push origin 分支名
git push --all origin
git revert 提交哈希
分支命名规范
忽略文件 .gitignore
- 这个文件的作用,会去忽略一些不需要纳入 Git 管理这种,我们也不希望出现在未跟踪文件列表,那么我们来看看如何配置该文件信息。
# 此行为注释 会被Git忽略
# 忽略 node_modules/ 目录下所有的文件
node_modules
# 忽略所有.vscode结尾的文件
.vscode
# 忽略所有.md结尾的文件
*.md
# 但README.md 除外
!README.md
# 会忽略 doc/something.txt 但不会忽略doc/images/arch.txt
doc/*.txt
# 忽略 doc/ 目录下所有扩展名为txt文件
doc/**/*.txt