导航
导航
文章目录
  1. 主分支
  2. 开发分支
    1. Git创建Develop分支的命令:
    2. 将Develop分支发布到Master分支的命令:
  3. 临时性分支
  4. 功能分支
    1. 创建一个功能分支:
    2. 开发完成后,将功能分支合并到develop分支:
    3. 删除feature分支:
  5. 预发布分支
    1. 创建一个预发布分支:
    2. 确认没有问题后,合并到master分支:
    3. 再合并到develop分支:
    4. 最后,删除预发布分支:
  6. 修补bug分支
    1. 创建一个修补bug分支:
    2. 修补结束后,合并到master分支:
    3. 再合并到develop分支:
    4. 最后,删除修补bug分支:
  7. 取消刚才的合并merge
  8. 合并
    1. 修改冲突后的提交
    2. 取消rebase
  9. 回退
    1. commit 回退
    2. push 回退
  10. 合并 commit
  11. 标签
    1. 添加轻标签
  12. 添加注解标签
  13. 删除标签
  14. 推送标签到远程
  15. 查看远程分支
  16. Git远程仓库地址变更
    1. 查看所有远程仓库
    2. 删除远程仓库地址
    3. 修改变更后的远程仓库地址
  17. git问题
    1. LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 60
    2. LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
    3. Empty reply from server
  18. 参考

gitflow基本操作

前言:在多组员,多项目等环境进行协同工作时,如果没有统一规范、统一流程,则会导致额外的工作量,甚至会做无用功。所以要减少版本冲突,减轻不必要的工作,就需要规范化的工作流程,本文就gitflow作简要的命令操作。

主分支

master 只负责管理发布的状态。在提交时使用标签记录发布版本号。
develop 针对发布的日常开发分支。刚才我们已经讲解过有合并分支的功用。

gitflow

开发分支

Git创建Develop分支的命令:

1
git checkout -b develop master

将Develop分支发布到Master分支的命令:

1
2
3
4
# 切换到Master分支
git checkout master
# 对Develop分支进行合并(使用了--no-ff参数,生成一个新的节点提交)
git merge --no-ff develop

临时性分支

功能(feature)分支
预发布(release)分支
修补bug(fixbug)分支

gitflow

功能分支

创建一个功能分支:

1
git checkout -b feature-x develop

开发完成后,将功能分支合并到develop分支:

1
2
git checkout develop
git merge --no-ff feature-x

删除feature分支:

1
2
3
git branch -d feature-x
# 删除远程分支
git push origin --delete feature-x

预发布分支

创建一个预发布分支:

1
git checkout -b release-1.2 develop

确认没有问题后,合并到master分支:

1
2
3
4
git checkout master
git merge --no-ff release-1.2
# 对合并生成的新节点,做一个标签
git tag -a 1.2

再合并到develop分支:

1
2
git checkout develop
git merge --no-ff release-1.2

最后,删除预发布分支:

1
git branch -d release-1.2

修补bug分支

创建一个修补bug分支:

1
git checkout -b fixbug-0.1 master

修补结束后,合并到master分支:

1
2
3
4
git checkout master
git merge --no-ff fixbug-0.1
# 对合并生成的新节点,做一个标签
git tag -a 0.1.1

再合并到develop分支:

1
2
git checkout develop
git merge --no-ff fixbug-0.1

最后,删除修补bug分支:

1
git branch -d fixbug-0.1

取消刚才的合并merge

1
git reset --hard HEAD~

合并

1
2
3
4
5
6
# rebase 合并
git checkout issue3
git rebase master
# master 合并
git checkout master
git merge issue3

修改冲突后的提交

1
git rebase --continue

取消rebase

1
git rebase --abort

回退

commit 回退

commit log

git-commit-log

commit reset

git-commit-reset

push 回退

push log

git-push-log

push reset

git-push-reset

合并 commit

1
2
3
4
5
# 从HEAD版本开始往过去数3个版本
$ git rebase -i HEAD~3

# 合并指定版本号(不包含此版本)
$ git rebase -i [commitid]

标签

添加轻标签

1
2
3
4
5
git tag v2.0
# 显示标签列表
git tag
# 显示标签列表包含标签资料的历史记录
git log --decorate

添加注解标签

1
2
3
4
5
git tag -a v3.0
// 或
git tag -am "注解" v3.0
# 显示标签的列表和注解
git tag -n

删除标签

1
2
git tag -d v2.0
git tag -d v3.0

推送标签到远程

1
git push origin v1.5

查看远程分支

1
git branch -a

Git远程仓库地址变更

查看所有远程仓库

1
git remote

删除远程仓库地址

1
git remote rm origin

修改变更后的远程仓库地址

1
git remote add origin http://xxx.git

git问题

LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 60

1
git config --global http.postBuffer 1048576000

LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443

Empty reply from server

1
git config --global --unset http.proxy

参考