您的位置:

macosgit:从克隆到高级应用指南

一、克隆与配置

克隆仓库是使用git的第一步,也是最基础的操作。在macOS上使用git更是方便,因为git已经预装在操作系统中。

1、克隆仓库:


git clone https://github.com/SOMEUSER/SOMEPROJECT.git

2、在克隆后的仓库中配置git的全局用户名和邮箱:


git config --global user.name "YOUR NAME"
git config --global user.email "EMAIL@ADDRESS.COM"

3、配置git的默认编辑器(可选):


git config --global core.editor "nano"

二、基础操作

git的基础操作包括提交修改、查看历史记录和分支操作。

1、提交修改:

1)git add:把工作区的修改添加到暂存区,准备提交。


git add file1.txt

2)git commit:把暂存区的修改提交到本地仓库。


git commit -m "Add file1.txt"

2、查看历史记录:

1)git log:查看提交历史记录。


git log

2)git diff:查看当前工作区和已提交的版本之间的差异。


git diff HEAD

3、分支操作:

1)创建分支:


git branch feature

2)切换分支:


git checkout feature

3)合并分支:


git merge feature

三、高级应用

1、Git Flow

Git Flow是一种分支管理策略,适用于长期维护的软件项目。它把分支分为主分支(master)、开发分支(develop)、功能分支(feature)、发布分支(release)和修复分支(hotfix)。

通过使用Git Flow,可以更好地组织代码,易于管理和交付。

1)安装Git Flow:


brew install git-flow-avh

2)启用Git Flow:


git flow init

3)创建功能分支:


git flow feature start feature_branch

4)完成功能分支:


git flow feature finish feature_branch

2、Git Hooks

Git Hooks是一种git的钩子(Hook)函数机制,可以让git在某些操作时运行特定的脚本。常用的Git Hooks包括在提交前进行代码检查、在提交时自动生成ChangeLog等。

1)创建Hook脚本:


touch .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit
nano .git/hooks/pre-commit

2)编辑Hook脚本:


#!/bin/sh

# Check if code is formatted
if [ $(npx prettier --list-different "src/**/*.js" | wc -l) -ne 0 ]; then
  echo 'Some files are not formatted, please use Prettier to format them first.'
  exit 1
fi

# Check if code builds successfully
if ! yarn build; then
  echo 'Failed to build project, please fix before commit.'
  exit 1
fi

3)启用Hook脚本:


chmod +x .git/hooks/pre-commit

3、Submodules

Submodules是一种git的子模块机制,可以让一个git仓库包含其他git仓库作为子模块,方便管理依赖。

1)添加子模块:


git submodule add https://github.com/SOMEUSER/SOMEMODULE.git

2)更新子模块:


git submodule update --init --recursive

3)删除子模块:


git rm SOMEMODULE
rm -rf .git/modules/SOMEMODULE

4、Git LFS

Git LFS(Large File Storage)是一种git的大规模文件存储机制,适用于管理大型图像、音频、视频和数据文件等。

1)安装Git LFS:


brew install git-lfs

2)启用Git LFS:


git lfs install

3)追踪大文件:


git lfs track "*.psd"

总结

本文对macosgit从克隆到高级应用做了详细的阐述,包括基础操作、Git Flow分支管理、Git Hooks、Submodules和Git LFS大文件存储等。读者可以根据自己的情况选择相应的应用。