1.Git初步认识

1.1Git操作

1.1.1基础操作

  • git init (初始化仓库)
  • git status (检查文件,仓库状态)
  • git add 文件名.文件后缀(添加文件至暂存区)
  • git commit -m “更新记录” (提交)
  • git log (查看日志)
  • gitk (图形界面)-patch(差异)

1.1.2远程仓库操作

  • git config –global user.name “账户名” (绑定账户)
  • git config –global user.email “绑定邮箱” (绑定账户)
  • git clone GitHub仓库地址 (加载到本地仓库)
  • git remote add 自定义仓库标识名 仓库地址 (连接GitHub仓库)
  • git remote show (显示连接的仓库)
  • git remote show 仓库标识名 (显示仓库信息)
  • git push 仓库标识名 main(推送到远程仓库)
  • git push –set -unstream 仓库名 main(设置默认push仓库名)
  • git remote remove 仓库标识名 (移除仓库)
  • git pull 仓库标识名 分支名 (从远程仓库获取代码并合并版本)
  • git push -f (强制上传)

1.1.3 文件编辑操作

  • vi 文件名 (用vi文本编辑器打开当前文件)
    • :q(退出该编辑器)
    • :光标+i(在光标处开启编辑)
    • ESC (退出编辑)
    • :w (保存)
    • :wq(保存并退出)
      编辑具体使用
  • git commit –amend(修改最近一次历史版本提交日志)
  • git add 文件夹名/ (将该文件夹所有文件放入暂存区)
  • git add –all (将当前目录下所有文件放入暂存区)
  • git rm 文件名 (从本地仓库移除文件)
  • git mv 原文件名 新文件名 (修改文件名)
  • git rm –cashed 文件名
  • git commit -a (越过暂存区直接到仓库)
  • git checkout – 文件 (恢复并覆盖最近一次暂存区的文件到工作区)
  • git reset –hard 版本id号(回退版本)

1.1.4 分支管理

  • git branch (查看分支)
  • git branch 分支名 (新建分支)
  • git ·checkout -b 分支名 (新建并切换到该分支)
  • git checkout 分支名 (切换分支)
  • git checkout - (切换到上个分支)
  • git merge 分支名 (合并指定分支到当前分支)
  • git branch -d 分支名 (删除分支)
  • git branch 新分支 已存在分支 (基于分支创建新分支)

2.git(本地)推送远程仓库流程

1.首先,绑定github(gitee)账户

1
2
3
1.首先,绑定github(gitee)账户
git config –global user.name “账户名” (绑定账户)
git config –global user.email “绑定邮箱” (绑定账户)

2.初始化要push的文件夹

1
git init (初始化仓库)

3.添加文件至暂存区并提交,注意这里还是在本地进行

1
2

git add 文件名.文件后缀 /git add . (提交全部)
1
2

git commit -m “更新记录” (提交)

4.更改分支名为main

1
2

git branch -m main

5.连接github仓库

1
2

git remote add 自定义仓库标识名 仓库地址

6.推送(必须在有网的前提下)

1
2

git push 仓库标识名 main

3.git分支管理策略

一般大型项目的维护、开发以及发布过程会遵循以下的策略(结合图来理解)

粉色模块Master是项目用来发布重大版本的分支,它是一个项目的主分支,日常开发所进行的分支则应在develop上进行,相应的功能模块会在基于develop分支上进行创建,功能模块实现并完成了它的任务(功能)并和develop分支合并(merge)后,则可清除该分支(红色曲线)。

在develop开发到一定程度决定发布后,则可以通过release-(橙色,\代表版本号)分支进行测试,release分支进行项目的运行测试并修改相应bug并确认无误后则可在Master主分支上对release进行合并(merge),同时将无bug版本在develop上也进行合并(merge),之后它便可以光荣退休(红线)了,等待下一个重大的日常版本来再出现。

Maste主分支在对外发布并运行的过程多多少少(当然能尽量避免就尽量避免)可能会出现一些测试未发现的bug,这时,则可以在它上面新建分支,用来解决对应bug,名称为fixbug-bug名,在对bug进行解决后则可继续合并到主分支,同时合并到develop上去,这时的fixbug也可以退休(红线)啦。
git分支管理策略

可以同时参考这篇博客http://www.ruanyifeng.com/blog/2012/07/git.html

下图是另外一种结构图(图源网络)

git分支结构图
总结:如果要清晰完整的开发好一个大型多人合作的项目,做好以下几点

*列好分支清单,统一好分支的命名,不要使分支混乱
*定时合并和清理分支,保证分支的简洁度和项目功能的完整度
*在一个大版本即将发布之时,检查好该版本的功能完整性以及测试是否可以正常运行,尽量少做在发布之时修改bug。
*提交每个版本时要做好清晰的备注

4.git工作流程

参考博客:http://www.ruanyifeng.com/blog/2015/12/git-workflow.html