1. git和github
git是代码版本控制工具,github是基于git实现的代码管理平台
- 分布式版本控制
本地仓库和远程仓库结合,而中央集中式版本控制中依赖于远程仓库。
- 多人协调工作,上传或查看代码
- 有效监听谁修改代码
- 本地及远程操作
2. git工作流
工作流较多,但均可以取其精华去其糟粕。
参考链接:git的各种工作流_Peace-CSDN博客_git工作流
- 集中式工作流
三到五人的小团队
相关命令:
- git clone
- git pull
- git push
- 功能分支工作流
8到12人团队
相关命令:
- git clone
- git pull
- git push
- git checkout
- git branch
- gitflow工作流
适用于整个大项目的团队,仓库包括master,develop,release,hotfix以及各种feature分支。
- develop是专门用作开发的分支,所有的feature分支都必须从develop分支pull下来。
- 当某个feature分支所有的功能均开发完毕,需pull request到develop分支;当merge成功后须告知其他feature分支重新pull新的develop分支,否则当其他分支pull request的会产生冲突。
- 开发每个feature分支时,每个功能最好在某个固定的功能目录下修改,切忌开发某个功能时修改另一个功能目录下的文件。
- 当所有feature功能开发完毕并测试通过后,将develop分支推送到release分支
- 项目测试人员在release分支上进行验证,验证通过后推送到master分支进行发布
详细参考:GitFlow 工作流 | 千锋教育
- forking工作流
通常跨国团队合作使用
3. 基本命令
- 仓库创建与拉取
- git init //初始化本地git仓库
- git clone http://<…> //从远程仓库拷贝数据到当前目录,可能需要加.git
- git submodule update –init –recursive //已有.gitmodule的情况下clone公共库
git -c submodule.”qemu”.update=none submodule update –init –recursive // 忽视添加某个工程创建调用公共库,参考该链接第2.2节:Git Submodule使用完整教程 – lsgxeva – 博客园
- 文件管理:
- git diff <file> //修改工程后,查看某个文件的修改内容
- git add file //添加文件,形成文件队列
- git commit //将添加的文件提交到本地git仓库
- git rm –cached file //将文件从队列中移除
- 创建 .gitignore文件,并在里面编辑需要忽略的文件名 //提交到本地仓库时忽略某些文件
- 分支管理
分支不会影响已完成功能的主线文件
- git branch name //创建分支name
- git checkout name/master //切换到分支name/主线
- git merge name //先回到主线里,再输入此命令将分支添加到主线中去
- 远程操作:
- git config
- git pull //从远程仓库拉取文件
- git push //将本地仓库文件推送到远程仓库
- git push origin <…> //将本地仓库文件推送到远程指定仓库
- git fetch
- git remote //查看有无远程仓库地址
git remote add http://… //设置远程仓库地址,并取得连接
- 版本操作:
- git log // 查看工程的git记录
- git reset
- git status //查看文件添加或修改状态
- tag操作:
- 切换到某个tag:git checkout <tag_name>
- 显示所有tag:git tag
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/82525.html