首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在 WebStorm 中熟练地使用 git

WebStorm 是一款非常强大的代码编辑器,然而其中一些技巧有待我们深入发掘,在这里我先写一篇 git 操作相关的使用技巧,希望能够向大家介绍,如何在 WebStorm 中熟练地使用 git?

下面我们将以图形化界面的方式,教会大家:

git init 初始化(这一步要在命令行操作)

git remotes 管理(增删改查)

git clone 检出(约等于以上两步的合成)

git fetch 拉取远端仓库更新

git merge 合并分支

git merge 解决冲突

git add 追踪文件

git commit 提交文件

git push 推送文件

前置准备:这里我们以 coding.net 这个代码托管网站中演示:

我们先来创建一个仓库

创建成功,复制远端仓库地址 https://git.coding.net/dear_lizhihua/repository-demo.git

那么,如何将项目同步到本地呢?这里我们提供两种方式:

第一种思路是,创建一个全新项目后,对其 git init 初始化为 git 项目,然后设置远端仓库地址

第二种思路是,直接 check out 检出 github 仓库到本地目录

方式一

在 WebStorm 中,创建一个项目:

在项目根目录下,执行如下 git 命令:

git init

如果此时看到 WebStorm 中出现工具条,并且项目目录下出现文件夹,说明我们的项目已经成功初始化为 git 项目

这时我们还需要设置远端仓库地址

这里通过图形化界面,对 remotes 进行查询、新增、修改、删除,而且可以设置多个 remote,相当直观 ^_^

成功添加远端仓库地址

其实,对应的 git 命令是

// 添加

git remote add origin https://git.coding.net/dear_lizhihua/repository-demo.git

// 删除

git remote remove origin

// 修改 = 删除 + 添加

git remote remove origin

git remote add origin https://git.coding.net/dear_lizhihua/repository-demo.git

// 查询

git remote -v

方式二

注意,在文件夹下检出时,不能有同名的文件目录存在

其实,对应的 git 命令是

git clone https://git.coding.net/dear_lizhihua/repository-demo.git

1

拉取远端仓库更新

这里,我们将大家熟悉的 git pull,拆分为大家不熟悉的和两个命令的合成,其实拆分后的操作,是比较安全稳妥的做法,具体原因我会在下面详细解释(还可以参考 git 少用 pull 多用 fetch 和 merge(git: fetch and merge, don’t pull) 一文,链接:https://www.oschina.net/translate/git-fetch-and-merge),建议大家尽量通过这种方式

更新远端仓库的所有分支

这里我们解释下为什么不使用 git pull 这种奇怪操作的原因:

使用 git pull,会在更新完直接 merge。而在两个分支之间有多个文件冲突的情况下,会导致产生一堆待 merge 文件。

只使用 git fetch 更新远端仓库的所有分支,等于将这种冲突放在 git merge 这一步。这样我就可以等到真正需要的时候,再去解决分支下文件的冲突

前置准备:这里我们的远端仓库还是一个空的仓库,为了演示我们需要先在网站页面进行文件操作,以进行更新操作

前置准备开始

勾选,点击按钮

成功创建 README.md

前置准备结束

先记住右下角的工具条中的分支

然后,我们进行更新

奇怪?远端的分支已经出现了,但是文件并没有更新,版本控制里面也没有任何提交记录

以下这些步骤,只在项目初始化时用到

在第一次更新时,我们还需要将 checkout 到 origin/master 上,然后创建从 origin/master 分支处创建 master 分支

至此,更新就算成功了

将远端分支,合并到本地分支

前置准备:这里为了演示,我们需要先在网站页面中执行远端分支更新

前置准备开始

点击新建文件,创建一个 .gitignore 文件

前置准备结束

然后,我们执行上一步的 git fetch

更新成功后,执行 merge 操作

merge 完成,成功获取到远端仓库的文件

其实,对应的 git 命令是

git fetch origin

git merge origin/master

解决冲突 & 冲突时的说明

冲突产生的说明:我们首先应当了解,git 是基于文件差异、逐行对比。我们一般会在 cn 分支下进行翻译,然而有时我们会遇到这样一种情况,当 translation 分支和 cn 分支都对同一文件的相同行做了修改(这种场景非常常见,因为 translation 分支,同一文件很可能会增删改某一句、符号,而我们对这一句也做了翻译),此时将两个分支合并,就会发生行的冲突,这时就需要我们解决冲突。我们用以下一系列图片说明:

将 Local Branches 中的合并到。

冲突文件的列表

打开第一个文件,找到冲突的行(红色背景)重要说明:中间部分是 cn 分支下,;左侧是 cn 分支下,从到的所有 commit 改动;右侧是 en 分支下,从到的所有 commit 改动。

重新翻译,将这行的两侧合并(红色背景自动消除)

右侧绿色背景的是 translation 分支新增的行,左侧蓝色背景是 cn 分支修改的行,我们通过 accept 将这些行整体合并过来(绿色背景和蓝色背景自动消除)。

所有的新增、修改、删除全部处理后,出现提示

第一个文件从列表中消失,接下来我们逐个合并这些文件

也可以通过和批量处理合并

出现一个新的 git 节点

试着 push 一下,会发现提交记录为的最后一个 git 节点,就是我们合并处理过的那些文件,这里我们暂时不推送到远端仓库的分支,选择 Cancel

如果 merge 过程出现问题,不要过分担心,因为我们并没有产生真正推送,远端仓库的分支下暂时还没有我们的提交记录,我们先 git reset 重置到 origin/cn 分支的最后一个 git 节点上

选择 Hard 模式

其实,对应的 git 命令是(其中 {} 部分是你希望重置的 git 节点 hash)

git reset --hard {}

重置成功了,我们可以将上面的合并步骤再重复一次

2

追踪(add)本地目录中的文件

前置准备:这里我们为了便于演示,先创建一个新文件 LICENCE

这个文件未被追踪时,是红色文字,我们点击 add 追踪它

其实,对应的 git 命令是

git add LICENCE

3

将本地目录提交哦啊(commit)到远端仓库

追踪成功后,点击 commit 提交它

填写 message 提交信息 add LICENSE,然后点击按钮

提交成功

其实,对应的 git 命令是

git commit -m 'add LICENSE'

4

将本地目录推送(push)到远端仓库

点击

选择分支

push 的信息详细,点击按钮

pushing…

push 成功

其实,对应的 git 命令是

git push origin master

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180315G13D4P00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券