一、克隆与配置
克隆仓库是使用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大文件存储等。读者可以根据自己的情况选择相应的应用。