在服务器搭建git的中央仓库
- 中央仓库要在git初始化命令携带参数
--bare
- 中央仓库应该总是创建成裸仓库,是属于一个储存设施,而不是一个开发环境
ssh ubuntu@192.168.10.223
mkdir ~/repo/shop.git && cd ~/repo/shop.git && git init --bare
在服务器上创建一个存放项目的工作目录并创建shop项目
mkdir -p ~/workdir/shop && cd ~/workdir/shop
在shop项目下搭建git的版本库(用于开发环境)
git init && echo "init shop project" >> README.md
配置项目的用户名称和email
git --version
git config --global user.name "keithl" # name一般作为当前打包发布和部署的用户,不单独设置给开发人员使用
git config --global user.email "keithl@163.com" # 同上
git config --global credential.helper store # 设置 Git,保存用户名和密码
git config --global core.longpaths true # 解决 Git 中 'Filename too long' 的错误
git config --global core.quotepath off # 关闭终端显示非ASCII字符
## 使用代理服务加速访问
git config --global url."https://proxyserver/".insteadOf "https://github.com/"
添加初始化文件并提交到服务器的中央仓库
git add README.md
git ci -m "initial project"
# 删除远程配置
git remote rm origin
git remote add origin ssh://ubuntu@192.168.10.223/home/ubuntu/repo/shop.git
git push -u origin master
# 同时添加develop分支
git branch develop && git checkout develop
git push origin develop
开发前期准备
- 设置git的别名(可选)
git config --system alias.st status
git config --system alias.ci commit
git config --system alias.co checkout
git config --system alias.br branch
git config --system alias.up rebase
or
git config --global alias.st status
git config --global alias.ci commit
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.up rebase
- git的其他配置
git config --global color.ui true
# window下设置不自动转换为CRLF换行,这样避免在window上进行开发时候将CRLF的换行带到linux服务器上
git config --global core.autocrlf false
# 拒绝提交时包含混合换行符号的文件,这样在提交到git服务器上的时候就可以知道有没有文件存在不同的换行符号
git config --global core.safecrlf true
# 设置默认的文本编辑器(linux环境)
git config --global core.editor vim
# 查看当前项目下的git的配置
git config --global --list
使用git进行协同开发
# 在开发环境下拉取项目代码
git clone ssh://ubuntu@192.168.10.223/home/ubuntu/repo/shop.git ~/workdir
cd ~/workdir/shop
git co master && git pull && git co develop && git pull
# 基于develop开启一个功能分支,比如开发一个订单功能
git br feature/module-orders
git checkout feature/module-orders
# coding
...
# 提交本地代码
git add files ...
git ci -m "add feature/module-orders requirements"
# 将分支更新到远程服务器
git push origin feature/module-orders
订单功能完成测试则需要合并到稳定的版本develop上去
# 在本地开发环境切换为develop并且保证代码最新
git co master && git pull && git co develop && git pull
# git br # 查看当前分支是否处于develop
# 将功能合并到develop上
git merge feature/module-orders
git st # 查看git当前状态
git diff # 查看项目变更文件有哪些
git push origin develop
# 删除分支
## 删除本地分支
git branch -D branchName
## 删除远程分支
git push origin :branchName
打包发版
# 在开发环境中使用一个固定帐号下的一个干净的目录进行打包(属于一个打包的专属目录)
# 基于develop分支进行release打包
git co master && git pull && git co develop && git pull
# 基于git flow打release包
# 如果是属于项目第一次拉取,则执行
git flow init -d # 仅需执行一次
# 根据项目版本号进行打包,比如现在是1.0.0版本
git flow release start 1.0.0
# 修改项目版本号以及日期,并添加变更日志log
..
# 提交release版本进行回归测试
git add version_file changelog.md
git ci -m "package version 1.0.0"
git flow release publish 1.0.0
# 测试OK之后,将release合并到develop和master上
git pull && git flow release finish 1.0.0
git push origin master && git push origin develop && git push --tags
git基于master迁移项目
目标:将gitlab.xxx.com迁移到gitlab.yyy.com
博客来源:https://blog.csdn.net/ruben95001/article/details/79298577
## 克隆项目
git clone gitlab.xxx.com:xxx.git
## 断开远程版本连接
git remote rm origin
## 查看项目配置
git config -l
## 新增新的远程版本连接
git remote add origin gitlab.yyy.com:yyy.git
## 提交代码
git add *
git commit -m "迁移项目x to 项目y"
git push -u origin master