×

微信扫一扫,快捷登录!

Git版本控制&工作流

标签: 暂无标签



Git Version Control

这篇文章是针对git版本控制和工作流的总结,如果有些朋友之前还没使用过git,对git的基本概念和命令不是很熟悉,可以从以下基本教程入手:

  • 专为设计师而写的GitHub快速入门教程
  • git – 简明指南
  • 学习Git的在线互动教程

基本概念

Git是什么?

Git是分布式版本控制系统,与SVN类似的集中化版本控制系统相比,集中化版本控制系统虽然能够令多个团队成员一起协作开发,但有时如果中央服务器宕机的话,谁也无法在宕机期间提交更新和协同开发。甚至有时,中央服务器磁盘故障,恰巧又没有做备份或备份没及时,那就可能有丢失数据的风险。

但Git是分布式的版本控制系统,客户端不只是提取最新版本的快照,而且将整个代码仓库镜像复制下来。如果任何协同工作用的服务器发生故障了,也可以用任何一个代码仓库来恢复。而且在协作服务器宕机期间,你也可以提交代码到本地仓库,当协作服务器正常工作后,你再将本地仓库同步到远程仓库。

为什么要使用Git

  • 能够对文件版本控制和多人协作开发
  • 拥有强大的分支特性,所以能够灵活地以不同的工作流协同开发
  • 分布式版本控制系统,即使协作服务器宕机,也能继续提交代码或文件到本地仓库,当协作服务器恢复正常工作时,再将本地仓库同步到远程仓库。
  • 当团队中某个成员完成某个功能时,通过pull request操作来通知其他团队成员,其他团队成员能够review code后再合并代码。


Git有哪些特性

  • 文件三种状态(modified, staged, committed)
  • 直接记录快照,而非差异比较
  • 多数操作仅添加操作
  • 近乎所有操作都是本地执行
  • 时刻保持数据完整性

有关以上特性的详细解释,请查看Pro git的git基础章节

Git基本工作流程

  • 在git版本控制的目录下修改某个文件
  • 使用git add命令对修改后的文件快照,保存到暂存区域
  • 使用git commit命令提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中


Git基本技巧

  • 自动补全
  • Git 命令别名

关于具体如何使用自动补全和命名别名技巧,请查看Pro git的技巧和窍门

Git版本控制

创建仓库
  • git init
  • git clone
  • git config


保存修改

git add
git commit

查看仓库

  • git status
  • git log –oneline


撤销修改

查看之前的commit

  • git checkout <commit> <file>
  • git checkout <commit>
  • git checkout <branch>


撤销公共修改

  • git revert <commit>


撤销本地修改

  • git reset
  • git clean


重写Git历史记录

  • git commit –amend
  • git rebase
  • git reflog


Git协作开发

分支

  • git branch
  • git checkout
  • git merge


仓库同步

  • git remote
  • git fetch
  • git pull
  • git push


Git工作流

由于git拥有强大的分支特性,它的工作流比较灵活而缺乏约束,于是参考Atlassian Git Tutorial的Comparing Workflows章节提供四种Git工作流:

  • Centralized Workflow
  • Feature Branch Workflow
  • Gitflow Workflow
  • Forking Workflow


以上工作流只是参考指南,而不是具体规则。你可以根据自己实际情况来选择适合自己的工作流或微调来满足自己的需要。

Centralized Workflow



过渡到分布式版本控制系统看起来像一个艰巨的任务,但如果你充分利用好git的话,你不必改变你既有的工作流,你的团队可以采用与之前使用SVN一样的方式来开发项目。

如何工作

Centralized Workflow

  • 从远程仓库(central repository)克隆工程到本地仓库(local repository) — git clone
  • 在本地仓库编辑文件和提交更新 — git add和git commit
  • fetch远程仓库已更新的commit到本地仓库和rebase到已更新的commit的上面 —git fetch和git rebase 或 git pull --rebase
  • push本地主分支(master branch)到远程仓库 — git push




来源:SamLau

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x




上一篇:Git版本控制&amp;工作流
下一篇:自动化部署三剑客---Jenkins+Ansible+Gitlab
monicazhang

写了 2297 篇文章,拥有财富 12859,被 21 人关注

您需要登录后才可以回帖 登录 | 立即注册
B Color Link Quote Code Smilies

成为第一个吐槽的人

Powered by IT 运维管理
返回顶部