码云笔记前端博客
Home > JavaScript > 前端开发超实用的GIT教程

前端开发超实用的GIT教程

2019-09-12 分类:JavaScript 作者:码云 阅读(235)

本文共计2754个字,预计阅读时长需要7分钟。

前端开发超实用的GIT教程
本文主要目的是在多人开发中让你能够熟练使用Git命令,完全从实战出发,不大谈原理,只谈实战应用。我们在入职新公司,接触新项目,基本是不需要你自己搭建Git项目来托管code的,所以搭建这块就直接略过,我只是教大家在前端开发实战时,如何使用Git命令轻松搞定多人开发。如果想要更详细的学习git教程推荐大家阅读我之前的文章《Git入门与进阶教程之Git基础》《Git入门与进阶教程之GitHub

第一件事,肯定就是先安装Git了,官网下载Git比较麻烦,需要有梯子来帮助你,才能摸到它,这里直接给你一个Github上的镜像地址供你下载安装

使用Git

安装好后,直接打开Git Bash,也就是Git 的控制台程序,就可以开始使用了

第一次使用Git,需要先配置自己的邮箱与名称

配置邮箱地址

1
git config --global user.email "mybj123.@126.com"

配置用户名

1
git config --global user.name "mybj123"

配置完,Git不会给出任何提示,Linux的逻辑就是,没有提示就是最美的提示。

注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

要想查看是否配置成功,依然是使用上述命令,把引号以及引号内的内容去掉即可。

拉取项目

配置好我们的个人信息后,自然也就需要拉取项目了

在磁盘中新建好存放项目的文件夹,进入文件夹点击鼠标右键,选择Git Bash即可

温馨提示:使用Git托管的项目,有两种地址,Https与SSH。

使用Https地址拉取,验证一次密码后,以后每次拉取/推送的时候不再需要验证密码。

使用SSH地址拉取的项目,每次拉取/推送的时候都需要密码验证。

各位读者自己抉择。

1
git clone 项目地址

分支管理

说分支管理之前,在此做个背景说明:一般在项目开发中会有2个主分支(master与develop)

master分支上的内容是发布在生产环境运行的内容

develop分支是所有开发人员开发完成发布到测试环境的内容

其它各种feature分支都是各位开发人员在开发时拉取使用的分支

此文,也沿用此方式,各位读者按照自己实际情况酌情判断

拉取下来后,我们要进行开发,肯定不能在master分支上开发,一般在项目上都会有各种分支

项目clone下来,首先就是查看分支了

1
git branch -r

加上-r是代表查看远程仓库的分支,要是查看本地分支,只需要把-r去掉即可,-r是remote的简写

查看远程分支,所有的分支名前均会带有origin/ 的前缀,这个前缀代表着远程分支,拉取远程分支,填写远程分支名时不需要带上origin/

接到开发任务,我们需要从远程仓库上将我们需要开发的分支拉取到本地

1
git fetch origin x(远程分支名):y(本地分支名)

使用上述代码,可以将远程分支拉取到本地,并创建本地分支

接着就是要将刚刚创建的本地分支与远程分支做关联了,做了关联之后,拉取更新与推送都不需要再指定分支名称

1
git branch --set-upstream-to=origin/x(远程分支名)  y(本地分支名)

其中,x是你本地分支对应的远程分支;y是你当前的本地分支。

做完关联后,咱们就需要切换分支,在特定的分支上去进行开发任务

先查看本地分支,找到我们需要开发的分支

1
git branch

再切换到我们需要开发的分支上

1
git checkout y(分支名)

内容推送

我们在自己的分支上按照需求完成了开发任务,接着就是将我们开发的内容提交到远程仓库了

虽然咱们所在的分支,除了自己之外,按理说是没人会在自己这个分支上再进行开发,所以推送前拉取更新也不很必要

但是为了避免不必要的麻烦,提交之前还是先拉取一下最新的数据

1
git pull

获取了最新数据后,如果有别的同事动了咱们的分支,那肯定得先解决一下文件的冲突,若没有人动,那也就不用处理了

接着将我们添加/修改的文件提交到本地暂存区

1
git add xxx(文件名)

xxx代表着文件名。当然,开发时咱们基本上很少只修改/添加一个单独的文件,当修改或添加了很多文件时,让我们一个一个文件的add,能把人给累死

所以Git也给出了批量add的方法,简单粗暴

1
git add -A

-A是All的缩写,git add all 可以提交未跟踪、修改和删除文件。

.git add . 可以提交未跟踪和修改文件,但是不处理删除文件。

提交到暂存区后完成后就是将改动内容全部提交

1
git commit -m "提交到暂存区"

引号内的文字,是此次提交内容的一个说明描述,以后看日志时也便于知道此次进行了什么内容的修改

提交完后就是将本次修改的内容推送至远程仓库

1
git push

好了,到这里push的时候,坑来了~~~

如果是自己一个人的项目,此时如何push都没问题,但问题就出在,咱们是多人开发的项目,咱们的分支是需要与主分支合并(merge)。

别的同事的任务完成了,早已推送到我们将要合并的develop分支上了

所以我们在push之前需要进行code merge ,将develop分支上的内容merge到我们当前的feature分支上

代码合并

此时我们在feature分支上已经将修改内容commit了

需要将develop分支的内容合并到当前分支,先切换分支到develop上,再获取一次更新

1
2
git checkout develop
git pull

这里切换到develop分支上获取更新时有个小坑,咱们暂且按照一切顺利来处理,后面再说一些常见的意外情况的处理。

获取完更新后,再切换到我们的feature分支上,将develop的内容合并到我们的feature分支上

1
git checkout feature

合并某分支到当前分支

1
git merge develop

解决冲突

执行merge后,如果有冲突,控制台会将有冲突的文件名展示出来,我们按照文件名找到对应文件,将冲突给解决掉后。

打开文件我们可以看到冲突的内容,例如:

<<<<<<>>>>> develop

Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容

<<<<<<<与=======之间的内容为当前分支的内容

=======与>>>>>>之间的内容为develop分支的内容(换句话说:就是需要被合并的分支内容)

将不需要保留的内容删除即可解决冲突

解决冲突后,我们再将当前的feature分支推送到远程仓库

1
git push

执行完本命令行后,即可将本地分支内容推送至远程仓库

获取更新时的意外情况

前面说从feature分支切换到develop分支拉取更新时,会有个小坑,因为有时候Git会报错

Git pull - Please move or remove them before you can merge

这个错误是因为无论原始文件中.gitignore 文件的内容是什么,文件都被添加到远程存储库中。

由于文件存在于远程存储库中,因此git也必须将它们提取到本地工作树,因此会抱怨文件已经存在。

.gitignore 仅用于扫描新添加的文件,它与已添加的文件没有任何关系。

因此,解决方案是删除工作树中的文件并提取最新版本。或者长期解决方案是如果错误地添加了文件,则从存储库中删除文件。

这时我们在develop 分支上删除当前目录下没有被track过的文件和文件夹

1
git clean -d -f

现在重新获取更新即可

开发到一半,却需要切换分支

软件开发中,Bug就像家常便饭一样。有了Bug就需要修复,在Git中,由于分支是如此的强大,所以,在实战中,每个Bug都是通过一个新的临时分支来修复,修复后,将Bug分支合并到develop与master两个分支上,然后将临时分支删除

注意:将Bug分支合并到develop与master两个分支上,是在远程仓库完成。在本地,是需要将develop与master分支先获取最新,然后将这两分支分别合并在Bug分支上,解决冲突后直接推送Bug分支即可

可我们在feature分支上开发功能开发到一半,leader突然跑来告诉我们,生产环境出现了一个Bug,需要咱们紧急修复,咱们兴致勃勃的使用git checkout Bug命令,打算切换到Bug分支上去修复Bug

结果……Git却告诉我们,无法切换过去,因为我们目前所在分支没有提交……

可我们若要完成开发任务再去修复Bug,可能需要好几个小时甚至几天时间才能完成,而Bug修复却是紧急任务,这该如何是好呢?

问题不大,不慌。此时我们可以将当前分支开发的工作状态储藏下来,待我们解决了Bug,再恢复我们现在的状态

1
git stash

执行完上述命令后,我们再来看看我们工作区是否干净

1
git stash status

我们发现工作区非常干净,此时我们就可以顺利的执行git checkout Bug到Bug分支上去修改Bug了

咱们现在将Bug也解决了,也推送了,现在又回到feature分支继续咱们之前的任务了,切换回feature分支后,之前修改的内容也没有恢复啊!说好的储藏了工作状态呢?

咱们就来看看所有储藏的工作

1
git stash list

使用上述命令,Git会将所有的储藏工作罗列出来,当我们想要恢复其中某一个储藏状态时,指定其名字就好了

1
git stash apply stash@{0}

上述的stash@{0} 是当前分支储藏的工作名,各位读者根据自己的git stash list中的内容,自行替换

切换后,确认完当前状态无误了,就可以将之前保存的储藏删除

1
git stash drop stash@{0}

觉得要执行两行命令比较麻烦?没关系,还有一次性解决问题的方法

切换后并自动删除

1
git stash pop stash@{0}

不过我个人不大推荐这种方式,万一咱们恢复的储藏指定错了呢,要恢复起来还挺麻烦的。

版本回退

在开发时,总有需要回退到某个版本的时候,不然用版本控制系统干嘛?是吧

我们先来看看我们的历史版本

1
git log

现在控制台输出了最近三次提交的日志信息,友情提示一下,按键盘Q可退出,按回车可查看更多的日志

要是嫌弃输出的内容过于冗杂,可以让Git显示个简单版

1
git log --pretty=oneline

加上一个--pretty=oneline参数,就可以只看提交的ID了

现在我们可以根据当时commit时填写的描述信息,来判断哪一个ID是我们想要回退的版本

版本的回退,有两种常用的方式

回退到上一个版本

1
git reset --hard HEAD

根据commit的ID,回退到指定版本

1
git reset --hard commit_id

commit_id这个版本号没必要写全,只需要写6位以上就差不多了,Git能自己找到它,若存在前6位重复ID,那再多加几位就好了

版本的回退也非常的简单吧,Git的命令行操作写到这儿,也进入尾声了。上述的命令基本可以满足日常的使用

小结

Git命令行的操作,使用起来并不复杂,作为开发人员,会用就行了,使用Git的要领就是大量使用分支

总结一下本文牵扯到的git操作

git config --global user.name查看用户名或配置用户名

git config --global user.email查看email或配置email

git clone将远程仓库的项目克隆到本地

git branch查看分支

git branch -r查看远程分支

git branch 创建分支

git fetch origin origin/remote_branch:your_branch将远程分支下载到本地,并创建分支

git branch --set-upstream-to=origin/remote_branch your_branch将本地分支与远程分支做关联

git pull获取更新

git clean -d -f删除当前目录下没有被track过的文件和文件夹

git merge 将目标分支合并到当前分支

git add将内容添加到暂存区

git commit将添加的内容提交

git push将本地提交内容推送到远程仓库

git checkout切换分支

git branch -d 删除分支

git stash储藏当前分支所有内容

git stash list查看当前分支储藏列表

git stash apply恢复指定储藏内容

git stash drop删除指定储藏内容

git stash pop恢复并删除指定储藏内容

git status显示工作目录和暂存区的状态

git log显示commit的详细日志

git log --pretty=oneline只显示commit的ID与描述

git reset --hard HEAD回退到最近的一个版本

git reset --hard commit_id根据commit_id回退到指定版本

结束语

以上就是码云笔记为大家带来的全部前端开发超实用的GIT教程,希望对大家有帮助,当然也欢迎大家留言拍砖。

「除特别注明外,本站所有文章均为码云笔记原创,转载请保留出处!」

赞(10) 打赏

觉得文章有用就打赏一下文章作者

支付宝
微信
10

觉得文章有用就打赏一下文章作者

支付宝
微信
标签:

上一篇:

下一篇:

你可能感兴趣

共有 0 条评论 - 前端开发超实用的GIT教程

博客简介

码云笔记 mybj123.com,一个专注Web前端开发技术的博客,主要记录和总结博主在前端开发工作中常用的实战技能及前端资源分享,分享各种科普知识和实用优秀的代码,以及分享些热门的互联网资讯和福利!码云笔记有你更精彩!
更多博客详情请看关于博客

精彩评论

站点统计

  • 文章总数: 458 篇
  • 分类数目: 13 个
  • 独立页面: 8 个
  • 评论总数: 215 条
  • 链接总数: 14 个
  • 标签总数: 1011 个
  • 建站时间: 495 天
  • 访问总量: 8648031 次
  • 最近更新: 2019年10月21日