git代码管理艺术
快速学会使用Git进行前端代码管理和版本控制

快速学会使用Git进行前端代码管理和版本控制Git是一种分布式版本控制系统,旨在帮助开发者高效地管理代码和协作开发。
对于前端开发者来说,熟练掌握Git的使用是非常重要的。
本文将介绍如何快速学会使用Git进行前端代码管理和版本控制,包括基本概念、常用命令和实际应用。
一、基本概念1. 仓库(repository):Git用仓库来存储和管理代码。
仓库可以是本地仓库(位于本地计算机上)或远程仓库(位于服务器上)。
2. 分支(branch):分支是用来开发新功能或修复问题的独立副本。
在一个仓库中,可以有多个分支并行存在。
3. 提交(commit):提交是对代码进行持久化保存的操作,每个提交都有一个唯一的ID(哈希值)。
4. 合并(merge):合并是将两个分支或多个分支上的代码合并为一个分支的操作。
通过合并,可以将其他分支的代码合并到主分支上。
5. 冲突(conflict):当两个分支上有基于同一部分代码的不同修改时,合并操作可能会引发冲突。
冲突需要手动解决。
二、常用命令1. 初始化仓库:使用`git init`命令在当前目录下初始化一个新的Git仓库。
2. 克隆仓库:使用`git clone`命令从远程仓库中克隆一个副本到本地计算机。
3. 添加文件:使用`git add`命令将文件添加到暂存区,准备提交。
4. 提交文件:使用`git commit`命令提交暂存区的文件到本地仓库,包括一个具有描述性的提交消息。
5. 查看提交历史:使用`git log`命令查看提交历史,包括提交的作者、日期和消息。
6. 创建分支:使用`git branch`命令创建一个新的分支,例如`git branch feature`。
7. 切换分支:使用`git checkout`命令切换到指定分支,例如`git checkout feature`。
8. 合并分支:使用`git merge`命令合并指定的分支到当前分支,例如`git merge feature`。
Git源代码管理规范

使用git 进行源代码管理,普通将某个项目的所有分支分为以下几条主线:Master顾名思义,既然名字叫 Master ,那末该分支就是主分支的意思。
master 分支永远是production-ready 的状态,即稳定可产品化发布的状态。
Develop这个分支就是我们寻常开辟的一个主要分支了,不管是要做新的 feature 还是需要做bug fix ,都是从这个分支分出来做。
在这个分支下主要负责记录开辟状态下相对稳定的版本,即完成为了某个 feature 或者修复了某个 bug 后的开辟稳定版本。
Feature branches这是由许多分别负责不同 feature 开辟的分支组成的一个分支系列。
new feature 主要就在这个分支系列下进行开辟。
当功能点开辟测试完毕之后,就会合并到 develop 分支去。
release branches这个分支系列从 develop 分支出来,也就是预发分支。
在预发状态下,我们往往会进行预发环境下的测试,如果浮现缺陷,那末就在该 release 分支下进行修复,修复完毕测试通过后,即分别并入 master 分支后 develop 分支,随后 master 分支做正常发布。
Hotfix branches这个分支系列也就是我们常说的紧急线上修复,当线上浮现 bug 且特殊紧急的时候,就可以从 master 拉出分支到这里进行修复,修复完成后分别并入 master 和 develop 分支。
下面这张图将完整展示这一个流程Git 的工作方式:也就是说,每次提交版本变动的时候,git 会保存一个快照(snapshot)。
如果文件没有被更改,git 也不会再次保存,而是提供一个到原来文件的链接。
这样一来,git 更像是一个小型的文件系统。
此外,( repository )是 Git 保存元数据和对象数据库的地方。
这也是 Git 最重要的部份。
(working directory )是项目某个版本的内容。
Git代码管理规范

代码管理工具:Git代码分支管理:1.主分支master2.开发分支develop3.功能分支feature4.预发布/测试分支release5.修复Bug分支hotfix1.主分支master代码库应该有一个、且仅有一个主分支。
所有提供给用户使用的正式版本,都在这个主分支上发布。
Git主分支的名字,默认叫做Master。
它是自动建立的,版本库初始化以后,默认就是在主分支在进行开发。
2.开发分支develop主分支只用来分布重大版本,日常开发应该在另一条分支上完成。
我们把开发用的分支,叫做Develop。
这个分支可以用来生成代码的最新代码版本。
如果想正式对外发布,就在Master 分支上,对Develop分支进行"合并"(merge)。
3.功能分支feature功能分支,它是为了开发某种特定功能,从Develop分支上面分出来的。
开发完成后,要再并入Develop。
功能分支的名字,可以采用feature-*的形式命名。
4.预发布分支release预发布分支,它是指发布正式版本之前(即合并到Master分支之前),我们可能需要有一个预发布的版本进行测试。
预发布分支是从Develop分支上面分出来的,预发布结束以后,必须合并进Develop和Master分支。
它的命名,可以采用release-*的形式。
5.修复bug分支hotfixbug分支。
软件正式发布以后,难免会出现bug。
这时就需要创建一个分支,进行bug修补。
修补bug分支是从Master分支上面分出来的。
修补结束以后,再合并进Master和Develop分支。
它的命名,可以采用hotfix-*的形式,*为禅道的bug号。
Git代码回滚与找回的艺术

Git代码回滚与找回的艺术Git是⼀个灵活和强⼤的版本管理⼯具,正确使⽤能够有效促进团队协作,防⽌版本丢失。
然⽽实践中,有些开发⼈员会或有意或⽆意地误⽤部分Git的功能,给团队带来困扰,甚⾄造成损失。
不恰当的代码回滚操作是其中的主要问题之⼀。
本⽂主要分享针对不同场景的代码回滚操作,以及如何抢救误删的内容。
⼀个典型案例我们先通过⼀个项⽬团队真实出现过的典型案例,来看看不恰当的代码回滚可能带来的问题。
(1)⼩红、⼩黄、⼩蓝共同⼯作在同⼀条分⽀上。
(2)⼩红利⽤reset回滚了⼀些内容,发现push失败,最后⽤push -f操作成功。
更甚者,push -f提⽰⽬标是保护分⽀(例如master)⽽⽆法推送成功,于是⼩红取消了分⽀保护,从⽽使得push -f成功。
(3)⼩黄⼩蓝进⾏常规git pull,遇到了⼀⼤堆冲突,并且commit历史都乱了!(4)过⼀段时间,需要查看某次发布的源代码,却发现⽆法找到准确的代码!原来它刚好被⼩红之前reset掉了。
认识Git的四个⼯作区域在盘点常见的代码回滚场景之前,有必要认识⼀下Git的四个⼯作区域。
平常我们clone⼀个代码库之后,本地看起来就是⼀个包含所有项⽬⽂件的⽬录。
其实从逻辑上可以分为四个⼯作区域:⼯作区也称⼯作⽬录、⼯作副本,简单来说就是clone后我们看到的包含项⽬⽂件的⽬录。
我们⽇常开发操作也是在⼯作区中进⾏的。
本地仓库(.git)在⼯作区中有个隐藏⽬录.git,这就是Git本地仓库的数据库。
⼯作区中的项⽬⽂件实际上就是从这⾥签出(checkout)⽽得到的,修改后的内容最终提交后记录到本地仓库中。
Tips:不要⼿动修改.git⽬录的内容*暂存区也称缓存区,逻辑上处于⼯作区和本地仓库之间,主要作⽤是标记修改内容,暂存区⾥的内容默认将在下⼀次提交时记录到本地仓库中。
远端仓库团队协作往往需要指定远端仓库(⼀般是⼀个,也可以有多个),团队成员通过跟远端仓库交互来实现团队协作。
如何有效地组织和管理你的代码

如何有效地组织和管理你的代码代码的组织和管理对于开发人员来说至关重要。
一个好的代码组织和管理策略可以提高代码的可读性、可维护性和可重用性,从而更高效地开发和维护代码。
下面是一些有效地组织和管理代码的技巧和方法。
1.模块化编程:将代码分解为独立的模块,每个模块负责一个特定的功能。
模块化编程使得代码更加可读和易于理解,同时也方便重用。
常见的模块化编程技术包括面向对象编程(OOP)和函数式编程。
2.使用适当的命名:给变量、函数、类和模块起一个清晰、具有描述性的名称。
避免使用缩写或者过于简单的名称,以免代码的可读性下降。
一个好的命名习惯可以使得他人更容易理解和使用你的代码。
3.代码注释:在代码中添加注释可以帮助他人理解你的代码的目的和功能。
注释也可以记录代码的修改和修复,以便于后续维护。
然而,要注意不要让注释过多,否则会影响代码的可读性。
4.使用版本控制:使用版本控制系统(如Git)来管理代码的不同版本和变更历史。
版本控制可以帮助你跟踪代码的修改、还原代码到特定版本、并协同多人开发。
版本控制还可以提供备份和恢复的功能,确保代码的安全性和可靠性。
5.目录结构的组织:合理的目录结构可以帮助你更好地组织和管理代码文件。
使用有意义的目录和文件名可以使代码的查找和查看更加方便。
可以按照功能或模块来组织代码文件,并遵循一定的命名约定。
6.代码重用:尽可能地重用代码可以减少代码的冗余,提高代码的可维护性和易用性。
将常用的功能封装为函数、类或模块,并进行适当的抽象和封装,以便于在不同的项目中重复使用。
7.编写清晰的文档:为代码编写清晰的文档可以帮助他人理解代码的用途和使用方式。
文档可以包括代码的说明、示例、API文档等。
使用标准的文档格式(如Markdown)可以使得文档更易于编写和阅读。
8.自动化测试:编写自动化测试用例可以帮助你验证代码的正确性,并及早发现和修复潜在的问题。
自动化测试可以提高代码的质量和稳定性,减少手动测试的工作量。
如何使用GIT进行版本控制与代码管理

如何使用GIT进行版本控制与代码管理第一章:引言版本控制是开发团队中非常重要的一个环节,它可以帮助团队成员协同工作、追踪项目的发展历程并确保代码的稳定性。
而GIT作为目前最为流行的版本控制工具,在全球范围内被广泛应用。
本文将介绍如何使用GIT进行版本控制与代码管理。
第二章:GIT的基本概念2.1 仓库(Repository)仓库是项目的存储空间,其中包含代码和历史记录。
可以将仓库分为本地仓库和远程仓库。
本地仓库在开发者的本地计算机上保存,而远程仓库则是指托管在云端或其他服务器上的仓库。
2.2 分支(Branch)分支是在仓库中用于并行开发不同功能或解决不同问题的独立工作流。
每个分支都有自己的代码和提交历史。
通过创建新分支,开发者可以在不同分支之间切换和合并代码。
2.3 提交(Commit)提交是将更改保存到仓库中的操作。
每次提交都包含一个唯一的标识符和相关的作者、日期、描述等信息。
通过提交,开发者可以记录和回溯代码的发展历程。
第三章:GIT的安装与配置3.1 安装GIT在使用GIT之前,首先需要在计算机上安装GIT工具。
可以从官方网站上下载相应的安装包,并按照安装向导进行操作。
3.2 配置GIT安装完成后,需要进行一些基本配置,如设置用户名和邮箱等。
可以通过以下命令进行配置:git config --global "Your Name"gitconfig--globaluser.email"*********************"这样,每次提交代码时,GIT就会将作者信息与相应的提交记录关联起来。
第四章:创建和克隆仓库4.1 创建本地仓库在开始项目开发之前,可以通过以下命令来创建一个本地仓库:git init该命令将在当前目录下创建一个空的GIT仓库。
之后可以将项目代码添加到仓库中,并进行提交等操作。
4.2 克隆远程仓库如果希望和团队成员共享代码并进行协同开发,可以通过克隆远程仓库的方式获取代码。
Git源代码管理系统要求规范

Git源代码管理规范一、分支管理使用git进行源代码管理,一般将某个项目的所有分支分为以下几条主线:1.Master顾名思义,既然名字叫Master,那么该分支就是主分支的意思。
master分支永远是production-ready的状态,即稳定可产品化发布的状态。
2.Develop这个分支就是我们平常开发的一个主要分支了,不管是要做新的feature还是需要做bug fix,都是从这个分支分出来做。
在这个分支下主要负责记录开发状态下相对稳定的版本,即完成了某个feature或者修复了某个bug后的开发稳定版本。
3.Feature branches这是由许多分别负责不同feature开发的分支组成的一个分支系列。
new feature主要就在这个分支系列下进行开发。
当功能点开发测试完毕之后,就会合并到develop分支去。
4.release branches这个分支系列从develop分支出来,也就是预发分支。
在预发状态下,我们往往会进行预发环境下的测试,如果出现缺陷,那么就在该release分支下进行修复,修复完毕测试通过后,即分别并入master分支后develop分支,随后master分支做正常发布。
5.Hotfix branches这个分支系列也就是我们常说的紧急线上修复,当线上出现bug且特别紧急的时候,就可以从master拉出分支到这里进行修复,修复完成后分别并入master和develop分支。
下面这张图将完整展示这一个流程二、工作原理Git的工作方式:也就是说,每次提交版本变动的时候,git会保存一个快照(snapshot)。
如果文件没有被更改,git也不会再次保存,而是提供一个到原来文件的链接。
这样一来,git更像是一个小型的文件系统。
此外,git的所有操作都可以是本地的,仅仅在将新版本的内容上传到服务器上时才需要连接网络。
Git目录(repository)是Git保存元数据和对象数据库的地方。
Git代码管理工具教程

Git代码管理工具教程第一章:概述Git是一款分布式版本控制系统,用于管理软件开发过程中的源代码。
它具有高效、快速和强大的特点,能够满足开发团队对代码版本管理的需求。
本章将介绍Git的基本概念和工作原理。
1.1 Git的概念Git是一种分布式版本控制系统,与传统的集中式版本控制系统有所不同。
在Git中,每个开发者都可以拥有完整的源代码副本,可以在本地独立地进行开发和版本管理,不需要依赖网络连接。
1.2 Git的工作原理Git通过创建一个名为仓库的文件夹来管理代码版本。
每个仓库都包含了整个项目的完整历史记录,每个开发者都可以在自己的本地仓库上进行修改和提交。
Git使用一种称为提交的方式来记录每次代码的变更,每个提交包含了一个独立的版本号和对应的代码快照。
第二章:安装与配置在使用Git之前,我们需要先安装和配置Git环境。
本章将介绍Git的安装过程和常见的配置选项。
2.1 Git的安装Git提供了多种平台下的安装方式,包括Windows、Mac和Linux等。
我们可以从Git官方网站下载安装包,按照提示进行安装。
2.2 Git的配置安装完成后,我们还需要进行初步的配置,包括设置用户名和邮箱地址等信息。
Git提供了一个全局配置文件,可以通过命令行或者配置文件来进行配置。
第三章:仓库操作在使用Git进行版本管理时,我们需要先创建一个仓库,并进行相关的操作。
本章将介绍Git的仓库创建、克隆、添加文件、提交和提交历史等操作。
3.1 仓库创建与克隆使用Git创建仓库非常简单,只需要在所需位置运行"git init"命令即可。
如果希望在本地使用Git,可以通过克隆远程仓库的方式来获取代码,使用"git clone"命令即可。
3.2 添加文件和提交在仓库中添加文件非常简单,只需要将文件放置到仓库目录下,并使用"git add"命令将文件添加到暂存区。
然后可以使用"git commit"命令将暂存区的内容提交到本地仓库。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
重演被衍合分支的历史,他是一种线性的合并
2013-12-9
分支管理遇到的问题
多人并行开发,开分支需求多,但分支开销太
大,只能凑合着用 分支合并特别麻烦,项目后期经常为了合并分 支要花费一下午的时间,特别是tree conflict 问题 项目使用时间长后,svn服务器速度越来越慢, 导致svn操作都很慢,喝杯咖啡回来继续
Ø
2013-12-9
大纲
Git简介 Git基础 Git操作
GIT版本管理
GIT分支管理在项目中的实践
2013-12-9
GIT开分支
Git开分支代价非常小
仅增加几十字节的存储 Ø 开分支不需要管理员来开 Ø 开分支仅需要数秒钟
Ø
2013-12-9
创建分支
Git
branch <branchName> 创建分支 git checkout <branchName> 切换分支
大纲
Git简介 Git基础 Git操作
GIT版本管理
GIT分支管理在项目中的实践
2013-12-9
Git目录
Git一共有三个目录
工作目录(Working Directory) Ø 暂存目录(index) Ø 仓库(History)
Ø
2013-12-9
GIT文件状态切换
2013-12-9
顾费勇
Git代码管理艺术
2013-12-9
大纲
Git简介 Git基础 Git操作
Git版本管理
GIT分支管理在项目中的实践
2013-12-9
Git 简史
2002 年,linux项目组开始启用分布式版本控制系统 BitKeeper 来管理和维护代码。 2005 年的时候,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了免费使 用BitKeeper 的权力 April 5, 2005 – Linus发布首个git版本 June 15, 2005 - Git 用作Linux源码版本控制
少那些乱七八糟的提交弄乱git仓库 git commit -ammend 这会更改Sha-1值,不能再push之后再修改
2013-12-9
git调试
Git有个挺有用的功能,可以找出你觉得有问
题的代码在哪个版本引入的 git blame -L 32,36 xxx.java
2013-12-9
2013-12-9
远程仓库操作
git
clone <仓库地址> git remote –v 列出所有远程仓库 git push <仓库名> <分支名> 推送本地分支更 新到远程仓库 git fetch 从远程仓库获取更新 git pull从远程仓库获取更新并merge本地分支
2013-12-9
Ø
它能最大限度地发挥多人协同并发编程的效能,
让分支管理更快速,版本管理更简单
2013-12-9
GIT简介-开源
• •
GIT源码地址:/download GIT许可证:GNU通用公共许可证(GNU General Public License)
2013-12-9
大纲
Git简介 Git基础 Git操作
子模块
第三方开发的库或者是你独立开发和并在多个
父项目中使用的项目作为一个子模块放入git仓 库 $ git submodule add git:///chneukirchen/rack.git rack
2013-12-9
filter-branch
核弹级应用,尽可能小心使用
2013-12-9
git log
$ git log commit 734713bc047d87bf7eac9674765ae793478c50d3 Author: Scott Chacon <schacon@> Date: Fri Jan 2 18:32:33 2009 -0800 fixed refs handling, added gc auto, updated tests commit d921970aadf03b3cf0e71becdaab3147ba71cdef Merge: 1c002dd... 35cfb2b... Author: Scott Chacon <schacon@>
Git版本管理
GIT分支管理在项目中的实践
2013-12-9
离线
Git是完全的分布式处理,它可以离线工作。
跟SVN完全不同,Git的所有操作几乎不需要网 络连接,包括历史回顾,差异显示和提交
2013-12-9
快速
Git比其他的VCS工具要快很多,因为git绝大部
分是离线操作,对网络依赖小
2013-12-9
查看提交范围
git log master..experiemnt D C
2013-12-9
查看提交范围
git
log origin/master..HEAD
这条命令显示任何在你当前分支上而不在远程
origin 上的提交。如果你运行git push 并且的你的当前分支正在跟踪origin/master, 被git log origin/master..HEAD
time git clone ssh://gufeiyong@:2222/backend/datastream.git >/dev/null real0m26.559s user0m2.568s sys0m1.028s time svn co https:///svn/datastream >/dev/null real3m14.684s user1m1.156s sys0m20.897s
2013-12-9
占用空间小
git比较节省空间。Django项目为例。
44M ./django-git 53M ./django-svn git克隆比SVN要小很多,且git克隆包含整个项 目的历史版本。 SVN只包含项目的最后一个版本。
2013-12-9
快照
git是基于快照的,而不是补丁文件 包含一些元数据(提交信息(message),作
review https:// Code review流程:
代码commit之后,push的地址是code review的地 址,而不是仓库地址 Ø 提交之后,owner就会收到code review的邮件,显 示代码的改动 Ø 可以在ui上review代码,并做评注 Ø Commiter就会收到邮件,修改并重新发起code
2013-12-9
GIT的优势
使用GIT很大程度上解决了我们在项目中碰到
2013-12-9
集中化的版本控制系统
2013-12-9
集中化的版本控制系统
坏处:好处:每个人都可以在一定程度上看到
项目中的其他人正在做些什么。而管理员也可 以轻松掌控每个开发者的权限。
(1)中央服务器的单点故障,无法提交更新,也 就无法协同工作。 Ø (2)要是中央服务器的磁盘发生故障,碰巧没做 备份,会有丢失数据的风险。最坏的情况是彻底 丢失整个项目的所有历史更改记录
Ø
2013-12-9
分布式版本控制系统
2013-12-9
分布式版本控制系统
像GIT这种系统,客户端并不只提取最新版本
的文件快照,而是把原始的代码仓库完整地镜 像下来。
2013-12-9
比较:SVN(上)和GIT(下)
2013-12-9
大纲
Git简介 Git基础 Git操作
Git版本管理
GIT分支管理在项目中的实践
2013-12-9
创建仓库
Git
init 创建一个空仓库
git
clone git:///schacon/grit.git mygrit 复制一个远程仓库到本地
2013-12-9
文件生命周期
2013-12-9
常用文件操作命令
git
可以从所有历史提交中删除一个文件,悔棋用,
可能你误提交了个私密文件,可以通过这个功 能来从历史提交中全部删除
git
filter-branch --tree-filter 'rm -f passwords.txt' HEAD
2013-12-9
Code review
公司有个gerrit网站,用来做git代码的code
者,日期等等),一个commit指向这次提交 时项目的快照。
2013-12-9
分支
以前的VCS工具分枝的方法是对每一个分枝都
放到一个独立的目录中。而git可以让你在同 一个工作目录中切换(switch)到不同的分枝。 创建和切换分枝几乎是即时的(instant),并 且存在本地分支 git开发者可以随时创建,合并,删除多个分 枝。它鼓励一种非线性的开发周期,它可以说 是并行的多线程模式而不是多个步骤串行的模 式。
查看历史版本
log 命令来查看历史版本的提交 git log的操作都是本地操作,基本都能瞬间完 成,比SVN快很多,查看历史版本或进行diff 比较都非常方便 也可以通过git revert操作来回退到历史版本
可以通过git
2013-12-9
查看祖先引用
git
log --pretty=format:'%h %s' --graph
status 查看文件状态 git add <file> 跟踪新文件或暂存已修改文件 git diff 查看文件变化 git commit –m <msg> 提交更新 git rm file 移除文件 git log 查看提交日志 git commit –ammend 修改最后一次提交 git reset HEAD <file> 取消已暂存文件 git checkout -- <file> 取消文件修改