GitKraken-博客中文翻译-二-
GitKraken 博客中文翻译(二)
GitKraken Boards vs Trello
原文:https://www.gitkraken.com/blog/gitkraken-glo-boards-vs-trello
如果您正在寻找一个问题跟踪或任务管理工具,可能很难知道从哪里开始。有这么多可用的工具!相信我,Axosoft 从 2002 年就开始打造项目管理和 bug 跟踪软件,我们都看到了。
经过近 20 年的经验教训,我们认为我们已经找到了区分最佳生产力工具的方法。我们获得的一个最大的感悟是,你不可能成为所有人的一切。功能蔓延太真实了,它不会让你的工具对更多的人更有价值,反而会很快变得对每个人都没用。您需要决定您为谁构建您的工具,他们的痛点是什么,然后找出如何使他们的生活更容易。
我们的使命从未动摇过:我们专注于创造软件,帮助开发人员更有生产力。所以,从本质上来说,GitKraken Boards 是为开发人员和与他们一起工作的团队设计的。
为了快速向您展示 GitKraken Boards 如何从竞争对手中脱颖而出,我将把它与一个众所周知的任务跟踪工具 Trello 进行比较。我将向您展示 10 种我们专门为开发人员设计 GitKraken 板的方式,在本文结束时,我打赌您将准备好开始使用 GitKraken 板而不是 Trello——或者您今天使用的任何其他问题跟踪系统。
GitKraken 板超过 Trello 的 10 种方式
- 在一个视图中获取您需要的所有信息
- 用更快的过滤找到你要找的东西
- 快速过滤分配给谁的卡
- 不要为日历视图支付额外费用
- 拖拽修改到期日
- 自定义观感
- 从 GitHub 的工作流问题中获得更多
- 追踪 VSCode 中的任务,Atom 或者 GitKraken Git GUI
- 在 GitKraken 中将一个板链接到一个回购协议
- 使用让你更有效率的工具
看这个 GitKraken Boards vs Trello 的对比视频;还是继续看!
https://www.youtube.com/embed/Em-peOtH5eA?feature=oembed
视频
1.在一个视图中获得您需要的所有信息
提高生产率的很大一部分是快速完成工作。当你试图快速移动时,你不希望为了得到你需要的相关信息而跳到多个屏幕上。这就是 GitKraken Boards 和 Trello 之间的主要 UI 差异。
当你点击查看卡片时,Trello 会打开一个模态并锁定你的屏幕。这听起来可能不是一个致命的缺陷,但当你只是想浏览一堆卡片,你点错了卡片,或者你只是想在编辑前仔细检查另一张卡片时,这是令人沮丧的。
GitKraken Boards 的用户界面是特意设计的,细节面板位于屏幕右侧,以提供一种非侵入性的方式来查看更多信息。当你点击另一张卡时,它会立即更新,并且像J
和K
(对于 Vim 爱好者来说)这样的键盘快捷键可以用来选择其他卡。
2.通过更快的过滤找到您想要的内容
虽然在一个视图中拥有您需要的一切很重要,但这也意味着您需要能够快速过滤掉您不需要看到的内容!
在 Trello 的搜索中,你首先输入搜索字符串,然后按回车键查看结果。如果你想使用卡片过滤器,你会在菜单中找到它们。
或者,在 GitKraken 板,你只需开始输入,你的搜索结果会随着每一个额外的字符而更新,卡片过滤器就在你的搜索栏中工作!有了这些功能,你在 GitKraken Boards 中无疑会比在 Trello 中更快地找到你要找的东西。
ProTip: 键入@username 以筛选分配给特定用户的项目,#labelname 以按特定标签筛选,以及 due:[date filters]以按项目到期时间筛选。
3.根据卡片分配给谁来快速过滤卡片
说到管理你的任务,你会想知道具体分配给你的是什么。在 Trello 中,当你点击一个用户图标时,它会打开一个模式来查看该用户的活动和其他一些事情(见下面的截图)。
或者,当你点击 GitKraken 板中的用户图标时,它会过滤你的板,只显示分配给所选用户的卡。由于卡片可以分配给多个人,您可以单击多个节点来查看分配给阿朵或团队的项目。
4.不要为日历视图支付额外费用
大多数开发人员非常习惯于使用日历来查看一天、一周等等安排了哪些即将到来的任务;这对计划你的时间很有帮助。
如果你想在 Trello 中查看日历,你需要首先为你的账户打开日历。如果您已经在使用您的一次免费加电,系统会提示您升级到 Trello 商务舱:付费计划。Womp womp。
在 GitKraken Boards 中,有一个免费的内置日历视图。只需点击日历图标,查看即将到期的任务。*哒哒!*你一眼就能看到标签,并可以点击卡片查看更多信息(在我前面提到的那个方便的漂亮细节面板中)。
5.拖放以更改截止日期
在 GitKraken 纸板中,默认情况下,左侧面板显示没有截止日期的卡片列表,这使得识别需要截止日期的卡片变得容易。只需在到期时拖放即可分配。
将卡从一天拖放到另一天,以更新到期日期。
甚至可以点击日历上的任意一天来添加当天到期的新卡。
6.自定义外观和感觉
你现在可能已经注意到了这一点:特雷罗穿着基本的蓝色。
有了 GitKraken 板,你就有了选择!GitKraken Boards 既有一个黑暗主题,“Glo”主题,如果你还没有准备好来到黑暗面,我们也有一个光明主题。
有了 GitKraken 板,你就有了选择!GitKraken Boards 既有一个黑暗主题,“Glo”主题,如果你还没有准备好来到黑暗面,我们也有一个光明主题。
7.从 GitHub 的工作流问题中获得更多
GitHub 社区有 3100 万开发者,他们一起协作编写代码;任务太多了!GitHub 问题是许多开发人员用来跟踪任务、错误和功能的问题。所以,让你的任务跟踪器能够为你拉进这些项目是有意义的。
Trello 不正式支持 GitHub Issue Sync。
或者,GitKraken Boards 提供了一个圆滑的集成,就像日历视图一样,它是免费的!当您将 GitKraken 板中的板与 GitHub 问题同步时,您可以通过您的工作流程可视化 GitHub 问题的进度。
您可以为每个讨论板创建不同的工作流程和标签,并添加不同的用户和安全权限。
由于 GitKraken 板与 GitHub 问题实时同步,任何一个系统中的更改都会立即反映到另一个系统中。这意味着,如果一些团队成员只使用 GitKraken 板或 GitHub,重要信息仍然可以无缝共享——而且快如闪电!
由于 GitKraken 板与 GitHub 问题实时同步,任何一个系统中的更改都会立即反映到另一个系统中。这意味着,如果一些团队成员只使用 GitKraken 板或 GitHub,重要信息仍然可以无缝共享——而且快如闪电!
8.在 VSCode、Atom 或 GitKraken Git GUI 中跟踪任务
更少的上下文切换对于开发人员的生产力来说是非常重要的。
Trello 不提供 Atom 或 VSCode 插件。
由于我们的重点是开发人员,我们从一开始就优先考虑 GitKraken 板的易用性。GitKraken 板可以通过浏览器或使用 Atom 或 VSCode 插件在 GitKraken Git GUI 中直接访问。这是一个生产力的游戏改变者,因为开发者可以在他们已经在使用的工具中访问他们的项目!只需更新您的项目,然后移动或更新您的 GitKraken Boards 卡。
由于我们的重点是开发人员,我们从一开始就优先考虑 GitKraken 板的易用性。GitKraken 板可以通过浏览器或使用 Atom 或 VSCode 插件在 GitKraken Git GUI 中直接访问。这是一个生产力的游戏改变者,因为开发者可以在他们已经在使用的工具中访问他们的项目!只需更新您的项目,然后移动或更新您的 GitKraken Boards 卡。
9.将 GitKraken 电路板中的电路板链接到 GitKraken Git GUI 中的 repo
GitKraken Git GUI 允许您将 GitKraken 电路板中的电路板链接到您当前的 repo。同样,减少了点击和切换工具所浪费的时间。只需点击 GitKraken Git GUI 中的Boards
按钮,您就可以进入 GitKraken Boards 中的项目板。
**保护:**如果你经常在更新卡片前提交和推送,使用这个方便的功能。
Trello 没有提供类似的功能。
Trello 没有提供类似的功能。
10.使用让你更有效率的工具
归根结底,这实际上取决于您的工作方式,以及哪种工具支持您的需求。我们看到了一个为开发人员提供不同的任务跟踪的机会,因为像 Trello 这样的工具不能满足它。虽然功能对等可能会改变,但我们将继续利用我们的专业知识来寻找使开发人员的工作流程更快、更高效的方法。
你应该测试一下 GitKraken 板,看看你能多有效地完成工作;所有功能都可以免费试用!
你应该测试一下 GitKraken 板,看看你能多有效地完成工作;所有功能都可以免费试用!
宣布新的 GitKraken 帮助中心
我们非常高兴推出新的 GitKraken 帮助中心,以便通过我们的 Git 工具套件更好地为我们的所有客户服务,并展示我们的承诺,不仅要构建优秀的工具,还要为我们的客户提供他们在工作中取得成功所需的所有入职、培训和支持资源。
GitKraken 帮助中心是一个新的集中位置,提供产品文档、发行说明、入职培训、常见问题解答、帐户管理和支持资源,用于: GitKraken 客户端、吉拉 Git 集成和VS 代码 Git lens。这一包罗万象的帮助中心取代了 3 个独立的支持网站,使我们的客户能够在一个易于导航和搜索的位置轻松找到他们想要的一切。
当我们看到我们的客户越来越多地采用多种 GitKraken 产品时,这个新的中心位置将成为跨产品入职和培训用户的重要基地。
增强型搜索
在设计 GitKraken 帮助中心时,我们的团队非常注重改善用户体验,尤其是在搜索和过滤支持资源时。
通过 GitKraken 帮助中心主页上的主搜索栏,您可以跨产品进行搜索,或者轻松地通过一个特定产品进行过滤搜索。
通过 GitKraken 帮助中心主页上的主搜索栏,您可以跨产品进行搜索,或者轻松地通过一个特定产品进行过滤搜索。
查找常见问题的答案和解决方案
GitKraken 帮助中心主页上的导航是为了让你更快地得到你需要的东西。针对每种产品的附加分类使您能够直接找到您想要的产品,并立即找到您需要的解决方案。
在 GitKraken 帮助中心上的类别包括:
入门:非常适合不熟悉我们工具的用户,或者需要复习如何使用或安装我们产品的人。
- 热门 GitKraken 支持页面:我们最常访问的 GitKraken 支持资源;随着我们对用户认为最有价值的内容有了更多的了解,这一部分将继续更新。
- 更多 GitKraken 支持资源:备忘单、学习 Git 教程、&更多。
- 发行说明&文档:查看所有三款产品的最新更新和完整文档。
- 发行说明&文档:查看所有三款产品的最新更新和完整文档。
听取 GitKraken 开发团队的意见
您可以期待未来的 GitKraken 发行说明包括开发者自己对新功能的直接解释,以及对为什么创建该功能以及用户如何从中受益的更多技术见解。
GitKraken 帮助中心不仅为开发团队提供了更直接的联系,它也代表了我们第一次将反馈整合到 GitKraken 支持网站中。
在 GitKraken 帮助中心的每个页面的底部,您将有机会提供关于内容的反馈。这将有助于我们继续改进 GitKraken 支持资源,更有效地满足您的需求。
在 GitKraken 帮助中心的每个页面的底部,您将有机会提供关于内容的反馈。这将有助于我们继续改进 GitKraken 支持资源,更有效地满足您的需求。
GitKraken 帮助中心的未来
GitKraken 帮助中心的下一步是什么?那是最令人兴奋的部分!它不仅会随着新资源不断改进,还会根据行为指标优化信息,以确保我们为用户提供他们成功所需的所有资源,而不仅仅是世界一流的工具。
GitKraken 帮助中心的下一步是什么?那是最令人兴奋的部分!它不仅会随着新资源不断改进,还会根据行为指标优化信息,以确保我们为用户提供他们成功所需的所有资源,而不仅仅是世界一流的工具。
GitKraken 将举办 GitKon 2022 技术大会
原文:https://www.gitkraken.com/press/gitkraken-hosts-gitkon-2022-tech-conference
亚利桑那州斯科茨代尔,2022 年 6 月 28 日——全球领先的软件开发人员顶级 Git 工具Git kraken 宣布将于 10 月 11 日至 10 月 13 日举办 GitKon 2022,这是一场独特的抖音式虚拟技术大会。虽然形式完全不同,但该活动将再次免费在线举行,使其成为世界上软件开发人员、技术团队、经理和高管最容易获得的教育活动之一。
去年的首届 GitKon 吸引了超过 4,000 名全球注册者,举办了 25 场关于各种 Git 主题的会议,由来自 GitHub、GitLab、CircleCI 等的专家主讲。
GitKon 2022 的主题是创造一个合作的未来,GitKraken 团队表示,他们计划迭代内容和格式,以满足观众不断变化的需求、偏好和兴趣。
“GitKon 将是一种抖音风格的格式,让演讲者保持专注,让开发者参与进来。时间是开发人员最宝贵的资源。GitKraken 开发人员布道者 Dwayne McDaniel 说:“我们希望教育和激励我们的观众,而不是让他们感到疲惫不堪。
随着疫情的衰落,许多活动正在转变回付费的、面对面的形式。GitKraken 正在打破现状,并继续致力于使 GitKon 内容以易于消费的格式免费提供给全球观众。每天 3 小时,12 节课,每节 15 分钟。之后,所有会议都可以点播。
“领头羊微软也在 2022 年对代码日试行了抖音风格的格式,我们相信这种格式将在 GitKon 之后继续获得牵引力,”GitKraken 营销副总裁 Sara Stamas 说,“2021 年将有超过10 亿用户,我们的观众人口统计数据与抖音的剧本相似。”
GitKon 征集发言人的活动现已开始。任何有兴趣参加的人都可以在:【www.gitkon.com】T2 了解更多信息并免费注册。
关于 GitKraken: GitKraken 提供了一套顶级的 Git 工具,帮助数百万开发人员每天都有更高的工作效率,而且世界各地的团队也能更紧密地合作。我们的产品为开发人员服务,无论他们在哪里,无论他们在哪里编码,无论是在他们的 IDE 中,在他们的桌面上,还是在他们的问题跟踪系统中。来自全球 100,000 家公司的 1000 多万开发人员依靠 GitKraken 的工具让 Git 为他们工作。在 www.gitkraken.com 的了解更多信息。
gitkraken 现已与 visual studio team services 集成
原文:https://www.gitkraken.com/blog/gitkraken-integration-vsts
从旨在帮助软件开发人员集中精力编写代码的播放列表中进行选择。播放列表包括流行的音乐剧、视频游戏曲目、棕色噪音等等。
#147 GitKraken 就是这样| GitKraken
原文:https://www.gitkraken.com/keif-gallery/gitkraken-is-the-way
#147 GitKraken 就是这条路
#147 GitKraken is the Way
GitKraken - Linux Git GUI | Axosoft 用户评论
原文:https://www.gitkraken.com/blog/gitkraken-linux-git-gui-review
这一切都开始于大约一年前。海面平静,风不停地刮着。我看见一个小东西在公海上漂走了,我赶紧抓起鱼叉把它从水里拉了出来。
仔细一看,我看到一个盒子,里面有一个发绿(几乎是蓝色)的怪物,上面刻着触角,虽然只是一个雕刻,但它的眼睛似乎能穿透我的灵魂。我深吸了一口气,在获得了一些勇气后,我打开了盒子,然后整个世界都变了…
北海巨妖被释放了,我控制了海洋中的巨兽!
离开我如何找到这个软件的隐喻性解释,我可能应该告诉你为什么 GitKraken 是我的选择Linux Git GUI。以下是一些具体原因:
Linux
我为什么要提到 Linux?原因有二:Linux Git GUIs 没那么好,真正的竞争对手没有 Linux 版本。让我们来解释一下这个声明,好吗?首先,大多数用于 Linux 的 Git GUIs 让我感觉好像回到了 Windows 95,需要多个窗口来完成一个简单的提交和推送。
我想上任何一个 OS,下载我喜欢的 app,使用它;GitKraken 给了我这个。
其他人用我每四个月才使用一次的视图填充屏幕,这些视图的存在只是因为我在恢复提交时搞砸了。其他的 Linux 图形用户界面要么是老式的,要么是复杂而拥挤的。
GitKraken 提供了一个如何使用 Git 的现代观点,并结束了一个好的 Linux Git 客户机的匮乏。
其次,我们大多数人都知道一两个非常好的 Git GUIs:例如 SourceTree 或 GitHub for Windows。这是我用了很长时间的两个软件,但是当我转移到 Linux 时,它们不见了。我想上任何一个 OS,下载我喜欢的 app,使用它;GitKraken 给了我这个。
Secondly, most of us know one or two really good Git GUIs: for example SourceTree or GitHub for Windows. These are two pieces of software that I used for quite a while, but when I moved to Linux they were missing. I want to go to any OS, download my favorite app and use it; GitKraken gives me just that.
用户界面
让我们回到我说过的地方,“GitKraken 提供了一个现代的观点。”如果你从未尝试过 GitKraken,你可能会想,“是啊,没错…他们都是这么说的。”
嗯,我是这么说的:就试试。提交一些代码,然后恢复提交。你做了吗?有多难?按下按钮?真的,就这么简单。
如果你像我一样喜欢简单,这是给你的。只要打开应用程序,写下你的信息,并提交回购地狱。
此外,没有怪异的隐藏菜单,拖放也是一个非常好的功能。告诉我我说的不对。试试吧。
查看拖放功能。拉德。
也许您希望看到更多的控件,这样您就可以轻松地执行 Git 提供的那些奇怪的命令。或者您更喜欢 CLI,因为您希望掌握所有命令。
但是如果你像我一样喜欢简单,这是给你的。只要打开应用程序,写下你的信息,并提交回购地狱。不要忘记你可以随时撤销你搞砸的提交。
黑暗面
有光就一定有黑暗,是的,即使是 GitKraken 也有它的弱点。我经历过的一个弱点是钩子。推入 GitKraken 时,钩住(在。git/hooks/)没有被触发,这让我在一个具体的项目中不再使用 GitKraken。
另一个缺点是没有供用户报告问题的论坛(类似于堆栈溢出)。)不要误会,GitKraken 对社区很积极;看看他们的博客和推特消息就知道了。
看到公司和普通人之间如此接近是令人敬畏的,但是当更多的技术问题出现时,除了联系支持之外,没有其他地方可以去,如果你使用的是专业版。
编者按: 就在这篇文章写完后,我们推出了我们的 GitKraken Slack 社区。这是用户讨论技巧和互相提问/回答问题的好地方。
总之,如果你喜欢现代的设计、方便的撤销按钮、漂亮的布局和 Linux 支持,那么 GitKraken 就是你的选择。试试看吧,你会大吃一惊的!
Editor’s Note:* We launched our GitKraken Slack Community just after this article was written. This is a great place for users to discuss tips and ask/answer each other’s questions.*
In conclusion, if you like a modern design, a handy undo button, a beautiful layout, and Linux support, then GitKraken is for you. Try it and see, you’ll be amazed!
介绍 GitKraken 团队计划
GitKraken 一直以来,首先也是最重要的,致力于用 Git 提高生产力和用户体验。随着 Git 的流行程度持续增长,越来越多的团队采用我们的工具来使 Git 变得更容易、更安全、更具协作性。经过最近的两次收购,GitKraken 工具套件现在可以在任何地方与开发人员见面:桌面上的 GitKraken 客户端; GitLens 在 VS 代码中最流行的 IDE吉拉 Git 集成在开发团队最常用的问题跟踪器中。
2022 年底,GitKraken 收购了吉拉 Git Integration,通过连接 Git 和吉拉数据来补充 GitKraken Client,这样开发人员和项目经理就可以在没有上下文切换的情况下保持最高效的工作。在吉拉开始试用Git 集成是免费的,定价基于吉拉席位,许可证可以在亚特兰大市场购买。
GitKraken 工具套件的最新成员是 GitLens,这是一个针对 VS 代码的免费 Git 扩展。所有的核心功能一直都是免费的,并将继续免费。2022 年初,我们推出了 git lens+;GitLens 用户可以选择注册另一个免费选项,以解锁旨在增强可视化和团队协作的越来越多的附加功能..这种模式确保开源和非商业开发人员始终可以访问他们需要的核心功能,同时为希望利用可选附加功能的用户创建升级路径。
我们的长期旗舰产品 GitKraken Client 也为从事公共回购的单独开发人员提供了一个免费选项,它提供了所有核心功能的好处,如提交图、Git 增强的终端、合并冲突工具、交互式 rebase 模式等等。
GitKraken 客户端计划为个人和团队提供了访问私有和自托管存储库的核心功能,以及更多的团队协作和可视化优势。最近推出的 GitKraken Workspaces 和将用户组织成团队的能力是我们继续为成长中的团队和企业开发更多功能的基础。
GitKraken Client 和 GitLens+的新团队计划面向拥有多达 100 名用户的成长型组织。该计划提供了将用户分组为多达 10 个团队的灵活性,并且其价格低于企业计划,企业计划旨在用于具有更多团队、用户和安全需求的大得多的公司。
请继续阅读,了解更多信息:
GitKraken 客户端计划
GitKraken 客户端是我们的跨平台桌面 Git 客户端,它不仅包括直观的 GUI,还包括强大的 CLI 。内置合并冲突工具等核心功能;内置代码编辑器;交互式 rebase 模式;与 GitHub.com、GitLab.com 和 Bitbucket.org 的整合;都是免费使用的公共回购。下面的付费计划是为开发人员和团队与私人或自我托管的回购协议。
GitKraken Client Pro
除了提供免费的核心 GUI 和 CLI 功能,该计划还为需要使用私有或自托管回购的个人开发人员或最多 10 名用户的小型团队而设计。使用该计划的小型团队可以从整个团队共享的多达 10 个工作空间中受益。如果您需要创建更多具有分段工作空间的团队,那么团队计划正是您所需要的!
该计划还提供了额外的特性和功能,如多个配置文件;与 GitHub Enterprise、GitLab Self-Managed、Bitbucket Server 和 Azure DevOps 的集成;与吉拉(包括吉拉的 Git 集成)、GitHub 问题、GitLab 问题和 Trello 的问题跟踪集成;还有更多。
**价格:**每个用户每月 4.95 美元
GitKraken 客户团队
顾名思义,这个计划是为团队协作而设计的。
GitKraken 客户端团队计划提供所有相同的专业功能,并允许灵活的多团队管理。
该计划支持拥有多达 10 个团队和 100 个用户的公司。它提供了 10 个团队工作区,可以在多个团队之间共享,使每个团队都能够在一个集中的工作区中对回购进行分组。团队工作区对于一次性克隆一组 repo 并向新团队成员提供这些 repo 非常有用。
当你的所有团队成员都使用 GitKraken 客户端时,你将获得巨大的生产力收益。实时团队视图等功能将使您能够看到谁是活动的,以便您可以快速向他们发送指向特定提交、分支或标记的深层链接,从而实时启动协作。团队视图还将向您显示团队成员当前签出了哪些分支,以及他们当前在哪些文件中有本地未提交的更改。当您处理同一个文件时,这变得更加有用,因为您会看到一个警告图标,指示潜在的合并冲突。
这些只是旨在帮助团队更有效协作的一些特性。请继续关注,因为我们还有更多的工作要做!
**价格:**每位用户每月 8.95 美元
访问定价页面升级到新的 GitKraken 客户团队计划!
GitKraken 客户端企业
GitKraken 客户端企业是为 10 个团队以上,100 个用户的公司设计的;这个计划允许无限的用户、团队和团队工作空间。除了为管理员提供灵活的许可证管理选项之外,它还包括所有团队功能,包括:基于云的帐户、带有用户密钥的独立帐户和带有 LDAP 的自托管帐户。
SSO 即将推出,使大型组织的用户管理过程变得更快、更简单。该计划将继续改进,以包含更多选项来满足企业特定的安全和用户管理需求。
价格: $18.95,每个用户每月
GitLens+计划
GitLens 是一个针对 VS 代码的免费 Git 扩展,是 Visual Studio 市场上最受欢迎的扩展之一,安装量超过 1400 万。免费和付费计划使用户能够通过利用 CodeLens 和 Git 责备查看每行代码的历史来可视化代码作者身份。
要解锁额外的可选功能,您可以注册 GitLens+,这也是免费的。如果你已经有一个 GitKraken 帐户,那么你已经可以访问公共和本地存储库上的 GitLens+特性,包括可视化文件历史和工作树。
我们将继续向 GitLens 和 GitLens+添加更多功能,因此免费注册以确保您可以访问所有新的免费功能,如即将推出的 GitKraken 提交图!
访问 GitLens+定价页面注册 GitLens+或升级到付费计划。
GitLens+ Pro
GitLens+ Pro 是为个人开发者和 10 人以下的小团队设计的。该计划在公共和私有存储库上提供所有 GitLens+功能,并提供电子邮件支持。在我们为 GitLens+ Pro 开发许多新功能的同时,我们将在有限的时间内提供特殊的折扣价格。不要错过我们有史以来的最低价格!
价格: $1.95,每个用户每月-限时优惠 60%以上!
价格: $1.95,每个用户每月-限时优惠 60%以上!
GitLens+团队
GitLens+ Teams 是为拥有 11-100 名成员的成长型团队设计的。这个计划提供了将用户分成 10 个小团队的能力。此外,它还包括 GitLens+ Pro 的所有功能。
价格: $3.95,每个用户每月-限时优惠 55%以上!
价格: $3.95,每个用户每月-限时优惠 55%以上!
GitLens+ Enterprise
GitLens Enterprise 专为拥有超过 100 名用户的大型团队和组织而设计。它提供了将无限数量的用户分组到无限数量的团队中的灵活性。它具备 GitLens+ Teams 的所有功能和优势,此外,我们正在开发单点登录(SSO)等功能,以简化许可证管理。我们还为此计划提供定制的入职和培训。
价格: $6.95,每个用户每月-限时优惠 60%以上!
价格: $6.95,每个用户每月-限时优惠 60%以上!
GitKraken 客户端& GitLens+ Bundles
对于同时使用 GitKraken 客户端和 GitLens 来优化其工作流程的开发人员和团队,GitKraken Git 工具可以满足开发人员和团队的需求,无论他们在哪里进行编码:桌面上的 GitKraken 客户端和 VS 代码 IDE 中的 GitLens。开发者和团队可以从捆绑这些产品的付费计划中受益,以利用公共和私人回购的所有功能和优势。作为激励,我们为选择捆绑这两个伟大工具的团队提供我们最好的价格。
对于同时使用 GitKraken 客户端和 GitLens 来优化其工作流程的开发人员和团队,GitKraken Git 工具可以满足开发人员和团队的需求,无论他们在哪里进行编码:桌面上的 GitKraken 客户端和 VS 代码 IDE 中的 GitLens。开发者和团队可以从捆绑这些产品的付费计划中受益,以利用公共和私人回购的所有功能和优势。作为激励,我们为选择捆绑这两个伟大工具的团队提供我们最好的价格。
通过捆绑 GitKraken 客户端和 GitLens+来充分利用 Git。凭借 GitLens+计划的限时折扣,套餐费用将达到历史最低水平,为您节省高达 40%的费用!访问定价页面立即升级。
通过捆绑 GitKraken 客户端和 GitLens+来充分利用 Git。凭借 GitLens+计划的限时折扣,套餐费用将达到历史最低水平,为您节省高达 40%的费用!访问定价页面立即升级。
现在就用 GitKraken 优化您的 Git 工作流程
随着 Git 在全球更多团队中的使用增长,GitKraken 将继续发展我们的工具和计划,以满足软件开发人员和团队不断变化的需求。我们致力于让 Git 更快、更安全、更具协作性。
无论您的团队规模如何,GitKraken 都能以灵活的计划和价格满足您的需求。如果您有兴趣了解 GitKraken Client、GitLens 和 Git Integration for 吉拉如何让团队更有效地工作和更紧密地协作,联系我们的客户成功团队获取演示并开始免费试用我们的所有产品。
客户常见问题解答
我的计划中有超过 10 个许可证,我的计划会改变吗?
我们的客户成功团队将联系拥有 10 个以上许可证的现有客户,以确保您拥有适合您团队规模的最佳计划。任何必要的价格变动都将在您续订时进行讨论和更新。在续约之前,您的价格和计划将保持不变。如有任何问题,请联系succcess@gitkraken.com。
我的计划中有超过 10 个许可证,我的计划会改变吗?
我们的客户成功团队将联系拥有 10 个以上许可证的现有客户,以确保您拥有适合您团队规模的最佳计划。任何必要的价格变动都将在您续订时进行讨论和更新。在续约之前,您的价格和计划将保持不变。如有任何问题,请联系succcess@gitkraken.com。
使用 GitKraken 的 6 个技巧
从旨在帮助软件开发人员集中精力编写代码的播放列表中进行选择。播放列表包括流行的音乐剧、视频游戏曲目、棕色噪音等等。
使用 GitKraken | Axosoft 的 10 个技巧
从旨在帮助软件开发人员集中精力编写代码的播放列表中进行选择。播放列表包括流行的音乐剧、视频游戏曲目、棕色噪音等等。
使用 GitKraken 的 9 个技巧
从旨在帮助软件开发人员集中精力编写代码的播放列表中进行选择。播放列表包括流行的音乐剧、视频游戏曲目、棕色噪音等等。
使用 GitKraken 的 11 个技巧
从旨在帮助软件开发人员集中精力编写代码的播放列表中进行选择。播放列表包括流行的音乐剧、视频游戏曲目、棕色噪音等等。
使用 GitKraken 的 11 个技巧
从旨在帮助软件开发人员集中精力编写代码的播放列表中进行选择。播放列表包括流行的音乐剧、视频游戏曲目、棕色噪音等等。
像专业人士一样使用 GitKraken 的 9 个技巧
从旨在帮助软件开发人员集中精力编写代码的播放列表中进行选择。播放列表包括流行的音乐剧、视频游戏曲目、棕色噪音等等。
GitKraken v0.6:它的分叉令人惊讶,现在在公测中!
在 Axosoft,我们认为是时候让每个人都完全控制自己的回购了。因此,到目前为止,0.6 版我们正处于…
公测!打开。贝塔!
厌倦了等待你的开发“朋友”向你发出邀请?好了,不要再等了!现在你可以马上尝试一个真正漂亮的 Git 客户端,因为我们已经向公众发布了 GitKraken 测试版,所以现在你可以自己潜水了——不需要朋友!我们最初几个月的封闭测试让我们的应用更加稳定,功能更加丰富,现在我们准备让更广泛的世界来测试应用,以进一步完善 GitKraken。
仍然不确定所有的炒作是关于什么?享受 30 秒的纯粹幸福…
https://www.youtube.com/embed/GE1ImXs2LnI?feature=oembed
视频
现在用 GitKraken 释放你的 repos 只需访问gitkraken.com,点击下载按钮并安装应用程序。如果你希望有一个复杂的涉及操作系统兼容性或依赖性的设置过程,很抱歉让你失望了。正如这篇文章提到的,GitKraken 的工作没有依赖性(你甚至不需要在你的机器上手动安装 Git!)并且可以跨平台运行,Mac、Windows 和 Linux 用户都可以享受相同的用户体验。
分叉惊人的 Bitbucket 支持
GitKraken 支持 Bitbucket 已经有一段时间了,但是你必须手动复制并粘贴你的 URL。这对北海巨妖来说是不可接受的,对于这个版本,与 Bitbucket 的完全集成已经启动并运行。直接与您的公共和私有存储库和搜索叉进行交互!
拿了钥匙就走
这还不是这个版本改进的全部。现有的 GitHub 集成已经变得更加紧密,能够生成 SSH 密钥对,还可以自动将公钥添加到 GitHub 中。少 app 切换 FTW。
带所有配件
除了主要项目,GitKraken 开发人员一直在忙于修复、调整和改进引擎盖下的东西,以提供更好的应用可靠性,并继续进行 UI 改进,以尽可能减少不必要的交互,获得更干净、更直观的用户体验。
对于新人
太多了,无法在此全部列出,但是早期版本中的一些显著特性包括:
**Git 流支持:**初始化每个存储库的工作流,然后在 ref 面板中快速启动和处理特性、发布和修补分支
- **SSH 支持:**包括支持 OAuth/GitHub 的 URL 中的 shh://协议格式
- 拖放重置基础
- 撤销局部动作
- 快速、漂亮的用户界面,直观、清晰地显示提交和分支的图形视图。
- Fast, beautiful UI with intuitive, clean graph view of commits and branches.
如果这是你第一次使用 GitKraken,看看发布说明和我们的介绍性博客文章,让*熟悉这个应用的特性。但是,没有比 **亲自尝试更好的方式来释放你的回复。*我们希望 1.0 版尽可能做到最好,您的反馈和问题对我们实现这一目标至关重要。请在 Twitter 上关注@ GitKraken,向我们发送您的反馈。
If this is your first time using GitKraken, take a look at the release notes and at our introductory blog post, to git familiar with the app’s features. But, there’s no better way to unleash your repos than to try it yourself. We want v1.0 to be the very best it can be, and your feedback and questions are essential to us achieving that. Please follow @GitKraken on Twitter where you can send us your feedback.
GitKraken v1.3 -新功能| Axosoft
如果你一直在关注我们伟大的 Git 客户端 GitKraken 的进展,你可能已经明白我们的长期目标是让你——无畏的开发者——在应用中享受生活,而不是点击其他应用。我们知道你没有时间跳那支舞,因此我们向你呈现…请击鼓…v1.3!现在有了多选提交和更多的键盘快捷键。
X 光眼镜,记录你的犯罪历史
你希望自己有超能力吗?除了飞行或控制天气,如果你能戴上一副时髦的 20 世纪 50 年代风格的 x 射线眼镜,看看历史会怎么样?GitKraken 让这成为现实!
Axosoft 的开发人员何塞·加西亚说:“在这次更新之前,你只能选择一个节点来显示那个特定提交中的更改。"现在你可以在图上选择多个提交,它会向你显示组合的变化."
这一新的更新是另一种方式,您将能够留在应用程序中,而不必中断您的工作流程。
我们明白了。我们也是开发商。因此,我们知道,仅仅为了查看发生了什么,而单独查看过程中的每一个提交可能会很烦人。
Garcia 解释了在这次更新之前他必须做的事情:“我实际上必须去 GitHub 并打开一个新的 pull 请求,仅仅是为了看到组合变更的完整列表。现在我可以在应用程序中做到这一点。我不必离开吉克拉肯,而且节省时间。”
“当您选择提交时,您会看到差异,或者您所做的更改。现在,您可以选择多个提交。所以你看到的是这些变化的组合,”Axosoft 的开发人员 Kyle Smith 肯定地说,他参与了这次更新。
选择多个提交类似于在 Finder 或文件浏览器中选择多个文件。点击 ⌘ + 点击 (Mac)或 ctrl + 点击 (Windows/Linux)选择一个附加提交,或点击 shift + 点击选择一个提交范围。现在你看到的是所有这些变化的组合。还有用煤气做饭。
故事时间,男孩女孩们,集合: 假设你正在和一个队友一起工作,你想看看他们做出了什么改变。在吉克拉肯这很容易。“您可以选择并查看他或她在上周所做的所有更改,”Smith 解释道。
这不是脸书跟踪。这只是在你继续前进并认为你的项目已经完成之前确保一切正常。
“如果您选择两次提交,您将看到这两次提交之间的差异。如果您选择两个以上的提交,您将看到这些提交引入的所有差异合并为一个。现在您可以查看和复习了!
“这通常是在 GitHub 上完成的,”Smith 说,但是现在,是的,你猜对了,你不必离开这个应用程序。此外,审查可能会变得乏味(不像脸书跟踪)。“在我们进行这次更新之前,审查者必须检查每一次提交,并将这些更改记在脑子里。现在你只需选择一整块,查看所有的变化。”太棒了。
去吧,走捷径吧
如果你很匆忙,喜欢快速处理事情…拿起你的咖啡、激浪或火箭燃料,系好安全带!以下是进入派对世界的快捷键盘命令。
“当你更新时,你会在应用程序中看到这些命令,”加西亚说。另外,点击⌘ + / (Mac)或 Ctrl + / (Windows 和 Linux)查看完整列表。嘭!
你能靠近一点吗?
看不到这么好?有小屏幕吗?你是不是感觉像爱丽丝梦游仙境,事情太大了?无论你有什么问题,你都可以根据你的视觉舒适度来调整应用程序。
我们增加了放大和缩小的功能!
⌘ 或 Ctrl 加 + :放大
⌘ 或 Ctrl 加**–**:缩小
⌘ 或 Ctrl 加 0 :复位缩放
啊,好多了。不再有眼睛疲劳。
我们正在收听您的节目
你可以看到我们对你想要的非常感兴趣。我们真的很关注。不仅仅是因为我们认为你很酷(你很可能是),而是因为我们想做世界上最牛逼的 Git 客户端——一个你会真正喜欢的客户端!
加西亚解释说:“如果有很多人要求某样东西,我们认为这意味着这是应用程序的局限性,有些东西可以改进。”"我们不能答应每一个请求,但如果有什么突出的问题,我们会尽力去做。"
如果您想给我们反馈,请点击 GitKraken 右下角的“提供反馈”框。我们不能交付外卖,但这些信息会直接交付给我们的项目管理工具— Axosoft 。这是我们为开发人员制作的另一个管理项目的工具。也看看这个。
GitKraken v1.4 版-新功能
最新的 GitKraken 版本包括三个功能,帮助你的界面保持整洁。这比在你妈妈宣布最后一分钟来访之前,把你所有的东西都扔在床下,把你所有的脏盘子都塞进洗碗机要好。
这种释放就像你不必折叠的干净衣物的香味一样令人耳目一新(这是一种额外的清新)。
命令面板:有序安全
可以将命令调板想象成类似于模糊查找器,但是它是针对那些实际上会影响当前存储库的命令的。“有了 Fuzzy Finder,一切都是为了打开或改变视图;打开设置;正在打开文件历史记录;或者进行回购,”Axosoft 的开发人员何塞·加西亚解释道。“但是命令面板有撤销、重做、创建分支或隐藏等选项,所有这些命令都会影响您当前的项目。”
点击⌘+ Shift + P
(Mac)或Ctrl + Shift + P
(Windows/Linux),命令面板就会神奇地出现,就像一群准备拖地的精灵。说“Bippity Boppity Boo”,你就能触发影响你回购的行动。
在 GitKraken 中看到的命令面板的动作
Garcia 和他的团队决定将模糊查找器功能和命令面板功能分开,因为当开发人员处于状态时,他们的手指打字很快。
“例如,如果我想打开一个文件名为 GitKraken 的东西,可能会有一个名称中带有 GitKraken 的‘打开’或‘签出分支’,”Garcia 继续说道。“如果我只是在打字,在浏览的时候快速地按下回车键,我可能会不小心碰到我看到的第一个选项,”他说。
我们明确地让使用常规模糊查找器的人知道这根本不会影响你的项目。都是安全的,会单独开一个面板。
– Jose Garcia, Developer
这项工作是 GitKraken 团队的开发人员想要着手进行的,因为他们想让 Fuzzy Finder 更加强大。“团队正在讨论是否要增加这个新选项,因为我们不希望人们意外地做错事,”Garcia 解释道。
经过多次讨论,团队简单地决定将面板分成两类:1)不会影响您当前项目的命令和 2)会影响您当前项目的命令。
“关键是要快速访问命令或页面。模糊查找器和命令面板都在旁边的一个小盒子里打开(如果你愿意,也可以是面板)。”干净、整洁、安全——和你煮完意大利面后的厨房正好相反。
壁球:给自己一个新的开始
壁球是一种你在室内用球拍玩的游戏,也是你弟弟用来杀虫子的一种方式。这也是一种在 Git 中清理提交的方法;该功能现已被引入 GitKraken。
Axosoft 的开发人员凯尔·史密斯(Kyle Smith)说:“Squash 把提交放在一起。你可以用它来清理你的历史,或者更简洁地描述你所做的事情,例如,在处理一个特性时,你做了许多中间提交,但是当完成时,你想把这个特性表示为一个单独的提交
他解释说,一些人的思维过程可能是,“如果这一系列的提交变成一个,我的历史会更清楚。”
在吉克拉肯看到的南瓜
一旦提交被压缩,GitKraken 会将这些提交压缩到当前分支的历史中。像洗窗户一样看着它,这样你就能清楚地看到里面的好东西。不再有灰尘、污垢和死苍蝇:这些东西会模糊你的视线,而且没有必要。
当你粉碎一个承诺时,最好的事情之一是没有任何风险,即使它听起来如此…永久(并且有点可怕)。不像在重建的 CB550 上跳下悬崖或不戴摩托车头盔,如果你挤压并意识到这些提交更适合作为单独的提交,你可以通过几次点击撤销按钮来实现。“所以放松点。
“很多时候,人们的工作流程会在任何功能中包含一个检查点。因此,如果他们最近搞砸了一次提交,他们可以返回到那个检查点。史密斯解释说:“一旦他们完成了工作,对工作感到满意,他们就会崩溃。”
他进一步解释说,squash 将获取 Squash 中每次提交的 diff 和 commit 消息,并将它们组合在一起,这样您仍然可以获得关于您在一段时间内所做的事情的有价值的信息。
无快进:按你想要的方式合并
大多数人有不同的清洁方法。有些人只是抓起一个容器的彗星,并开始擦洗,其他人有条不紊地使用喷雾清洁剂,有擦洗泡沫,并声称在擦洗之前做的工作。
在一天结束时,这两种方法通常会给你相同的结果-一个干净的表面。这只是两种不同工作的两种方法。和 Git 里合并不快进和快进差不多。差不多了。
Axosoft 的开发人员泰勒瓦内克(Tyler Wanek)表示:“一个被大量要求的功能是不要快进。“有几种不同类型的合并,”他解释道。有快进和不快进。
在此版本之前,GitKraken 会尽可能自动快进您的合并。但是有些人发现不快进的合并是有用的。Wanek 解释说:“如果你进行快进,你只需将你的分支指针移动到从你的分支派生出来的另一个分支的顶部。
“不合并快进意味着,即使您的分支是另一个分支的父分支,当我们想要将另一个分支合并回来时,我们正在进行新的提交。不同之处在于,它保留了那些提交被合并到一个分支的时间。”
在 GitKraken 合并没有快进
查看我们的发行说明,看看 GitKraken v1.4 版本中还有什么新内容。你的代码将是干净的、安全的,并且有希望是功能性的(但这取决于你)。
GitKraken v1.5.4 -更快更完美| Axosoft
我们每天都会收到大量来自 GitKraken 用户的推文和电子邮件。我们喜欢看到这样来自亚采克的作品:
@GitKraken 让我开心了一天。使用起来很愉快。合并提交从来没有这么有趣过!有史以来最好的 #git GUI!https://t.co/HGYKyKarcE
—亚采克·沃兹尼亚克(@ spik3s)2016 年 8 月 24 日
window.addEventListener('DOMContentLoaded', function() {
另一方面,我们讨厌看到来自 Bonzo Apps 的令人心碎的推文:
@GitKraken 当 GitKraken 从致命错误复位时失去远程 repos!如何重新连接到驱动器上的现有远程存储库?HALP!!!🙁
—Bonozo Apps(@ Bonozo Apps)2016 年 5 月 2 日
不管怎样,我们喜欢反馈,我们在倾听!在 v1.5.4 中,我们修复了您告诉我们的 5 个主要问题!因此,如果你最近在我们的 Git 客户端中遇到了一些讨厌的问题,并且不明白发生了什么,或者更重要的是,不知道如何修复它们,那么这个版本就是为你准备的。
5 大改进:
1)错误处理
我们承认——确实有一些恼人的、令人困惑的错误信息出现在一些 GitKraken 用户面前。我们没有很好地解释为什么有些事情会失败。现在,我们解释发生了什么,并给你一个有用的信息,告诉你该做什么和如何解决它。
这是为像 Major_Cookie 这样的人准备的!
@GitKraken 你好。然后我试着结账时看到了这条信息。这个错误可能与什么有关?【pic.twitter.com/hl8RAwYQQp 号
—Major _ Cookie(@ Simple _ Mike _ C)2016 年 7 月 9 日
2)组织访问
许可:有时候,你不得不去要求。真麻烦!但是,这是必要的,尤其是对组织和公司而言。GitKraken 需要获得许可才能查看某些回购——尤其是当它们可能不完全公开时。
当用户试图连接到 GitHub 时,他们需要组织访问权限——这些存储库不属于用户,它们属于组织或公司。GitKraken 需要 GitHub 的许可。如果您出错,我们的 Git 客户端现在可以告诉您发生了什么。
是的,GitKraken 会提供步骤帮你解决。很抱歉那个迷宫!
我试着在工作中使用 GitKraken,但是当我尝试推送时,我得到一个错误“无法识别的允许类型:32”有什么想法吗?
—迷宫(@ Irazzer)2016 年 4 月 28 日
3)存储库远程 URL
当你的朋友用权力的游戏中的一个角色给他们的孩子取名时,该说什么:“你确定吗?名字很重要。当老师在点名时关切地喊出“丹妮莉丝·坦格利安,她名字的第一个,弥林女王,安达尔人和先民的女王,七国之主,王国的守护者,大草海的卡丽熙,龙之母”时,你认为你的孩子会怎么样”尴尬…
那么这和我们的 Git 客户端有什么关系呢?GitKraken 不能处理旧的 SSH 格式,因为它不能识别 URL 中的用户名。
@GitKraken 有没有解释错误信息的文档?最新的 gitkraken 想和我们的 ssh 交流,但是不喜欢文件类型
—吉姆·麦克基本(@ Jonny 55555)2016 年 6 月 6 日
所以现在,GitKraken 会提示你纠正这一点,再也不会打扰你了。我们通过解决用户可能不知道的问题来帮助他们。
我们也鼓励你在给你的孩子起名之前仔细思考。成交?
4)注意比特斗间隙
@GitKraken 无法使用 SSH key 访问 Bitbucket。总是收到错误消息:无效密钥。不是 base64 编码的。我该怎么办?
—威廉·诺托维达多(@ plus wn)2016 年 5 月 31 日
@GitKraken 创建 BB 回购时,得到错误“服务集成需要请求更多权限。”想法?
-雷·哥苏多(@ ray gestudo)2016 年 4 月 26 日
看起来我们在玩电话游戏,你在电话那头,却没有得到所有的信息。
GitKraken 给你看的和 Bitbucket 说你应该能看到的有差距。例如,Bitbucket 会向你显示一个允许你查看或编辑的回购大列表,而 GitKraken 不会显示所有的回购。
无需恐慌;我们已经解决了这个问题。GitKraken 已经成为一项更好的运动。所以,你在 Bitbucket 里看到的,应该在 GitKraken 里有所体现。只要确保您已经设置了与 Bitbucket 的集成,这样沟通的渠道就清晰了!
让标签指引你
这大概是该版本的最大特点。我们一直在努力让用户更容易理解我们的 Git 客户端是如何工作的,这应该会有所帮助。因为用户界面非常简洁,所以按钮上没有标签。我们意识到新用户可能想知道这些按钮的名称,因为他们不知道图标的含义。哦,王南钧告诉我们的…
测试 @GitKraken 。到目前为止玩得很开心!按钮可以使用一些工具提示,【https://t.co/PiAFvhUcrz】T2
-@克瑞斯塔纳斯基【】2016 年 8 月 24 日】
所以我们为工具栏中的按钮添加了标签!
提醒一下,这是没有标签的顶栏。
就像任何事情一样,这是可选的。所以,如果你是一个极简主义者,就去Preferences
取消标签,继续推和藏。或者让它们开着。不管怎样,我们都会支持你的决定。
GitKraken v1.5 会让你成为更强的 Git 用户| Axosoft
GitKraken 团队一直在不知疲倦地开发这个最新版本,为您带来如此多的好处!我们很高兴地宣布几个新功能,你会超过触手头。我们很高兴向您介绍 GitKraken Pro: 您最喜爱的 Git 客户端,拥有更多控制和选项。
随着 GitKraken 的每一次进化,我们开始看到它与它的头足类表亲有多么相似,它们实际上生活在海里。我们来看看,好吗?
是时候和 GitKraken 一起潜入黑暗的深处了。
GitKraken Pro:更多选项+动力
快速事实:章鱼的触须上有大约 200 个吸盘,这使得章鱼每平方英寸的抓力高达 100 磅。
想变得那么强大吗?你当然知道。这就是为什么我们激动地宣布 GitKraken 的新版本,称为 GitKraken Pro,它将为您提供使用 Git 的更强大的工具。
一旦你了解了 1.5 版中所有可用的新特性,一定要看看这篇专门为 GitKraken Pro 的发布而写的博客文章!你甚至会发现我们的启动资金筹集!剧透警告:GitKraken Pro 销售的第一个月收入将 100%捐赠给一个开源技术项目,帮助那些受 1 型糖尿病影响的人。
GitKraken 本身将继续成为一个强大、奢华和免费的 Git 客户端!
Pro 合并工具提供更多控制
让我先向你保证,内置的合并工具仍然是 GitKraken 的一部分,我们的免费 Git 客户端!因此,如果你在我们的 1.5 版之前一直使用 GitKraken,合并工具仍然可以工作:如果有冲突,你可以在应用程序中解决它——非常简单。如果你正在合并两个版本的代码,并且有冲突,GitKraken 会让你知道。
我们只是扩展了 GitKraken Pro 的功能!到目前为止,你不得不接受已经写好的代码行;您不能编辑它们。然而,现在你可以在升级到 GitKraken Pro 时进行编辑。
专业合并工具将事情带到了一个全新的水平。它不仅让您知道存在冲突,而且您现在可以进入合并的代码并编辑输出中的内容。让那件事过去一秒钟
自由形式的编辑等同于独立的工具。你通常必须使用第三方工具来完成这项工作,但现在你可以留在 app 中。对于日常使用,这将是真正有价值的,并节省大量时间。
– David Koontz, GitKraken Developer at Axosoft
除了能够编辑之外,语法高亮显示在免费版和专业版中都是一个受欢迎的新增功能。Axosoft 的 GitKraken 开发者凯尔·史密斯(Kyle Smith)报告说:“这只是最大的成功。“这让查看文件变得容易多了,”他说。
“合并冲突是任何人与 Git 交互中最可怕的部分,”Smith 说。“总有丢失一些代码的风险。因此,当你是合并文件的人时,你必须以保持这两种变化的方式来做,”他报告说。"语法高亮减轻了处理这个问题的压力."
现在你可以和第三方合并工具说再见了!
像专业人士一样切换情景模式
小常识:为了捕捉猎物或躲避捕食者,模仿章鱼可以将自己变成至少 7 种不同的动物。
有时你可能在工作中做一个项目,有时你可能在做一个个人项目。我们明白。我们也这样做!
这就是为什么您现在可以在 GitKraken Pro 中拥有多个配置文件。您可以轻松地从“工作开发”切换到“家庭/咖啡店开发”,并且仍然保留您的首选设置。
这项专业功能可帮助您将工作和个人项目分开。Axosoft 的 GitKraken 首席开发人员约翰·哈利(John Haley)说:“如果你使用‘工作’档案,并为个人满意而工作,这真的会令人困惑。”
如果您在工作和个人项目中使用同一台计算机,这真的很有帮助。现在很容易在两者之间切换。
– John Haley, Lead Developer at Axosoft
有了这一专业功能,如果你从事的项目与你的工作地点无关,或者如果你的工作地点不喜欢你将个人项目与工作项目混在一起,你现在可以将它们完全分开。
“在标准版的 GitKraken 中,你可以同时拥有这两种类型的工作,”Haley 说,“但是它与你的其他项目混合在一起。如果你愿意,你当然可以用工作身份开一个个人回购。但简介会让你清楚自己在做什么,”他总结道。专业版甚至让你选择独特的图标来识别每个配置文件。你甚至可以改变你的图标,当你切换配置文件!
老实说,你在家时的工作模式可能与上班时不同。Axosoft 的 GitKraken 开发人员 David Koontz 也参与了这项功能的开发,他说:“在工作时,你的获取间隔可能会比在家时更短,因为如果有人提交,你可能希望立即看到。
“你可以调整 GitKraken 的运作方式,”他继续说道。从主题到获取间隔,再到窗口停靠的位置。您的个人资料保留了这些信息。它记得你想如何工作,你在哪里工作。这不是很聪明吗?
支持:因为你并不孤单
快速事实:章鱼妈妈和它们的卵呆在一起超过 50 个月,确保它们孵化成小章鱼。
在此次发布之前,我们的成功团队(是的,Axosoft 有一个客户成功团队,而不是“支持”团队)一直在 Twitter 上听取对话和问题,并在可能的情况下做出回应。
随着本周 Pro 的推出,除了接收您的反馈之外,我们现在还向那些订购了 Pro 的用户提供个性化的有保证的支持。只需提交请求或发送电子邮件给我们,我们将尽快回复您。
以上大概介绍了升级到 GitKraken Pro 后你会看到的新功能!
这里是所有 GitKraken 用户都可以使用的新功能!
树形视图帮助您可视化
快速事实:章鱼的眼睛总是水平排列的,所以它可以正确地想象周围的环境,即使它的身体在游泳时可以处于任何角度。
对 repo 的大量更改意味着大量的文件名。并且,让我们面对它;当你整天盯着代码的时候,文件名是你最不需要破译的东西。当您必须找出特定文件的位置时,准备提交可能会变得令人困惑。不再有压力!所有 GitKraken 用户都可以使用树状视图。
您最终会得到一个包含许多文件夹和子文件夹的大型文件结构。事实上,许多文件可能具有相同的名称,并驻留在不同的文件夹中。有些文件是代码,有些文件是代码的测试,有些可能是图像。现在,当您使用树视图选项时,您将看到类似于文件夹树的东西,就像您在操作系统中看到的一样,而不是看到可能很长的完整路径。
您可以展开和折叠所有文件夹,只需浏览一个文件夹,或者一次查看几个文件夹。也许这个特性最好的部分之一就是树形视图允许你一次存放整个文件夹。
– Jordan Wallet, Axosoft GitKraken Developer
此外,树状视图允许您查看相似命名的文件夹之间的差异。这将永远结束摸索!Wallet 解释说:“树形视图为您提供了上下文。“任何折叠的文件夹都将为您提供有多少文件已更改以及更改方式的摘要。您还可以展开它们,查看子文件夹,”他总结道。
请创建一个账户
章鱼 vs 鱿鱼 vs 北海巨妖 vs 墨鱼。帮助我们保持跟踪。
当你现在登录 GitKraken 时,你会很快注意到一些新的东西。我们要求您创建一个帐户。我们知道,我们知道……但是我们有非常充分的理由加上这一点。
GitKraken 从测试版开始就一直需要一个电子邮件地址来注册,经过 Axosoft 开发室的大量讨论,我们决定过渡到所有用户的帐户。这将改善您安装 GitKraken 的体验,并允许我们在免费和专业版本的应用程序中更好地实现新的功能和服务。创建帐户有助于我们为您创造更好的体验。
在您创建帐户时,请注意:
- GitKraken 将继续是我们积极开发和改进的免费产品。我们希望它成为最好的、免费的、跨平台的 Git 客户端。
- 隐私总是一个令人担忧的问题。我们的【GitKraken 隐私政策解释了我们从用户处收集的信息以及我们对这些信息的处理方式。
所以,就这样了。(很多,我们知道。)请保持您的反馈的到来。我们确实通读过了!要了解 GitKraken 所提供的一切,请查看我们的特色页面。
参考资料:章鱼的事实来自蒙特利湾水族馆的网站和我的大脑。
GitKraken v1.6 在这里| Axosoft
从旨在帮助软件开发人员集中精力编写代码的播放列表中进行选择。播放列表包括流行的音乐剧、视频游戏曲目、棕色噪音等等。
GitKraken v1.7 版发布
你可能对这里的副标题感到困惑。如果你不是,那么你应该知道 HGTV 非常受欢迎的节目,关于两兄弟改善家庭:一个推出蓝图,另一个推出壁纸。
如果你不熟悉,只需知道在这个版本中,我们的超级重要的左面板——有点像房子里的厨房——得到演示并安装了一些新设备。所以它在建筑和视觉上都有所改进。
我们对 UX 的改进将帮助你像厨师一样快速编写一些代码;我们修复了后端的一些性能问题,提高了稳定性和速度。准备好参观了吗?
欢迎来到你的新厨房!别忘了查看发布说明!
粘性标题
有什么比全新的后挡板更好?粘头!看看他们。两者都很美观,易于清理。
过去,当你在左面板向下滚动时,有些东西会丢失。现在,向下滚动时,标题会锁定在屏幕顶部。
【v1.7 版之前的粘性标题
版本 1.7 之后的粘性标题
检出指示器
你知道吗,有一种冰箱可以告诉你的智能手机在你的购物清单上放什么?!这个功能就是这样。
现在,当您签出一个分支时,您会看到它有一个绿色的复选框。在这个版本之前,您拥有的关于一个分支被签出的唯一指示器,是看到它被一个带有粗体的边框框住。老实说,有点不清楚。现在,你一看就知道了!
在版本 1.7 之前检出的分支
【v1.7 版后检出分支
是啊,是时候再买些草莓了;你的室友吃了最后一个。
单飞提升
看看你全新的橱柜!你有空间把所有的锅碗瓢盆整齐地放好,这样你就不会去寻找那个难以捉摸的意大利面锅了。
在此版本之前,要访问“solo”和“hide”按钮,您必须悬停以显示隐藏/显示/solo 按钮的动画,以便它们显示出来。
现在,独奏,你只需右击上下文菜单。一旦你进入独奏状态,通过点击这些分支旁边的独奏图标可以独奏其他分支。
【v1.7 之前的 Solo】
【v1.7 版后上下文菜单中的 Solo
Solo in Context Menu after v1.7
看,这就像打开一个新的、有条理的储藏室,你需要的一切都在你的指尖。
See, it’s like opening a new, organized pantry where everything you need is right at your fingertips.
一览式图标
难道你不喜欢一个全新的炉子,让你看到你的冷冻披萨进展如何吗?奶酪现在融化了吗?好吧,现在呢?不要再猜了!
V1.7 为您提供了更多图标,使您在向下滚动时更容易识别分支、标签、PRs、stashes 等。更重要的是,如果你有一个存储,它会向你显示一个存储菜单,它有自己的图标标识符!
看看一些新图标!
【v1.7 版后的分支图标
Branch icon after v1.7
【v1.7 版后的远程图标
【v1.7 版后的隐藏图标
一致的按钮/图标放置和更清晰的拖放
你的旧日光灯被一些摆放得当的吊灯取代了。对你的眼睛更柔和,你将不再听到每次按下开关时恼人的嗡嗡声。
项目列表不再滑动来显示按钮。现在,当你悬停时,按钮总是在那里,所以现在没有消失的行为发生。
此外,remotes、pull requests 和 submodules 的 Add 按钮现在一直向右对齐,而不是只显示在您想要添加的按钮旁边。
事实上,所有打开滑动面板进行操作的按钮,如添加遥控器和创建 PR,现在都对齐到行的右侧。
【v1.7 版之前的按钮对齐
Also, the Add button for remotes, pull requests and submodules is now consistently aligned all the way to the right instead of just showing up next to what you want to add.
【v1.7 版后按钮右对齐
Button alignment before v1.7
此外,您会注意到下拉图标是一致的,不会消失。
我们已经升级了拖放功能,因此更加清晰。在这个版本之前,当你拖放的时候,所有的东西都是橙色的,而你所悬停的东西是绿色的。
在 1.7 版之前拖拽
Additionally, you’ll notice that the drop down icons are consistent and don’t disappear.
现在,当您将鼠标悬停在某个项目上时,它旁边会出现一个目标图标。
注意 1.7 版后光标左侧的“目标”
新的团队专业折扣价格
您已经知道 GitKraken 是我们的免费 Git 客户端,用于个人、开源、非营利和教育用途。
我们还有 GitKraken Pro ,它为商业用途提供了额外的功能,包括应用内合并冲突编辑器、多个配置文件、支持,以及更多即将推出的功能。
我们希望让您的整个团队都可以轻松使用我们的 Git GUI(不管有些用户是否使用 Windows、Mac 和/或 Linux)!
因此,我们提供新的 GitKraken Pro 团队定价,这将帮助您在购买 10 个用户的计划时,每年为每个用户节省50%,为 100 个用户节省67%,为 1,000 个用户节省多达 83%的折扣!
正如你所想象的,即使你没有那么多用户 和 ,在某些断点处升级到下一个最高计划也是有意义的。
所以,下面是分解!如果您准备购买,并且您选择了 5-66 个用户,我们将推荐 10 个用户计划。如果您选择 67-499 个用户,我们将推荐 100 个用户计划,对于 500 个以上的用户,我们将推荐 1,000 个用户计划。对于更大的团队,请 联系我们的销售团队以获得最优惠的价格!
这些计划将允许您的团队与 GitKraken Pro 一起成长,并且在遇到断点之前不必担心调整您的计划。所以,让大家知道,是时候让你的整个团队成为职业球员了!
现在,转到发行说明来了解更多关于这个经典、现代的版本!
So, here’s the breakdown! If you’re ready to purchase, and you select 5-66 users, we’ll recommend the 10 user plan. If you select 67-499 users, we’ll recommend the 100 user plan, and for 500+ users we’ll recommend the 1,000 user plan. For even larger teams, please contact our sales team to get the best pricing!
These plans will allow your team to grow with GitKraken Pro and not have to worry about adjusting your plan until you hit a breakpoint. So spread the word, it’s time for your whole team to go Pro!
Now, go over to the release notes to learn more about this classy, modern release!
GitKraken v1.8 震撼来袭| Axosoft
房子里有枪与玫瑰的粉丝吗?有人吗?你在角落里——是的,你,那个戴着大礼帽,尽管他不是主唱,却设法让 Axl Rose 相形见绌的出色吉他手叫什么名字?
没错,就是 Slash!干得好!
为什么我们要谈论 Slash?嗯,因为我们的左侧面板随着每个版本不断改进,对于 v1.8 ,它都是关于斜线的。
你会记得在我们的上一个版本 1.7 中,我们对左侧面板进行了显著的性能改进,这使得每个人的生活都变得更好。现在,我们将文件夹引入著名的左侧面板。
文件夹层级
如果你的分支中有斜杠,GitKraken 会简单地为你建立一个文件夹层次结构。
GitKraken 将在左侧面板中为您构建一个文件夹层次结构。
像这样的新闻是如此的荣耀,就像听到甜蜜的开场片段到我的甜蜜的孩子。你现在应该听听它,只是为了记住它有多好听。我们会等的。
过滤
好吧,你回来了!你已经熟悉了模糊查找器:我们的另一个有用的功能,可以更容易更快地找到东西。现在,我们简单地将该功能应用于左侧面板。
你会注意到一个新的搜索框被非常精致地放置在左边面板的顶部。所以,你可以用cmd
或ctrl
+ shift
+ F
来找到你要找的东西。突然间你成了摇滚明星…但用的是代码,而不是吉他!
过滤已添加到左侧面板。太简单了。
Filtering has been added to the left panel. It’s So Easy.
没有点击,滚动,诅咒或想知道你的分支,遥控器,拉请求,等等。是。不要击穿。现在你可以简单地用搜索框过滤。哦,哦,哦,我甜蜜的爱!
继续阅读发行说明以了解更多信息。他们不会让你失望,也许像*意大利面条事件?*做到了。
Run on over to the release notes to read more. They won’t let you down like perhaps The Spaghetti Incident? did.
GitKraken v1.9 继续它的旅程| Axosoft
每天我们都在探索陌生的新世界。开发团队获取代码行——短语、单词、数字的混合——然后创建新的场景来检查;打造高级功能,让生活更轻松;和设计解决世界上最古老问题的原创方案。
对于那些敢于去“以前没有男人[*或女人]*去过的地方”的人,我们为您提供,GitKraken v 1.9:现在 GitHub Enterprise 为专业订户提供支持!
让我们通过这个新版本的三个主要功能,以及一些关于星际迷航自己的星舰企业的琐事。因为,谁知道呢,也许这些事实会让你在某天晚上的酒吧琐事中赢得一个奖项。
在名为“让那成为你最后的战场”的一集里,自毁代码被使用了
如果你听到代码,你就知道是时候跑了,而且要跑得快。但是现在,您应该留下来了解 GitHub 企业支持以及它的重要性。
很多人(你可能知道)使用 GitHub.com 来主持回购。然而,一些公司更喜欢在内部安装 GitHub——一个在本地建立的 GitHub.com 的复制品。
在不太遥远的过去,GitKraken 能够使用托管在 GitHub 安装中的 repos,但不幸的是,它缺乏 GitKraken 与 GitHub.com 的紧密集成;在这里,您可以轻松地执行“拉”请求,获得要克隆的存储库列表,或者添加一个遥控器。
好了,对于那些拥有 GitHub Enterprise 的人来说,这是个好消息!有了 v1.9,用户将能够使用 GitKraken,你甚至不会意识到你的本地安装和 GitHub.com 之间的区别。不要再搜寻了:GitKraken 将会是你最后的战场。
祝贺你!您已经成功连接到 GitHub 企业服务器。
企业被设计成在紧急情况下分成两部分
没有太多人知道这一点,但“飞碟分离”是逃避特别和意想不到的攻击性情况的最后手段。是的,企业号可以抛弃后半部分,继续寻找更绿(更安全)的牧场,而星际动力部分继续战斗。
嗯,当你在 GitKraken 搜索标签时,你不必再把自己撕成碎片了。就像 v1.8 中对分支文件夹的更新一样,名称中有斜杠的标签现在被组织到协调的文件夹中!
当你搜索那些你根据它们所代表的含义命名的标签时,请保持冷静。例如,以 release/1.8.1 为例。现在,您将能够看到所有已经完成或正在进行的发布。这是合乎逻辑的,上尉。
当你使用斜线作为标签的前缀时,它们会把自己变成文件夹。例如,如果你有一个 1.0 的标签和另一个 2.0 的标签,GitKraken 将在顶部提供最新的 SemVer。
在 GitKraken 看到的标签过滤器。
在此版本之前,版本按字母顺序排序。所以这意味着你要找的人可能会一直在底部(womp womp)。好吧,我们修好了,所以振作起来。然而,如果一个标签名不是一个有效的 SemVer,它将按字母顺序排序。(这个故事的寓意:永远不要太高兴。)
企业最终成为新兵的训练船
回想一下《可汗之怒》的开头:企业号已经退役,柯克舰长觉得自己已经过时了,唯一要做的事情就是扬帆远航。但是没有!事情不是这样的。如果你没看过,这里没有剧透。
这个训练船的想法并没有被所有人接受。斯波克毫不犹豫地说这是浪费时间,但就我个人而言,我不相信,GitKraken devs 也不相信。GitKraken 的一个巨大优势是,它有能力教你 Git,仅仅是因为它强大的视觉组件。
所以,v1.9 中的最后一个功能实际上是教你 GitKraken 中的搜索是如何工作的!让我们把注意力再次转向那个强大的左侧面板;当你执行搜索时,GitKraken 会高亮显示匹配的部分。
例如:如果您在搜索框中键入单词“ref”,搜索将以后续方式匹配单词,并查找“ref”、“re”、“f”或“release from”。突出显示让您了解为什么您会看到基于您的搜索的内容。
看看那些行动中的亮点!
这样做的好处是双重的:
- 你不会坐在那里浪费你的脑力,想知道为什么某些单词会出现。
- GitKraken 实际上是在教你如何搜索!现在你知道了这一点,你可能会开发自己的速记类型,让你更快地找到东西!
所以,你有它;现在,您可以查看发行说明来了解还有哪些被修复和改进的地方!
-= the last fantasy =-荣誉出品本字幕仅供学习交流,严禁用于商业途径
又到了一年中的这个时候。无论这是一个对你过分关注的时刻,还是一个恐惧和自卑的时刻,或者仅仅是一个让你对爱和感情的商业化挥舞拳头的机会,我们都同意一件事:今天是情人节,亲爱的。
在这个最浪漫的时刻,还有什么比你最喜欢的 Git 客户端 Git kraken 的新版本更好的礼物呢?
像往常一样,你可以查看我们的发布说明了解新功能的详细分类,但这里有一个快速总结,你可以从这个最淫秽的软件更新中享受到什么。
远程化身
把一张脸和一个名字联系起来总是好的,你的遥控器也不例外。在一个重大的生活质量更新中,GitKraken 现在在图表中显示你可爱的远程化身。听起来没什么大不了的,爱人?亲爱的,试着在你的图表中有一堆裁判,并快速区分它们。在 v2.1 之前,这是 app 效率的一个阻碍。
从 2.1 版本开始,您可以快速轻松地查看谁的遥控器在哪里,这些遥控器一目了然。(请注意,我们不能保证你的团队成员头像选择的美学质量。我们很好,但有些事我们不能解决,甜心。👄)
【V2.1 版前后的遥控器
左面板性能改进
这是一个你真的想仓促行事的例子。我们花了一些时间来彻底检查左侧面板,使它变得更加敏捷。自己试试吧!我们都是朋友。打开一个大回购,检查速度差异。丝滑!
附加兼容性
我们已经采取了一些重大措施来提高您使用该应用程序的能力,虽然这听起来可能不太性感,但对于那些尽管取得了进步但却受到 GitKraken 冷遇的人来说,这是一件大事。我们听取了您的要求,并努力实现更好的远程兼容性,是的!–代理背后的操作!
我们在此版本中对 Team Foundation Server (TFS)和 Visual Studio Team System (VSTS)表现出了一些真正的爱和投入,现在支持 TFS 2015、TFS 2017 和 VSTS 上使用 HTTPS 的远程。现在那是热。
我们使用 TFS 2017 还有希望吗..?【https://t.co/nV0c9o3Ax2 号
—贾尔·奥斯坦森(@ jarlostensen)2017 年 1 月 17 日
window.addEventListener('DOMContentLoaded', function() {
@jarlostensen,小可爱,还有希望。我们刚刚实现了你的梦想
我们知道你们中的一些孤独的人喜欢在海滩上漫步,喝一杯葡萄酒,看一部浪漫小说,通过一个未经认证的代理人工作。嗯,你很幸运!如果你在一个未认证的代理上,你现在可以使用 GitKraken!抱歉,如果你喜欢这些服务带来的刺激,亲爱的。
哦,强大的 @GitKraken ,把我们农民从悲惨的企业代理中解放出来,发布代理配置,统治这个承诺世界
—纪尧姆 m .(@ MrGuiMan)2016 年 11 月 3 日
哦,@MrGuiMan,亲爱的,想想你已经从枷锁中解放出来了!
与每个版本一样,我们也做了一些小的改进,并用我们的细高跟鞋粉碎了一些 bug。查看 发布说明 以获得我们所有调情修正的详细视图。俏皮!
-= the last fantasy =-荣誉出品本字幕仅供学习交流,严禁用于商业途径
你喜欢前几周的奥斯卡吗?好吧,我们有一些自己的公告要分享,我们确信所有的都是正确的,都集中在“最佳 Git GUI 主角”GitKraken 的 2.2 版本上。
所以,请坐在杰克·尼克尔森和乔治·克鲁尼之间,让我们打开一些信封!
GitLab 集成
GitKraken 已经有 GitHub 集成和 Bitbucket 集成一段时间了。现在,我们很高兴将 GitLab 加入我们的“最佳远程服务配角”提名名单,因为我们将它添加到我们的集成服务家族中!
但是我不是已经连接到 GitLab repos 了吗,John?
– You
你确实可以;GitKraken 总是允许你在大多数服务上连接到大多数遥控器,但我们谈论的是集成。以 GitLab tanuki 为例。以前,这是一个塔努基,这很酷。现在,它就像一个 tanuki,有一个名片夹,一个记事本,一部手机和一套带垫肩的西装。这是一个任务中的塔努基,充满能量,随时可以出发,它会记得你是谁。
涡轮增压的 tanuki 大概会是什么样子
所以,现在你会在集成服务的标签中看到那只可爱的浣熊,就像你看到 GitHub 和 Bitbucket 一样。下面是您可以做的事情,让 GitKraken 和 GitLab 一起使用变得更加简单:
- 添加和删除 SSH 密钥:从首选项认证,您现在可以快速生成和管理您的密钥。这比宣布奥斯卡最佳影片奖的正确得主还要容易!
- 初始化一个回购
- 通过浏览并选择从 GitLab 帐户克隆一个 repo
- 在图形和(*剧透警告 *)左侧面板中查看 GitLab 远程头像
我们对将这一功能集成到应用程序中感到非常兴奋。我们将继续与 GitLab 密切合作,利用他们 API 的功能。
新存储库管理视图
仔细看看你在 GitKraken 的回复,你会注意到一些巨大的变化,这些变化可能会让你在红地毯上惊艳四座。许多用户要求回购管理界面更加整洁和直观,因此创建了新的存储库管理视图,作为组织和打开回购的一种完全不同的方式。在此视图中,用户现在可以:
- 浏览要打开的存储库的文件系统
- 从最近打开的回购列表中打开一个回购
- 创建包含回购组的自定义项目文件夹。
最后一个是为了方便 GitKraken 用户。包含回购组的文件夹现在可以作为项目文件夹添加到 GitKraken,这些文件夹可以在应用程序中单独命名。你在 GitKraken 之外的文件夹当然会保留它的名字。
不用说,你仍然可以像往常一样clone
和init
repos,只是在一个更漂亮的 UI 中,使连接服务的工作更加清晰。
左侧面板中的头像
在本文早些时候的一个有争议的泄漏中,我们令人震惊地暴露了 v2.2 中包含的左面板头像。2.1 版在图形中引入了头像,左面板的添加意味着遥控器的所有者现在清晰可见,一眼就可以立即识别。
HTTP 和代理凭证存储
这就是这个话题的戏剧性、勾心斗角、激动人心和绝对的性感,以至于很难把所有骚动的细节联系起来。我会试试看。
当输入一个主机的用户名/密码时,GitKraken 会询问你是否愿意记住这些凭证。改变主意了?我们偶尔都会感到害怕,所以存储的凭证可以在首选项认证中清除。
这差不多涵盖了这个版本中的主要新特性。OMG OMG 要感谢的人太多了!请务必查看发行说明以全面了解新内容,包括特性、改进和 bug fi—<cut out by orchestra>
GitKraken v2.3:现在有 Git 挂钩了!
你可能已经知道了,我们正在努力满足你最喜欢的 Git 客户端 GitKraken 忠实用户的需求和请求。2.3 版本实现了一个被广泛要求的特性,Axosoft 的每个人都很高兴在一个版本中看到它:Git hooks!
我们知道这是一个障碍,它阻止了一些用户在他们的团队中使用 GitKraken,而在某些行动中特定的功能是绝对必要的。随着 Git 钩子支持,我们希望 GitKraken 现在结合了两个世界的精华:一个直观且简单易用的界面,以及 Git 钩子的超级用户功能。
什么是Git 挂钩?
*钩子可以被定义为触发器。如果你熟悉 JavaScript,你可能以前用过钩子,以事件的形式。可以设置事件侦听器,以便在发生某些事件(例如,单击、点击)时触发自定义操作。那些事件可能被认为是“挂钩”,因为你是“挂钩”到它们中去做你需要做的事情。
WordPress 用户可能也对动作钩子的上下文中的钩子很熟悉。在呈现的页面或帖子中的某些点,会触发各种动作,程序员可以将自定义函数挂接到这些动作中,以便在呈现过程中的该点处理手头的信息。
Git 挂钩非常相似。它们允许用户创建定制的脚本,在 Git 进程中的特定时刻触发。GitKraken 不要求您在系统上安装 Git,所以直到现在,这种独立性意味着没有 Git 挂钩支持。但是,有了大量的血、汗和泪,v2.3 允许你用自己的方式来控制你的 Git 行为!
观看这个短片来了解 Git 挂钩,并了解 Git 挂钩在 GitKraken 中是如何工作的。
https://www.youtube.com/embed/ZZgyILr-TjA?feature=oembed
视频
git kraken 支持哪些钩子?
在每个钩子下面是 GitKraken 调用该钩子的动作列表:
pre-commit
:prepare-commit-msg
:- 犯罪
- 改进
- Cherrypick
- 合并
- 壁球
- 归还
commit-msg
:post-commit
:- 犯罪
- 改进
- Cherrypick
- 合并解决
- 归还
pre-rebase
:post-checkout
:- 检验
- 放弃更改(有选择地)
post-merge
:- 合并(无冲突)
- 快进
post-rewrite
:pre-push
:- 推送分支
- 推送标签
- 删除远程分支
- 删除远程标签
这就是 Git hooks。我们希望你喜欢在我们的行动中伸出你的触角!
So that’s Git hooks. We hope you enjoy getting your tentacles all up in our actions!
地区日期设置
另一个被广泛要求的特性是能够为提交设置特定区域的显示日期。你们可能不是本地人,可能有一些特定地区的约会方式。当你试图一目了然地解读日期时,查看另一种格式可能会产生不和谐的效果。
你猜怎么着?GitKraken 现在会想,我在哪里?并将根据您的系统语言环境相应地更新其日期格式。不客气!德里昂!比特舍恩!德·纳达!别提了!皮普皮普。就像你一样。
Well, guess what? GitKraken will now think to itself, where am I? and will update its date format accordingly, based on your system locale. You’re welcome! De rien! Bitte schön! De nada! Don’t mention it! Pip pip! As you were.
新的入职体验
现在比以往任何时候都更容易让你的团队在 GitKraken 安顿下来。V2.3 为首次用户引入了全新的入职界面。更容易看到在哪里设置首选项并开始使用回购。它还向用户介绍了我们的GitKraken简介视频,它提供了 GitKraken 功能的 90 秒快速概述,我们的支持网站,它提供了大量有用的文档,以及 GitKraken Slack 社区,在那里我们的用户可以互相帮助,帮助我们的团队改进 git kraken。
但是,还有一件事…
But, there is just one more thing…
免费试用 git kraken Pro
如果您一直想尝试 GitKraken Pro 的功能,如合并冲突输出编辑器、工作和个人使用的多个配置文件或 GitHub 企业集成,现在您有机会了!
只需点击
应用内按钮。在决定是否要升级到付费帐户之前,您将能够测试这些令人敬畏的功能长达 14 天!
button in-app. You’ll be able to test these awesome features for up to 14 days before deciding if you want to upgrade to a paid account!*
查看 GitKraken v2.4 的新特性:Suceava 版本
从旨在帮助软件开发人员集中精力编写代码的播放列表中进行选择。播放列表包括流行的音乐剧、视频游戏曲目、棕色噪音等等。
GitKraken v2.5 -比 SourceTree v2.0 快 3 倍
从旨在帮助软件开发人员集中精力编写代码的播放列表中进行选择。播放列表包括流行的音乐剧、视频游戏曲目、棕色噪音等等。
GitKraken v2.6:新的和改进的模糊查找器
“你知道我的方法,华生,”夏洛克说。"没有一个 finder 命令我没有应用于查询."
好吧,也许这不是亚瑟·柯南·道尔爵士所写的,但夏洛克的侦探技巧肯定启发了 GitKraken 版中新的和改进的模糊查找器。
在这个版本中,我们尝试了一些稍微不同的东西。我们制作了一个视频和这篇文章来介绍新内容。看视频还是继续看,选择权在你!请告诉我们你更喜欢哪一种。
https://www.youtube.com/embed/zNiK59YCvUk?feature=oembed
视频
模糊探测器
要调出改进的模糊查找器,在 Mac 上使用键盘快捷键Cmd+P
,在 Windows 和 Linux 上使用键盘快捷键Ctrl+P
。
在你完成对狗在夜间的奇怪事件的调查后,你可以使用模糊查找器来执行以下任何操作:
回购:
初始化
打开
- 在文件管理器中打开
- 克隆
- 设置:
- 一般
Git 配置
证明
- GitFlow
- UI 首选项
- 视图:
- 切换左侧面板
- 增加缩放
降低缩放比例
重置缩放
- 快捷键
- 历史:
- 模糊查找器已经取代了命令面板;然而,旧的键盘快捷键
Cmd+Shift+P
对于 Mac 和Ctrl+Shift+P
对于 Windows 和 Linux,仍然会显示模糊查找器。 - 下面列出的动作以前是通过命令选项板执行的,但现在可以使用模糊查找器执行:
- 核心:
文件:
暂存所有更改
取消暂存所有更改
放弃所有更改
The actions listed below were previously performed through the Command Palette, but can now be performed using the Fuzzy Finder:
隐藏:
分支:
结账:
- 此外,如果您单击右上角的搜索框,或者在 Mac 上使用键盘快捷键
Cmd+F
,在 Windows 和 Linux 上使用快捷键Ctrl+F
,默认情况下,它会搜索所有提交。 - #GitKrakenTip:使用
Cmd+backspace
/Ctrl+backspace
快捷键快速清除任何搜索或过滤器。 - 其他更新
GitKraken 现在会礼貌地通知你,当你有一个外部重置基础正在进行中。GitKraken 将显示此消息,并临时锁定应用程序的某些部分,直到外部重置完成。在外部 rebase 的每一步,你仍然可以从 GitKraken 内部解决冲突。
最后,我们为深色和浅色主题更新了 macOS 标题栏的颜色。
正如夏洛克曾经讽刺地说的,“这个世界充满了显而易见的事情,却没有人碰巧观察到。”我们希望我们的模糊查找器有助于让事情一目了然,这样你就不需要福尔摩斯的思维来执行非常基本的动作。要查看 GitKraken v2.6 中还有哪些新的和改进的内容,请在我们的发行说明中继续调查。
Branch:
Checkout:
Additionally, if you click the search box in the upper right corner—or use the keyboard short Cmd+F
for Mac / Ctrl+F
for Windows and Linux—it will search through commits by default.
#GitKrakenTip: Use the Cmd+backspace
/ Ctrl+backspace
shortcut to quickly clear out any searches or filters.
Other Updates
GitKraken will now politely inform you when you have an external rebase in progress. GitKraken will show this message and temporarily lock parts of the application until the external rebase has finished. You can still resolve conflicts from inside GitKraken at each step of the external rebase.
Lastly, we updated the macOS title bar color for both dark and light themes.
As Sherlock once sarcastically put it, “The world is full of obvious things which nobody by any chance ever observes.” We hope our Fuzzy Finder helps put things in plain sight so that you need not have Holmes’ mind to perform actions that are quite elementary. To see what else is new and improved in GitKraken v2.6, continue your investigation over in our release notes.
GitKraken v2.7: Go-Go 小工具丰富
从旨在帮助软件开发人员集中精力编写代码的播放列表中进行选择。播放列表包括流行的音乐剧、视频游戏曲目、棕色噪音等等。
GitKraken v2.0:现在,速度提高 2 倍!
两个往往比一个好。《终结者 2》、《齐柏林飞艇 2》、《异形》、《疯狂的麦克斯 2》(马路战士)、《剪草人 2》、《巨魔 2》、《富勒之家》、《刺猬索尼克 2》、《光晕 2》、《新约》(剧透警报:人人都会死)。这样的例子不胜枚举。但是这个名单现在包括了 GitKraken!我们非常非常兴奋地宣布 2.0 版本,这是一个充满改进的版本,值得拥有自己的编号。
https://www.youtube.com/embed/Qsx6BwjqxLA?feature=oembed
视频
有什么新鲜事吗?嗯,你可能注意到的第一件事是一个更时尚的外观。光明和黑暗的主题都经历了一些微妙而重要的变化。他们不仅看起来更好,他们在视觉上更一致,更容易看。
然而,这个版本不仅仅是油漆飞溅。我们不只是放下它的头发,摘下它的眼镜,看着它时髦地拒绝和姐妹会的女孩们一起吃午饭。没有。
性能
随着 GitKraken 的这一重大发布,重点放在了重大的性能改进上。你可能已经注意到,这次我们没有坚持通常的两周发布周期。这是因为我们的键盘技工在车库地板上到处都是 GitKraken,小心翼翼地注意每个细节来调整东西,这需要时间来做好。有压力。有眼泪。有损失,包括但不限于睡眠,头发和血液。
事实上,在很长一段时间内有严格的 QA 测试,没有人愿意向公众发布这个版本,直到每个 GitKraken dev 都同意它达到了我们设定的积极的性能目标。
对于 v2.0 的特性和改进的完整分析,你可以查看我们的发布说明,但这里是主要的亮点。
提交要快得多。下面是 1.9.3 版和 2.0 版的对比:
1.9.3(左)和 2.0(右)提交比较
开回购花的时间少多了。不要相信我们的话,看看这个对比:
1.9.3(左)和 2.0(右)公开回购对比
键盘滚动:在以前的版本中,GitKraken 在滚动时需要一段时间才能跟上键盘输入。现在就试试;这是一种丝滑的体验。但是我们会这么说,不是吗?这就是为什么这个对比证明了我们的观点:
1.9.3(左)和 2.0(右)键盘滚动比较
登台文件不再表现得像怯场一样。他们现在非常爽快。听起来好得难以置信?这是另一个并列的例子:
1.9.3(左)和 2.0(右)文件分段比较
上演帅哥和台词:谁想等你的帅哥上台?V2.0 让这些大块头排队的速度比以前快得多。这听起来像“替代事实”吗?你需要证明这是一个真实的事实:
1.9.3(左)和 2.0(右)线条和大块分段比较
即使有了所有这些性能增强,我们仍然设法解决了用户提出的一些最受欢迎的功能要求。
新功能
.gitignore
终于!您可以使用暂存区将文件或文件夹添加到您的.gitignore
文件中。使用上下文菜单,让你的回购如它所需要的那样无知。
需要在 CLI 中快速访问您的回购吗?现在你可以进入File
> Open Terminal
,GitKraken 会将你喜欢的 CLI app 和 cd 直接打开到你的回购目录。首次使用此功能时,系统会提示您选择应用程序。之后,GitKraken 将把它作为默认设置。或者,您可以随时进入Preferences
> General
> Default Terminal
更改您的默认设置。
现在,启动 GitKraken 和惊叹凯夫北海巨妖在全欢乐模式。凯夫为什么这么开心?因为你,凯夫很开心。你。
打开回购也有一个新的加载图形。旧的有点无聊,不是吗?此外,它旋转了一点点偏离中心。这有点像乔治·克鲁尼在《蝙蝠侠》中扮演的角色:有些事情有点不对劲。嗯,看看圆滑的凯夫!对 Keif 来说,这是冷静但严肃的一面,向你展示这是一个认真的北海巨妖,他将把回购速度至少提高两倍。
所以你有它!新的一年,新的 GitKraken 等待事情发生的时间更少。
Opening a repo also has a new loading graphic. The old one was a bit boring, wasn’t it? Also, it rotated just a little bit off-center. It was a bit like George Clooney as Batman: something was just off about it. Well, check out sleek Keif! This is a cool-but-serious side to Keif, showing you that this is one Kraken who means business and will open that repo at least 2x faster than before.
So there you have it! New year, new GitKraken; less time waiting for things to happen.
-= the last fantasy =-荣誉出品本字幕仅供学习交流,严禁用于商业途径
从旨在帮助软件开发人员集中精力编写代码的播放列表中进行选择。播放列表包括流行的音乐剧、视频游戏曲目、棕色噪音等等。
-= the last fantasy =-荣誉出品本字幕仅供学习交流,严禁用于商业途径
从旨在帮助软件开发人员集中精力编写代码的播放列表中进行选择。播放列表包括流行的音乐剧、视频游戏曲目、棕色噪音等等。
GitKraken v3.2 发布|适用于 Windows、Mac 和 Linux 的 Git GUI 客户端!
从旨在帮助软件开发人员集中精力编写代码的播放列表中进行选择。播放列表包括流行的音乐剧、视频游戏曲目、棕色噪音等等。
-= the last fantasy =-荣誉出品本字幕仅供学习交流,严禁用于商业途径
从旨在帮助软件开发人员集中精力编写代码的播放列表中进行选择。播放列表包括流行的音乐剧、视频游戏曲目、棕色噪音等等。
-= the last fantasy =-荣誉出品本字幕仅供学习交流,严禁用于商业途径
选择自己的冒险
如果您喜欢旁白,我们制作了这个简短的视频,向您展示这个版本中的新内容。或者,阅读这篇文章获得相同的信息。
https://www.youtube.com/embed/PUYuQh2UBE0?feature=oembed
视频
立即获取最新版本的 Git GUI 客户端!
提交消息模板
根据流行的请求,您现在可以为您的每个存储库创建提交消息模板。🎉要管理您的提交模板,导航到Preferences
并选择左下角的Commit Template
。
如果您希望标准化提交消息格式,Title
和Description
字段都是可配置的。
如果你需要快速启动,看看这个来自 git-scm.com 的例子。
# If applied, this commit will...
# Why is this change needed?
Prior to this change,
# How does it address the issue?
This change
合著提交
GitKraken 现在将显示共同创作的提交!🎮 🎮
类似于您如何在 GitHub 上添加合作作者,在提交消息中,包括合作作者的姓名和电子邮件地址,以便在提交中包括您的合作者。
在提交Title
或Description
字段中使用以下格式。
Co-authored-by: INSERT NAME <Email address>
添加共同作者来分享荣誉,并使其他贡献者更容易查看谁在您的项目中做了什么。
LFS 拉住
这一个希望节省你的时间。在 GitKraken 复制一个 LFS 回购后,GitKraken 现在会提示 LFS 拉。您可以从LFS
下拉菜单中决定是现在拉还是以后拉。
如果你有一个 LFS 的子模块,当你在应用程序中初始化子模块时,GitKraken 会自动执行 LFS 拉。
If you have a submodule with LFS, GitKraken will automatically perform an LFS pull when you initialize the submodule in-app.
上下文菜单选项
最后,右键单击一个提交,使用新的上下文菜单选项复制提交的 ID。
这将把整个 SHA 值复制到你的剪贴板上,这对于搜索、引用等应该是很方便的。
这大概涵盖了 3.5 版的新功能!要获得修复和改进的完整列表,请查看我们的发行说明。
That about covers what’s new in v3.5! For a full list of fixes and improvements, check out our release notes.
-= the last fantasy =-荣誉出品本字幕仅供学习交流,严禁用于商业途径
三,二,一…发射!
在任务控制站坐下,我们会带你四处看看。
通过观看此短视频或继续阅读,了解 GitKraken v3.6 的新功能。
https://www.youtube.com/embed/4hUFtGJv_Zc?feature=oembed
视频
立即获取最新版本的 Git GUI 客户端!
拉取请求
好了,看起来你已经准备好了,可以看看你的指尖有什么控制了。让我们从这个按钮开始,这里是拉取请求。
当您执行一个拉请求(有时称为合并请求)时,您是在请求某人在合并到另一个分支之前检查一个分支上的变更。在创建拉请求时,GitKraken 与其他 Git 客户端的不同之处在于它提供了更多无需离开客户端就能进行交互的方式。
在这个版本中,PR 功能更加强大,这意味着 GitKraken 和您的存储库托管站点之间的上下文切换更少。
In this release, PR functionality is even more robust, which means less context switching between GitKraken and your repository hosting site.
分配、审核、标记
现在,通过 GitKraken 创建拉请求时,您可以执行以下操作…
GitHub.com 和 GitHub 企业用户:
添加受托人
- 添加审阅者
- 添加标签
- GitLab.com 和 GitLab 自主托管用户:
添加受让人
添加标签
- 监控状态
- 好了,现在让我们将鼠标悬停在左侧面板中的一个拉取请求上。看到了吗?GitKraken 现在将显示拉动请求、审核人批准和打开/更新日期戳的状态。
对于 GitHub,这个工具提示将显示受托人、标签、审核者和构建状态。
Spell Check ✅
为缩减的 tyops *欢呼!*拼写检查已添加到提交消息框、拉取请求面板和提交模板字段。
And for GitHub, this tooltip will show assignees, labels, reviewers, and build status.
更多菜单选项
添加了一个文件菜单选项,用于在默认文件管理器中打开存储库文件夹。也可以使用 keybind alt
+ O
。
我们添加了一个上下文菜单选项来隐藏所有标签。
改进
这些小小的改进应该会提高你使用 GitKraken 时的生活质量。
打开拉取请求的工具提示已经过重新设计,更易于阅读。
GitKraken 现在显示标签注释。
选择Connect to [Hosting Service]
按钮将带您到主机服务标签,而不是一般认证标签。
Improvements
好了,我们的参观到此结束!
- Tooltips for open pull requests have been redesigned and are easier to read.
- GitKraken now displays tag annotations.
- Selecting the
Connect to [Hosting Service]
button will take you to the hosting service tab instead of the general authentication tab.
Alright, that wraps up our tour!
GitKraken v4.0:现在带有内置代码编辑
这是你最后的机会。在这之后,就没有回头路了。你吃了蓝色药丸:故事结束;你在电脑前醒来,和贵由一直拥有的一样。你服用红色药丸:你呆在仙境,我让你看看像北海巨妖一样成长是什么感觉…[/blockquote]
作为一个好奇的北海巨妖,凯夫吞下了红色药丸,醒来时拥有了一些新的能力。观看此视频或继续阅读,了解 git kraken 4.0 版本的新功能。
https://www.youtube.com/embed/fZ_Lj3rBNm4?feature=oembed
视频
获取我们 Git 客户端的最新版本:
内置代码编辑
GitKraken Git 客户端现在支持代码编辑!在文件视图中,您可以单击编辑文件并直接进行更改。你会注意到我们增加了语法高亮、代码提示、文件小地图和搜索你的文件的能力。
从来没有人这样做过。这就是为什么它会起作用。
一旦你编辑并保存了一个文件,GitKraken 将会识别这个改变,这使得它非常容易升级和提交。
当查看文件差异时,您现在可以轻松地在大块视图和新的内联视图或拆分视图之间切换。责备视图和历史视图也更新了相同的选项。此外,我们还增加了单词区分和使用箭头跳转到下一个变化的功能。
创建和删除文件
不要试图弯曲锉刀。认识到一个道理:没有档案。
现在你可以在 GitKraken 中创建和删除文件*。要创建文件,请使用键盘快捷键Cmd
/ Ctrl
+ P
打开模糊查找器,键入“create file
”,然后键入文件的名称。代码编辑器将会打开,这样您就可以直接进入并开始处理您的项目。*
除了创建文件,您还可以通过在创建文件时键入路径来创建文件夹。
要删除文件,请在提交面板中右键单击文件以访问删除选项。
将 Glo 板与回购关联
如果您使用 Glo 板进行 任务和问题跟踪 ,您现在可以使用下拉菜单将 Glo 板关联到特定的回购。
点击上面的图标为你当前的回购设置一个默认的 Glo 板。现在,当你点击 Git 客户端中的Glo
按钮时,这个板会自动打开。
期初和期末回购
如果我告诉你有一种新的方法来管理你的回购,会怎么样?
现在可以使用键盘快捷键Ctrl
/ Cmd
+ W
或点击X
图标来关闭存储库。
关闭回购后,您将看到新的主屏幕,其中有方便的快捷方式来打开现有项目、初始化本地回购,或在 GitHub、Bitbucket、GitLab 或任何我们支持的存储库托管网站上初始化新的回购。
开始一个项目、创建一些文件并开始编码比以往任何时候都更容易!
你没有做梦
你曾经做过你确信是真实的梦吗?如果你无法从梦中醒来呢?你怎么知道梦境和现实世界的区别?
这些更新都是真实的,还有更多!
现在,您可以使用右键菜单隐藏图表中的隐藏内容。单击左侧面板中的眼睛图标,再次显示藏物。
现在,通过键盘快捷键Ctrl
/ Cmd
+ Shift
+ S
暂存完所有文件后,提交消息框会自动聚焦。
如果你发现自己掉进了兔子洞,我们在帮助菜单中添加了快捷方式来访问 GitKraken 支持文档和模糊查找器。
-= the last fantasy =-荣誉出品本字幕仅供学习交流,严禁用于商业途径
从旨在帮助软件开发人员集中精力编写代码的播放列表中进行选择。播放列表包括流行的音乐剧、视频游戏曲目、棕色噪音等等。
-= the last fantasy =-荣誉出品本字幕仅供学习交流,严禁用于商业途径
生活是一片沙滩!
我们一直在努力发布 GitKraken Git 客户端的 v4.2 ,其中包括一些令人难以置信的新功能,让您的工作体验更加轻松。
请继续阅读或观看这段视频,了解更多关于未来阳光灿烂的日子——只是不要忘记你的凉鞋。
https://www.youtube.com/embed/tSpd3bFc00s?feature=oembed
视频
获取 GitKraken Git 客户端的最新版本:
Bitbucket 服务器集成
不,你耳朵里没有沙子;GitKraken Pro 用户现在可以将他们的 GitKraken 客户端与 Bitbucket Server 集成!
您将能够看到要克隆和添加的存储库列表。您还可以从 GitKraken 内部打开拉请求或初始化存储库。如果需要更多的空间,甚至可以扩大拉取请求描述的大小。
现在,谁想建一个沙堡?凯夫只需要一把铲子。
Azure DevOps
谁准备好跳入清澈蔚蓝的水中了?
VSTS 集成已被重命名为 Azure DevOps,除了旧的 VSTS URL 之外,所有新的 Azure DevOps URLs 都将受到支持。
The VSTS integration has been renamed to Azure DevOps and all new Azure DevOps URLs will be supported—in addition to the older VSTS URLs.
文件历史和责任视图
扔个浮标给我!这些很酷的功能会让你感觉像救生圈一样,比以往任何时候都更容易被发现。
您现在可以从文件的差异视图中访问文件历史和责任视图。不再有切换回来或在海上迷失的感觉。
错误记录
每个人偶尔都会有阴天。不要害怕!GitKraken 现在增加了基本的错误记录。
用户可以从Help
菜单或模糊查找器访问错误日志。错误日志将显示应用程序中最近发生的十个错误。
Everyone has a cloudy day once in a while. Fear not! Basic error-logging has now been added to GitKraken.
轻松过滤文件
我们明白了。天涯何处无芳草,有时很难找到你需要的那一条。
现在,当用户点击View All Files
选项时,他们可以访问一个优化的过滤栏。这应该会更容易找到您要找的文件。
新快捷键
Keif 一直在想办法增加 GitKraken 的便利性,北海巨妖为我们的用户发布了更多令人敬畏的快捷方式:
获取(Cmd
/ Ctrl
+ L
)
创建一个分支(Cmd
/ Ctrl
+ B
)
在模糊查找器中打开文件历史记录(Cmd
/ Ctrl
+ H
)
- Fetch (
Cmd
/Ctrl
+L
) - 现在没有理由不去篝火晚会了。
- Open file history in the Fuzzy Finder (
Cmd
/Ctrl
+H
)
悬停工具提示
感觉你把头埋在沙子里了?我们发布了一些新的方法来发现您需要的信息。
我们更新了悬停工具提示,以显示整个应用程序的更多信息。用户现在可以将鼠标悬停在存储、提交、分支、回购名称或文件上,以访问更多相关信息。
Hover Tooltips
Feeling like you’ve got your head in the sand? We’ve released some new ways to uncover the information you need.
We’ve updated the hover tooltips to show more information throughout the app. Users can now hover over stashes, commits, branches, repo names, or files to access more related information.
-= ytet-伊甸园字幕组=-翻译:粒粒尘紫月猫姐校对
我们一直像冰原狼一样工作,为 GitKraken Git 客户端提供一些令人难以置信的新特性。我们希望您和我们一样对这些新功能和改进的性能感到兴奋。
我们带给你:所有释放的母亲!
https://www.youtube.com/embed/K1mbGn0Af8U?feature=oembed
视频
获取 GitKraken Git 客户端的最新版本:
交互式重置基础
互动 rebase 是来 …这里。
举起你的圣杯!
现在,当您将一个分支拖放到 rebase 时,您将看到一个交互式 rebase 选项。
单击打开Interactive Rebase
视图后,您可以为每个提交选择一个操作:
- 在左侧,您可以选择、改写、挤压或丢弃提交。
- 使用
up
和down
键来导航提交。 - 双击提交以改写。
- 拖放以上下移动提交。
- 使用键盘快捷键来执行所有这些操作!
一旦你做出选择,点击Start Rebase
按钮;交互式基础将开始,图形将更新以反映您的更改。这是一个如此简单高效的过程,你会觉得自己像拿着剑的塔斯的布蕾妮。
访问交互式 Rebase 的其他方式
您还可以右键单击图中的提交来访问其子提交的交互式 rebase 选项。
此外,当您右键单击提交时,现在有以下选项:
- 编辑提交消息。
- 放弃提交。
- 移动提交。
- 或者选择多个提交来挤压,而不需要头提交。
G.P.G.
不,你耳朵里没有龙鳞… GitKraken 现在支持 GPG 提交签名。倒红酒!
不确定提交签名是什么或它需要什么?查看我们与 GPG 签署的承诺支持文档以了解更多信息。
简而言之,GPG 提交签名有助于防止其他用户欺诈性地使用您的别名进行提交,并且是公司为了遵守更严格的安全合规性标准而更加频繁地强制执行的事情。毕竟,真正的北境之王只有一个。
在您的计算机上安装和配置 GPG 后,您必须生成一个 GPG 密钥。这可以在你的 GitKraken 帐户中轻松完成。一旦您有了自己的唯一密钥,您就可以与您的远程主机服务共享它(或者配置 GitKraken 来为您做这件事),并开始使用您的密钥签署提交。
使用您的 GPG 密钥签署提交将允许其他用户验证该提交确实是由您做出的,而不是某个冒充您的人。
需要帮助安装 GPG 吗?查看我们支持文档的部分,获取分步指南。
需要帮助安装 GPG 吗?查看我们支持文档的部分,获取分步指南。
验证 GitKraken 中的提交
完成安装 GPG 的步骤后,选择您的密钥,并配置 GitKraken 使用您的密钥签署提交;您所做的所有提交都将在提交消息中包含一个绿色徽章,注明提交为Verified
。您可以在 GitKraken 的右侧提交面板中查看此徽章。
类似地,您可以通过检查其他用户的绿色徽章来验证在您的项目中工作的其他用户的合法性。只有同时满足以下两个条件时,图标才会显示为绿色:
您有其他用户的公共 GPG 密钥。
- 用户的 GPG 密钥是可信的。
- 如果在没有 GPG 密钥的情况下签署提交,则不会出现图标。如果 GPG 无法验证或找到签名密钥,或者签名密钥已过期或被吊销,图标将显示为灰色。这将有助于你清除叛徒。
更快的抓取速度
在一个有多个远程设备的存储库上获取数据现在快多了。那感觉就像是在龙上飞行。
更快的抓取速度
增加了欢迎屏幕上的选项
布拉佛斯。我们增加了克隆一个库到 GitKraken 欢迎界面的选项。现在去化妆吧!
增加了欢迎屏幕上的选项
获取内存泄漏已修复
我们的团队已经解决了Fetch
操作可能出现的内存泄漏问题。瓦里斯和他的密语者将不得不去别处寻找他们的秘密。
获取内存泄漏已修复
Azure DevOps 抓取
在不使用集成的情况下从 Azure DevOps 存储库获取数据时,GitKraken 将不再抛出Fetching pull requests failed
错误消息。
我们知道谎言会导致什么……
在不使用集成的情况下从 Azure DevOps 存储库获取数据时,GitKraken 将不再抛出Fetching pull requests failed
错误消息。
我们知道谎言会导致什么……
GitKraken v6.0 Git 客户端:有史以来最快的 GitKraken!
作为 Axosoft 的创始人,没有什么比我们软件的主要新版本更让我兴奋的了,尤其是影响我们所有用户生产力的更新!有时,我们还会进行有意义的价格调整,使我们的软件更容易为全球更多的开发者所使用。
今天,我们正在做这两件事,这就是为什么我加倍兴奋!我们有:
每一个都是一个重要的里程碑,所以,让我们开始吧…
GitKraken v6.0: Perf,Perf,Perf…和 tab!
如果从标题上看不出来,GitKraken v6.0 的重点是性能。GitKraken backlog 中有数百个功能请求,很难阻止整个开发团队开发任何新功能,而是专注于更快地重写现有功能。没有新功能意味着我们的销售团队没有得到任何潜在客户一直要求的东西。这也意味着我们不能检查客户需求列表上的任何特性。
当我们发布带有新功能的 GitKraken v5.0 时,比如 GPG 提交签名和交互式 rebase ,这意味着我们可以回到一直在要求这些功能的客户那里,并说*“我们做到了!这是你要的东西。”但是没有人直接要求我们重写产品已经有的东西。*
为什么关注 Perf?
那么,是什么原因让我们停止开发新特性,而将整个版本的重点放在性能改进上呢?为了理解我们在 v6.0 背后的动机,了解 Axosoft 存在的目的是有帮助的。
我们有一个公司 Glo 板,用于新员工入职,它还提供关于公司福利和政策的有用信息,每个团队成员都可以访问。这个板块从定义 Axosoft 为什么存在的两个最重要的方面开始:为什么和 T2 是什么。'
自公司成立以来,Axosoft 的目标一直是提高开发人员的工作效率,以便他们能够按时交付软件。这一指导原则已经驱动 Axosoft 超过 17 年;首先,在 Axosoft 品牌下创建了 Scrum 项目管理工具,最近,创建了 GitKraken 产品线。帮助软件开发人员提高工作效率是 Axosoft 成功的根本原因。
自 2016 年推出 GitKraken v1.0 以来,全球超过140 万软件开发者发现了 GitKraken。对于成千上万的人来说,由于生产率的提高,GitKraken 已经成为他们每天如何开发软件的游戏规则改变者。
了解 GitKraken Git GUI 如何融入 DevOps 生命周期。
提高开发人员的工作效率惠及全球🌎
考虑到 GitKraken 的用户基础,如果我们将发现 GitKraken 的人的生产率提高 1%,就好像我们为世界软件开发劳动力增加了 14,000 名新的程序员。如果我们能够将生产力指针移动 10%,那就相当于全球新增了 140,000 名开发人员。
随着 GitKraken 用户群的增长,这些数字还会继续增加。因为我们相信软件正在给世界带来积极的变化,让我们的工作相当于为全球劳动力增加了成千上万的软件开发人员,这是一个极具激励性的目标!
有了这一驱动原则的指导,我们想尽一切可能让 GitKraken 跑得更快也就说得通了。启动更快,打开回购更快,提交更快,刷新图表更快,以及其间的所有其他事情。如果 GitKraken 有助于提高开发人员的工作效率,那么更快版本的 GitKraken 将会帮助开发人员甚至更高效!
我们开始把性能看做 一个特性——一个影响我们 100%用户的特性!从那里开始。曾经是。开着。GitKraken v6.0 的新目标已经设定:它将完全是关于性能的改进。
git kraken v 6.0 之旅
当我们开始我们的 v6.0 之旅时,有一些系统为我们提供基准是很重要的。
我们花了前几周时间搭建脚手架,帮助我们测量一切。我们设置了 canary 机器,它会自动测试每一个新的构建,并给出我们想要改进的性能指标:启动时间是多少?它在 Mac、Linux 和 Windows 上运行吗?打开一个回购花了多少毫秒?转换回购呢?我们希望确保不会错过任何改进的机会,因此,我们将 perf 改进作为整个团队的使命。每个开发人员都必须开始考虑提高速度的方法。
一旦我们有了基准和金丝雀机器,艰苦的工作就可以开始了。重写一遍又一遍,将每项操作的时间缩短了几毫秒,团队高度关注性能——关注每一个小细节。需要 100 毫秒才能执行的缓慢的 JavaScript 代码用 C++重写,因此它可以在 10 毫秒内运行;多余的操作被删除;GitKraken 的主要部分被重新设计以使它更快。
由内而外的重建
一开始,感觉很混乱。这就像我们在做膝盖手术和脑部手术的同时,还进行了心脏移植。我们取出了 GitKraken 的内脏,每一次手术切除,我们都会放入新的未经测试的部分。
像大多数大型软件项目一样,有时你不得不接受混乱和缺乏可见性,每天向前推进。尽管我们一开始看不到结果,但我们知道我们正朝着正确的方向前进。每个部分都被更快、更闪亮的版本所取代。
一次又一次,一部分又一部分,替换以狂热的速度进行着。最终,经过几个月的工作,GitKraken 被重新组装起来,隧道尽头的光开始出现。
我们终于到了一个点,所有的部分都回到了一起——我们有一个构建!当我们手术后第一次打开 GitKraken 时,我们熟悉的旋转北海巨妖吉祥物 Keif 开始跳舞,但仅仅转了两圈后,他突然停止了。该死!当我坐在那里想知道哪里出了问题时,我心想。凯夫通常跳六个完整的旋转。经过几个月的工作,我最不希望的就是应用程序在打开时崩溃。但是不到一秒钟,漂亮的吉他英雄般的提交图出现了。“等等,刚刚发生了什么?”我问团队。“git kraken 已经在这台机器上运行了吗?当然,这不可能是一个新的产品!”**
GitKraken 已经不跑了。团队通知我这是新的负载!这些事实上是几个月密集手术的惊人结果。GitKraken 又完整了,结果棒极了。不仅仅是打开更快,一切都更快了!
以下图表显示了 GitKraken v6 与 v5 相比的改进时间:
虽然我们对这些结果感到兴奋,但我们也意识到这些改进是有代价的。我们心爱的跳舞的凯夫仅仅转了两圈就被切断了。像你们很多人一样,我会想念我们小家伙的舞步。两次旋转对我来说是不够的。每次我打开 GitKraken,看着 Keif 在屏幕上跳舞,我都会露出笑容。
幸运的是,我们的营销团队为我提供了一个解决方案。我现在可以随时去凯夫画廊看凯夫跳舞了!
然后还有标签……
当我们继续测量和改进 GitKraken 几乎每个操作的性能时,在我们的一次审查会议上,我们的团队发生了一些事情:如果我们使用这些性能改进来允许以标签的形式快速切换回购,会怎么样?
标签的想法并不新鲜,但由于 GitKraken 的占用空间相对较大,并且由于其视觉特性,可能有点内存不足,同时打开大量的 repos 可能会非常昂贵。然而,在所有性能改进的基础上,我们的想法是以高效的方式实现选项卡。
我们没有载入 GitKraken 的所有优点——包括它的图表和所有底层基础设施——而是想,*‘如果我们提供一种在回购协议之间快速切换的方式,提供 tab 的所有好处,但开销很小,会怎么样?’*如果我们可以快速加载一个新的回购并显示图表,就没有必要将所有东西都保存在内存中,我们可以缓存重要的东西并快速重建其余的东西。
让一些常用的回购协议以标签的形式出现的想法非常令人兴奋。因此,当我们的大多数开发人员继续完成 GitKraken v6.0 的性能改进时,我们让几个团队成员测试了一个标签原型——只是为了看看人们是否会喜欢它。
原来每个人都喜欢标签!一旦人们开始使用标签,没有人愿意放弃它们。
有些人认为在 perf 改进和 tab 之间,tab 在 v6.0 中更重要。结果,tab 成了这个版本中主要的计划外特性。*走图。*我们并没有打算在 v6.0 中加入任何新功能,通过这样做,性能改进启用了可能会影响每个用户工作流程的最重要的功能之一:选项卡!
v6.0:更快的 Git 客户端
https://www.youtube.com/embed/RxqxEyuqOEY?feature=oembed
视频
获取 GitKraken Git 客户端的最新版本:
GitKraken 价格变化
随着 v6.0 的发布,我们还想改进 GitKraken 的定价计划。
我们的目的一直是为学生和从事开源项目的人免费提供 GitKraken。自产品问世以来,我们一直有一个被描述为“非商业用途免费”的免费版本然而,这个术语有点模糊,有时会导致混淆。“非商业用途免费”是指可以在政府机构免费使用吗?那么,在你获得报酬的项目中用于个人用途呢?问题层出不穷。
公开回购的免费 Git 客户端
所以我们决定用这种方式来消除困惑:
- GitKraken 的免费版只能打开公共回购
- 对于其他任何东西,你需要一个付费版本
这使得 GitKraken 的免费版本可以用于开源项目。它还允许免费版本用于商业用途——只要是在公共回购上。
此外,作为 GitHub 学生开发包的一部分,学生可以免费获得 GitKraken Pro。因此,这种新的定价策略以一种更加明确的方式满足了我们的初衷。
Git 个人客户定价
然而,我们也认识到,有很多 GitKraken 用户希望将我们的产品用于他们自己的副业项目——其中许多人有私人回购。对于这些可能手头拮据的个人用户,我们希望降低价格壁垒,这样就不成问题了。
每用户每年 49 美元,GitKraken Pro 已经是市场上最便宜的 Git 客户端,但对于个人用户,我们正在进一步降低门槛。这就是为什么我们推出了一个新的计划,即个人每年仅****【29***!我们通过加入合并冲突编辑器来增加交易的甜头。***
因此,对于每月不到 2.42 美元的*,任何人都可以购买 GitKraken,并以他们想要的方式使用它:个人使用,商业使用,非营利工作…无论什么!好好利用它。**
***### Glo 板呢?
到目前为止,我们的Glo Boardstask and issue tracker 只对非商业使用是免费的。从今天起,我们正在改变: Glo 现在可以免费用于商业或非商业用途!
但是,随着我们继续在 Glo 板中构建更多功能,我们将在每个 GitKraken 付费计划中为 Glo 用户提供新的附加功能。例如,在新的 GitKraken 个人计划中,您还可以访问 新的自定义板背景功能 !
【GitKraken Pro 用户呢?
如果你是 GitKraken Pro 用户,不要担心,因为 Pro 订阅仍然是最好的 GitKraken 订阅。有些功能是专业用户独有的。
例如,多个 GitKraken 配置文件,已经得到增强,以记住您的标签,只有在 GitKraken Pro 中才能找到。当您切换配置文件时,比如在工作和家庭项目之间切换,GitKraken 会完全按照您在该配置文件中的状态重新配置您的选项卡。访问 GitHub、GitLab 和 Bitbucket 的自托管安装的能力也是 GitKraken Pro 客户独有的功能。此外,管理组织、其 GitKraken 用户(及其许可证)的能力,以及在 Glo Boards 中定义和使用团队功能的能力,都是需要 Pro 订阅的功能。
简而言之,如果任何专业版的功能吸引你,或者如果你购买了多个许可证,你仍然需要 GitKraken Pro。
GitKraken 定价对比
总而言之,GitKraken 的新定价计划如下:
全球 Git 用户超过 3000 万。我们相信所有这些用户都应该通过使用 GitKraken 来提高工作效率,并认为我们的新定价计划有助于让全球更多的软件开发人员接触到我们的工具。我们希望你能加入我们的旅程,接触到 1000 万 GitKraken 用户甚至更多!******
GitKraken v6.5: Fork 和 Perf 改进
GitKraken 客户端的最新更新非常棒,你一定会跳起你的北海巨妖快乐舞。我们知道是凯夫干的。
在我们讨论 GitKraken v6.5 新特性的实质内容之前,先来看看高层次的:GitKraken Git GUI 现在快了 10%;内存消耗减少 20%;少占用 30%的磁盘空间。这是什么刀?!
GitKraken v6.5:叉子&性能提升
https://www.youtube.com/embed/wOTaHM7jXTY?feature=oembed
视频
在 GitKraken 中派生 GitHub 库
以前,用户需要离开 GitKraken,转到他们的托管服务,派生所需的存储库,返回 GitKraken,找到相关的遥控器,然后找到派生的回购。😅
现在,GitHub 用户可以通过 GitKraken GUI 直接派生存储库,不再浪费时间进行上下文切换。
v6.5 允许用户通过 GitHub 集成在 GitKraken 中派生 GitHub 存储库。只需导航到左侧面板中的 remotes 窗格,然后单击+
按钮即可添加遥控器。
如果您在所选的 GitHub 存储库上还没有 fork,GitKraken 会自动为您提供 fork 选项。你会看到消息“你还没有在 GitHub 上分叉 microsoft/vscode。”
单击Fork and Add Remote
按钮,它将分叉回购并将其作为遥控器添加到左侧面板。
类似地,如果您已经在 GitHub 中分叉了所述回购,您将看到消息“您在 GitHub 上有该回购的分叉”,并有一个选项将该分叉添加为 GitKraken 中的远程。
GitKraken 中分叉的任何 GitHub 库将直接在您的 GitHub 帐户中可用。
GitKraken 性能改进
正如我们提到的,GitKraken v6.5 带来了一些显著的性能改进,使应用程序:
- 启动时间缩短,速度提高 10%;
- 内存消耗减少 20%;
- 您的计算机上释放了 30%以上的磁盘空间。
GitKraken 支持 Windows 的长路径
GitKraken 现在支持 Windows 用户的长路径。您必须通过Preferences
窗口设置该功能。只需点击Longpaths
旁边的复选框,您就可以开始了。
又短又甜,对吧?要查看新特性、改进和错误修复的完整列表,请查看我们的发行说明。看在叉子的份上,回去工作!
GitKraken Git GUI v7.4:现在使用 Google 登录
原文:https://www.gitkraken.com/blog/gitkraken-v7-4-google-sign
现在是时候用 GitKraken v7.4 启动史诗级更新了。🔑
https://www.youtube.com/embed/t809w7pnDnc?feature=oembed
视频
登录谷歌
你可能已经享受过谷歌登录其他软件产品的便利。你可以期待在 GitKraken 的过程也是如此。
如果您有 Google 帐户,当提示您登录 GitKraken 帐户时,您可以选择Sign in with Google
;不需要记住任何额外的登录凭证!
新的图形列
这些新列将像锁和钥匙一样适合你的图表。🔐
GitKraken 的中央图现在有柱了!默认 UI 设置现在包括Branch
/ Tag
、Graph
和Commit Message
的列标题。
如果右键单击某个标题,将会弹出一个上下文菜单,允许您添加其他列标题:
Commit Author
Commit Date
/Time
Commit SHA
在上下文菜单中,只需单击以添加或删除这些列标题,或者拖放以调整大小或重新排列列顺序。
或者,单击列标题最右侧的齿轮图标⚙️,添加作者、日期/时间和/或 SHA。您也可以导航至Preferences
→ UI Customization
。
Alternatively, click the gear icon ⚙️ on the far right of the column headers to add author, date/time, and/or SHA. You may also navigate to Preferences
→ UI Customization
.
这些列标题将有助于眼睛快速理解他们面前的信息,对于有许多贡献者的大型回购特别有用。
打开和关闭标题。您可能会发现可选的作者、日期/时间和 SHA 列在整个工作流程中非常有用。只需两次点击即可打开和关闭它们。
为 GitHub 用户起草拉取请求
GitHub 用户现在可以直接从 GitKraken 创建和保存草稿拉取请求。从 GitKraken 创建拉取请求时,您将会看到一个Submit as draft
复选框;选中该框,将您正在处理的 PR 保存为草稿。
GitHub users can now create and save draft pull requests directly from GitKraken. You will now see a Submit as draft
checkbox when creating a pull request from GitKraken; check that box to save the PR you’re working on as a draft.
草稿拉取请求有助于防止某人意外地合并工作,如果您希望看到一个真正大的功能,但不准备在当前状态下保存您的工作,它会很有用。
指派人员拉取请求
现在,当选择 GitHub pull 请求的受托人或审核人,或 GitLab pull 请求的受托人时,下拉菜单将显示用户名和用户名。
针对 GitHub 问题自动完成过滤
GitHub 用户现在可以通过 GitKraken 中的 GitHub 问题集成,在创建或编辑问题过滤器时享受自动完成的建议。
GitKraken 是更好工作流程的关键
现在有了 Google 登录和图形栏,GitKraken 为您的 Git 项目提供了更多的便利和可见性。享受这些更新和 GitKraken Git GUI 提供的所有不可思议的特性。
**GitKraken is the Key to a Better Workflow **
Now with Google sign in and graph columns, GitKraken offers even more convenience and visibility into your Git projects. Enjoy these updates and all the incredible features the GitKraken Git GUI has to offer.
去吧,GUI v7.5
从旨在帮助软件开发人员集中精力编写代码的播放列表中进行选择。播放列表包括流行的音乐剧、视频游戏曲目、棕色噪音等等。
走的时候去 GUI v7.6
现在您可以直接从 GitKraken 与您的 GitHub pull 请求进行交互
我们打开了呼叫频率,听到了你们的通讯。来自整个银河系的开发人员要求我们帮助他们提高工作流程的速度,我们很乐意报告该象限的一些主要活动。🚀🌃🌠宣布 GitKraken v7.6
https://www.youtube.com/embed/9McQt-Rr2ZE?feature=oembed
视频
GitHub 拉取请求视图🚀
你不再需要离开桥 GitKraken 来处理你的 GitHub Pull 请求。您可以在新的 PR 视图中创建、编辑、合并和关闭请求!
GitKraken 新的内置 GitHub Pull Request 视图通过消除上下文切换到 GitHub.com 的需要,增强了现有的 GitHub 集成,进一步提高了开发人员的工作效率。把注意力集中在你正在使用的管理代码的界面上。
直接从 GitKraken 与您的 GitHub pull 请求进行交互:
- 编辑提取请求标题、描述、审核者、受托人、里程碑和标签。
- 对拉取请求进行注释。
- 合并拉取请求。
- 通过留下评论、批准 PR 或请求更改来提交审核。
- 签出并测试拉请求分支。
- 从构建状态部分链接到 PR 的构建。
所有用户都可以在公共存储库上处理拉请求。
拥有 git kraken Pro T1 或 T2 企业 T3 计划的用户也可以使用私人托管的存储库。
针对公开回购的 GitHub 和 GitLab 问题跟踪🌠
无论你在 Starfleet plan tier 中的排名~~,所有用户现在都可以利用 GitHub 和 GitLab 上公共存储库的问题跟踪集成。创建和编辑问题,无需跳转到另一个平台。~~
了解更多关于 GitKraken 的与 GitHub 问题的整合或与 GitLab 问题的整合
减价内容的新外观🌅
我们从用户那里听说,我们使用降价风格的方式看起来不太好。因此,我们改进了样式,使问题详细信息视图和发行说明等内容更易于阅读。
旧的样式在左边,新的更容易阅读的样式在右边。
更加清晰的樱桃采摘🍒
GitKraken 现在只允许你在使用 cherry pick 时一次选择一个提交,我们的菜单在这点上有点误导。当您选择了多个提交时,您将不再在菜单中看到此选项。
不同视图的改进📜
大块差异视图中的滚动条已经得到了改进,因此它在任何情况下都是可选的。无论您的 hunk diff 视图有多大或多小,现在您都可以轻松地浏览您的数据。
就这么定了
无论哪种船长编程语言是你最喜欢的,我们都致力于帮助你改进你的开发工作流程。我们很高兴能帮助您简化流程,专注于您的使命并取得成功。
使用 GitKraken Git client for Windows、Mac 和 Linux 将您的开发速度设置为 Warp 7.6。
Set your dev speed to Warp 7.6 with the GitKraken Git client for Windows, Mac, & Linux.
GitKraken 转到 GUI v7.7:转到团队
准备好在全新的水平上与您的团队协作。
虽然 Git 在跟踪随时间的变化并让我们深入了解过去方面令人惊叹,但它在帮助您了解其他人当前正在做什么变化或谁被分配在任何给定项目的代码部分工作方面并不出色。无需切换应用程序,就能更好地了解团队中其他人正在积极工作的内容,这不是很好吗?我们完全同意!
宣布 GitKraken v7.7 。
https://www.youtube.com/embed/VoNrFyzeKkU?feature=oembed
视频
GitKraken 的新团队特性将使您团队的 Git 工作流程变得更加安全和透明。剧透警告:你将知道谁在哪个文件中工作,并在潜在的合并冲突发生之前得到警告!
为团队带来前所未有的收获
使用 Git 的一个最好的理由是,您可以在本地拥有您需要的所有代码,允许独立工作。这一基本原则允许任何规模的分布式团队在几天甚至几年的时间内就各种项目进行协作。使用 Git 的最大缺点之一是当你和你的队友在同一个文件中编辑了相同的行时,会遇到合并冲突,这种情况在你尝试 Git pull 之前可能不会发现。当这些冲突发生时,开发人员不得不从构建功能转向戴上他们的侦探帽,开始整理历史,以发现谁做了哪些改变,哪个版本的现实是最正确的。吉拉和其他项目跟踪软件可以有所帮助,如果团队预先知道哪些特定文件将被哪些票据所触动。但是实际上,这并不是软件开发的工作方式。我们需要的是一种方法,在我们到达 Git 合并冲突点之前,让众所周知的右手看到左手在做什么。
这也是 GitKraken 引入团队的原因。这是我们寻求将 Git 与团队协作工具结合使用的第一个重要步骤。我们设想这样一个世界,在这个世界中,全面的团队可见性赋予新型结对编程和指导以力量,同时极大地改进项目管理工作流程。我们很自豪地推出我们的最新产品,并对我们知道它能为您和您的同事做什么感到兴奋。让我们仔细看看新功能。
组织团队成员以获得更好的可视性
团队合作始于知道你在和谁合作。知道谁应该在一个里程碑上工作有助于整个组织更快和更透明地前进。
拥有 Pro 和企业云账户的 GitKraken 用户现在可以在他们的组织内创建和管理团队。从用户的简档设置中,用户现在可以看到所有关联组织的选项卡。从这个角度来看:
- 所有团队成员都可以查看组织中其他成员的列表,以及他们所属的任何团队中的成员。
- 管理员可以创建和管理团队。
- 管理员还可以邀请、删除或更改组织中成员的角色。
Git 团队协作功能
知道谁在团队中很棒,但是能够看到其他人在做什么才是真正的游戏改变者。现在,第一次,您可以对您的队友正在处理的分支,甚至是特定的文件有一个感觉。这将有助于在合并冲突出现之前就避免它们。
GitKraken 团队视图允许用户:
- 在左侧面板中查看团队成员列表。
- 查看团队成员当前正在处理的文件和分支。
- 避免合并冲突。如果您和另一个团队成员都修改了同一个文件,我们会用警告图标⚠️.提醒您
你在 GitKraken 与越多的团队成员合作,你获得的生产力收益就越多。当您知道谁在做什么,并且可以避免合并冲突时,您团队的 Git 工作流会变得更加安全!
按作者或团队过滤图表
当您执行代码审查或监控项目进度时,快速查看谁提交了哪些代码是非常有利的。使用新的图表过滤,只要您启用了 Author 列,用户现在就可以轻松地按团队和/或协作者过滤提交图表,以突出显示单个团队成员提交的工作。
新 Git 拉取请求过滤
与团队一起工作通常意味着分支,并最终要求项目的维护者引入您的变更。随着整个团队的贡献者发出拉请求,监视所有潜在的变化会很快变得势不可挡。有了新的 GitKraken pull 请求过滤,您可以快速找到问题的核心。
拉请求过滤装置:
默认情况下包括以下过滤器,以帮助用户关注最重要的 PRs:
- 我的拉取请求
- 所有拉取请求
有一些特定于某些主机提供商的选项,比如 GitHub pull 请求:
分配给我
- 等待我的审查
- 除了默认过滤器之外,用户还可以设置自定义过滤器。现在可以轻松搜索所有过滤后的拉取请求。
对于那些使用持续集成和部署管道的用户,新的状态图标现在将指示 CI/CD 构建状态,以及拉请求的请求状态,包括“所有检查通过”、“构建失败”和“检查通过但审查待定”。
In addition to the default filters, users can set up custom filters. And all filtered pull requests can now be easily searched.
直接从拉式请求视图复制
当审查和测试来自 PR 的代码时,可能需要在本地复制一个代码片段来进行测试。在这个版本中,我们允许您直接从 GitKraken 中的 pull request 视图进行复制,从而使这个过程变得更加简单。
Copy Directly from the Pull Request View
新的和改进的 GitHub 动作模板
GitHub 动作是将 CI/CD 和其他自动化功能构建到您的工作流程中的一种方式。越来越多的团队利用这些工作流来改进和定制他们的代码审查、分支管理和问题分类工作。随着 GitKraken 的新发布,我们正在改进和扩展内置模板,以帮助您更好地利用 GitHub 操作。
New and Improved GitHub Actions Templates
GitHub Actions are a way to build CI/CD and other automations into your workflow. A growing number of teams take advantage of these workflows to improve and customize their code reviews, branch management, and issue triaging work. With the new release of GitKraken, we are improving and expanding the built-in templates to help you better leverage GitHub Actions.
自动聚焦表单提交
对于许多开发人员来说,让手指离开键盘最多是一种不便。我们听到了你的声音并调整了我们的界面。现在,任何表单提交都将成为焦点,使得使用 tab 和 enter 键导航和提交更加方便。
Automatically Focused Form Submissions
团队合作让梦想成真🎉
我们很高兴推出 GitKraken 的这一版本,并将其视为我们所有人迈向更富有成效的未来的一步。正如一位伟大的思想家曾经说过的那样"个人对集体努力的承诺——这是团队工作、公司工作、社会工作、文明工作的基础。
使用适用于 Windows、Mac、& Linux 的GitKraken Git GUI7.7 版,让您的整个团队兴奋不已,并提高工作效率。
通过避免合并冲突来节省解决合并冲突的时间!GitKraken 的新团队功能会在两个团队成员处理同一个文件时通知您。
Get your whole team excited and more productive with v7.7 of the GitKraken Git GUI for Windows, Mac, & Linux.
Save time resolving merge conflicts by avoiding them all together! GitKraken’s new team features notifies you when two team members are working on the same file.
GitKraken Git 客户端 v8 - GitKraken CLI 预览和深度链接
在 GitKraken,我们知道每个开发人员都希望专注于交付最好的项目。花费时间和精力在工具之间切换,或者在钻研代码时努力保持专注,这些都是我们希望最小化的事情。这正是促使我们在 GitKraken v8.0 版本中引入令人难以置信的新功能集的原因!
https://www.youtube.com/embed/PrjLwxsivLg?feature=oembed
视频
免费下载 GitKraken 有史以来最强大的版本!
吉塔拉克 CLI 预览
Git 用户的世界通常是一个分裂的房子。在一个阵营中,开发人员严格生活在 Git 命令行中,不想离开,而另一方面,开发人员更喜欢图形用户界面或图形用户界面。多年来,这种分歧已经引起了很多争论,双方的争论也确实随着时间的推移而有所改善。GUI 体验的强大之处在于它的历史可视化和拖放功能,它与 Git CLI 不断发展的功能集并行发展。这实际上是一种非此即彼的情况,直到现在……
随着 GitKraken v8.0 的发布,我们前所未有地团结了 Git 用户,推出了 GitKraken CLI 预览版。现在,用户真的可以两全其美,从同一个 Git 客户端获得 Git 可视化的好处和 Git 命令行的全部功能。
具有实时同步可视化功能的 Git 终端
当新用户第一次打开 GitKraken 时,你会有两种选择:打开 GitKraken GUI 或者 GitKraken CLI。
现有用户只需点击顶部工具栏中的新终端选项卡。这将在一个新的终端标签中打开您的存储库,同时也打开传说中的 GitKraken 提交图。
通过 CLI 与您的本地开发环境进行交互,并且仍然可以获得 GitKraken 以其可视化而闻名的好处,比如丰富多彩的提交图、差异视图、历史和责任视图。
GitKraken CLI 用户可以使用 GitKraken gk
命令更快地深入项目历史。这个 CLI 程序为您提供了一种在 Git 终端的上下文中与 GitKraken 提交图以及 GitKraken 著名的其他 Git 可视化交互的方法。
命令:
gk graph
打开或关闭图形。- 添加
top
、bottom
、left
或right
改变位置。例如,gk graph right
将视图设置为分屏。
- 添加
gk diff
命令快速查看提交之间发生了什么变化。gk history
命令显示你的文件历史视图。- 显示文件或提交中发生了什么变化,以及是谁做出了这些变化。
您还可以通过打开Preferences
下的Terminal
设置来自定义您的 GitKraken CLI 体验。这允许以下终端选项卡自定义:
- 字体选择。对此设置的更改将仅适用于新的终端选项卡。
- 字体大小。
- 启用自动完成和自动建议。
- 打开新面板时默认的可视化面板位置:顶部、右侧、底部或左侧。
- 默认情况下显示可视化面板。这只在打开新标签页时适用。
- 终端主题。
自动建议和自动完成 Git 命令
没有比一个空白的 Git 终端窗口等待你输入非常具体的命令更可怕的 UI 了。不要害怕,只要开始在 GitKraken CLI 中输入,就会出现自动建议来帮助你完成你的 Git 命令!
对于gk
和git
命令都是如此。例如,当你开始输入一个git
命令时,你会看到:
没有比一个空白的 Git 终端窗口等待你输入非常具体的命令更可怕的 UI 了。不要害怕,只要开始在 GitKraken CLI 中输入,就会出现自动建议来帮助你完成你的 Git 命令!
对于gk
和git
命令都是如此。例如,当你开始输入一个git
命令时,你会看到:
您的新内置助手将帮助您在 Git CLI 的世界中导航。除了建议如何完成 Git 命令,auto-suggest 特性实际上还会提示您可以从每个操作中得到什么。它甚至可以在您需要应用参数时帮助建议和解释参数,如-a
或-M
。学习 Git 从未如此简单或直观!
您的新内置助手将帮助您在 Git CLI 的世界中导航。除了建议如何完成 Git 命令,auto-suggest 特性实际上还会提示您可以从每个操作中得到什么。它甚至可以在您需要应用参数时帮助建议和解释参数,如-a
或-M
。学习 Git 从未如此简单或直观!
免费获得有史以来最好的 Git 终端体验!
深度链接
当处理队列中的问题或 Git pull 请求时,开发人员需要能够轻松打开问题创建者引用的任何代码。你越快找到你需要处理的代码,你就能越快解决问题。
手动打开一个 Git 库并寻找一个特定的 Git 分支或 Git 标签需要时间,但这也需要稍微转移一下注意力,这可能会导致各种各样的分心。
GitKraken 致力于为团队改善 [Git 工作流程,以增强协作并提高生产率。这就是为什么我们一直在努力给你们带来 8.0 版本的深度链接。
你现在可以链接到一个特定的 Git 库,commit,branch,或者 tag,并在你的 issues,pull requests,Slack,email,或者任何交流平台上分享那个链接。当有人点击这个链接时,它会自动打开 GitKraken 到确切的存储库,并将视图聚焦在特定的提交、分支或指定的标签上。](http://gitkraken.com/teams)
让我们看一个在 GitKraken 中使用分支深度链接的深度链接示例:
GitKraken 致力于为团队改善 [Git 工作流程,以增强协作并提高生产率。这就是为什么我们一直在努力给你们带来 8.0 版本的深度链接。
你现在可以链接到一个特定的 Git 库,commit,branch,或者 tag,并在你的 issues,pull requests,Slack,email,或者任何交流平台上分享那个链接。当有人点击这个链接时,它会自动打开 GitKraken 到确切的存储库,并将视图聚焦在特定的提交、分支或指定的标签上。](http://gitkraken.com/teams)
让我们看一个在 GitKraken 中使用分支深度链接的深度链接示例:
命令面板
在 GitKraken v8.0 中,模糊查找器已被重命名为命令面板,现在更容易被发现。这个功能可以节省大量的时间!将手指放在键盘上,键入Ctrl
/ Cmd
+ P
,或者点按工具栏中的新魔棒图标以打开命令调板。从这里,您可以快速执行各种 Git 操作。
命令面板
在 GitKraken v8.0 中,模糊查找器已被重命名为命令面板,现在更容易被发现。这个功能可以节省大量的时间!将手指放在键盘上,键入Ctrl
/ Cmd
+ P
,或者点按工具栏中的新魔棒图标以打开命令调板。从这里,您可以快速执行各种 Git 操作。
改进的标签页体验
利用我们强大的标签功能访问多个存储库。由于在标签栏中添加了一个新的下拉列表,现在导航变得更加容易。只需单击您想要返回的选项卡,您就可以回到您的工作流程中。所有标签现在都有工具提示,显示回购的名称和路径,让你更容易跟踪你在哪里。
改进的标签页体验
利用我们强大的标签功能访问多个存储库。由于在标签栏中添加了一个新的下拉列表,现在导航变得更加容易。只需单击您想要返回的选项卡,您就可以回到您的工作流程中。所有标签现在都有工具提示,显示回购的名称和路径,让你更容易跟踪你在哪里。
一个 Git 客户端来管理所有客户端
我们很自豪也很兴奋地发布 GitKraken 的下一步进化。我们希望有了 GitKraken CLI,命令行用户和 GUI 爱好者可以像以前一样走到一起,进行协作。
不管你是 Git 的新手,还是在人类时代之前就已经使用这个工具有一段时间了,你都会爱上 GitKraken 的 8.0 版,适用于 Windows、Mac、&Linux。
我们很自豪也很兴奋地发布 GitKraken 的下一步进化。我们希望有了 GitKraken CLI,命令行用户和 GUI 爱好者可以像以前一样走到一起,进行协作。
立即免费获取 GitKraken!这是一个 Git 客户端来管理它们。
立即免费获取 GitKraken!这是一个 Git 客户端来管理它们。
GitKraken V1.0 发布竞赛| Axosoft
原文:https://www.gitkraken.com/blog/gitkraken-version-1-launch-contest
Axosoft GitKraken 已经推出 1.0 版!我们非常兴奋地分享我们创建这个星球上最好的 Git 客户端的旅程。我们非常依赖我们的早期采用者,并听取了 Twitter 上的所有聊天(相信我们,我们听到了!)
为了表示我们的感谢,我们把我们的发布会变成了一场竞赛!从下面描述的 3 个类别中选择一个,就有机会为自己赢得一些现金和一些难以置信的奖品(dev 批准)。
看看这个视频,感受克拉肯的刺激:
https://www.youtube.com/embed/BtVC3-7yG90?feature=oembed
视频
不要在最后跳过竞赛规则,它们很重要。现在开始#GKContest!
1。写歌大战
你是一个冉冉升起的说唱艺人吗?一个崭露头角的歌手?有前途的流行歌星?还是你车里最成功的歌手?如果你是(即使你不是)让我们看看你有什么!按照你选择的风格写一首歌(可以是模仿的,也可以是完全原创的)!
老实说,我们有点偏爱说唱,所以如果你想专注于此,我们不会生气。
但是,不管你喜欢什么,我们希望你能为我们写一首关于北海巨妖的歌!以下是一些您可以使用的关键词:
- 克隆
- 推/拉
- 犯罪
- 遥控器
- 贮藏(大块)
- 树枝
- 重定…的基准
- 做出最佳选择
- GUI(“胶粘”)
- 命令行
这里有一些我们想出来的模仿歌曲。请随意使用这些作为灵感:
《像我是 Mergin》(《像处女》 )
- 《北海巨妖之舞》(《矮蛋之舞》)
- 《袖手旁观你的北海巨妖》(《袖手旁观你的男人》)
- “不要让你的宝宝长大成为克拉肯人”(“不要让你的宝宝长大成为牛仔”)
- “让我们开始吧”(“让我们开始吧”)
- 《推吧》(a la Salt n' Peppa)
- 《海底世界》(向迪士尼的《小美人鱼》致敬)
- “Under the Sea” (A homage to Disney’s “The Little Mermaid”)
显然,这些只是例子。我们希望看到和听到你的创造力,如果你有一点点成功,你就有机会获得大奖!
奖品:
3000 美元的蛤蜊(是的,3000 美元)
超甜耳机
- GitKraken T 恤,适用于您的整个乐队/团队(限 5 件)
- GitKraken 吉他拨片
- gitkraken stickers(限制 10)
- 方向:
- 录制你的歌曲,并上传到 YouTube 或 Soundcloud。
使用#GKContest 将链接发至我们@GitKraken。制作音乐视频或上传音频完全由你决定。
截止日期:
- 2016 年 4 月 15 日晚 11 点 59 分(亚利桑那州时间)
- Tweet the link to us @GitKraken using #GKContest. The decision to create a music video or just upload audio is completely up to you.
评估标准:
参与度**最高的 Krakenest*提交获胜!你可以与尽可能多的人分享你的视频或歌曲,以增加你获得的“喜欢”和“分享”的数量。
11:59PM (Arizona time) on April 15, 2016
2。视频游戏摔倒
谁不爱电子游戏?向我们展示你的开发技能,制作一个以 GitKraken 为主题的游戏。吉特克拉西安?克拉科曼?克拉肯孔?超级北海巨妖战斗机?克莱蒙?你明白了。
允许使用框架/库来帮助加速您的开发,只要您完全按照它们各自的许可使用它们。
Phaser 是一个非常棒的用于游戏开发的开源 HTML5 画布和 javascript 库。你可能想把它作为一个起点。
让北海巨妖给你灵感,把你的游戏发给我们。你可以赢得令人敬畏的奖品!
奖品:
1500 美金的大钞(对,就是美金。)
Playstation 4(价值约 350 美元)
Razer BlackWidow Chroma Clicky 机械游戏键盘(价值约 160 美元)
1 件 gitkraken 恤衫
5 个 gitkraken stickers
- 方向:
- 利用北海巨妖提出一个强有力的概念。
- 如果您想使用北海巨妖资产,请下载它们。(不需要)
- 创建您的游戏,并将其发布在一个链接上,人们可以玩它。重要的是你的游戏可以在没有任何插件的情况下在浏览器中运行。像 canvas 这样的新网络技术很棒——flash 则不然。
- 使用#GKContest 将您的链接推送给我们@GitKraken。
截止日期:
2016 年 4 月 15 日晚 11 点 59 分(亚利桑那州时间)
- Come up with a strong concept using the Kraken.
- 评估标准:
- 参与度*最高的提交作品获胜!你可以与尽可能多的人分享你的游戏,以增加你获得的“喜欢”和“分享”的数量。
- Tweet your link to us @GitKraken using #GKContest.
3。北海巨妖奥拉玛设计挑战赛
现在,你可能已经熟悉了我们的北海巨妖标志。然而,不确定你是否注意到北海巨妖有一个非常百搭的衣柜:
你有灵感设计自己的北海巨妖了吗?来吧,你可以赢得这些令人敬畏的奖品!
奖品:
750 美元(如果你不知道的话,这是美元)
印有你定制的北海巨妖图案的 t 恤
GitKraken 的信使在后面
5 个 gitkraken stickers
方向:
想出一个使用 GitKraken 标志的概念(此处下载
使用你娴熟的设计技巧创建一个. jpg 或。png
使用#GKContest 将图片推送给我们@GitKraken。
- 截止日期:
- 2016 年 4 月 15 日晚 11 点 59 分(亚利桑那州时间)
- 规则:
- 所有参赛作品必须在 2016 年 4 月 15 日晚上 11:59(亚利桑那州时间)之前通过 Twitter 使用@GitKraken 和#GKContest 发送。所有其他提交的材料将而不是被考虑。原创很重要;禁止借用或窃取他人的作品。
参赛者可以参加多个类别的比赛;但是,你只能赢得一个类别。
***** Axosoft 将考虑您提交的与 GitKraken 的相关性和总体适当性。任何因偏见、不良语言、露骨的性内容、仇恨言论等原因而被视为不适当的作品。不予考虑。保持优雅,德夫斯。
- *** *参与度**将根据以下因素的组合进行计算:您提交的推文上的收藏夹(心)、您提交的推文的转发,以及(如果适用)您的 YouTube 视频上的赞(竖起大拇指)或您的 Soundcloud 文件上的收藏夹(心)。
- 所有参与度*指标组合最高的一份作品将被视为三(3)个类别(歌曲/视频、游戏、徽标)中每个类别的获胜者,总共三(3)个竞赛获胜者。
- 将于 2016 年 4 月 15 日晚上 11:59(亚利桑那州时间)计算分数并选出获奖者。获奖者名单将于 2016 年 4 月 18 日公布。
Deadline:
11:59PM (Arizona time) on April 15, 2016
The Rules:
All submissions must be sent through Twitter using @GitKraken and #GKContest by 11:59PM (Arizona time) on April 15, 2016. All other submissions will **not **be considered. Originality is very important; no borrowing or stealing others’ work.
Contestants may enter the contest in multiple categories; however, you can only win for one category.
*****Axosoft will consider your submission for relevance to GitKraken and general appropriateness. Any work deemed inappropriate for reasons including but not exclusive to bigotry, bad language, sexually explicit content, hate speech, etc. will not be considered. Keep it classy, devs.
****Engagement **will be calculated as a combination of the following: favorites (hearts) on your Tweet submission, retweets of your tweet submission, and if applicable, likes (thumbs up) on your YouTube video OR favorites (hearts) on your Soundcloud file.
One submission with the highest combination of all engagement* metrics will be deemed the winner for each of the three (3) categories (song/video, game, logo), for a total of three (3) contest winners.
Scores will be calculated and winners will be selected at 11:59PM (Arizona time) on April 15, 2016. Winners will be announced on April 18, 2016.
Fork vs GitKraken |下载适用于 Windows、Mac 和 Linux 的 GitKraken
为了提供我们的工具与市场上其他 Git 客户端的全面比较,我们研究了 GitKraken 如何与一些强大的竞争对手竞争:
现在,我们要告诉你 GitKraken 和 Fork 的区别。剧透:GitKraken 的表现也超过了这个竞争对手!
fork vs git krak
在我们开始进行特性比较之前,Fork 开发人员应该得到大力支持。👏👏来自捷克共和国的丈夫和妻子团队 Dan 和 Tanya 开始在业余时间制作 Fork。他们最近开始全职开发该工具,并首次在 2020 年初提供付费许可证。
对 Fork 的投入是显而易见的,对用户反馈的关注也是令人惊讶的。作为一个同样受用户满意度驱动的开发团队,我们当然能够理解这种对新特性和改进的优先级排序。
那么,GitKraken 或 Fork 问题的正确答案是什么?让我们深入了解一下使 GitKraken 成为市场上最受欢迎的 Git GUI 的特性和功能。
很明显,对于大型组织和在项目上合作的个人开发者,GitKraken 提供了更健壮的特性和对拉请求、跨平台一致性、撤销/重做、培训材料等的支持。
在应用内创建拉取请求
去吧去吧
拉请求是协作开发的标准最佳实践,在开源软件中很常见。简而言之,当贡献者请求 repo 维护者查看并批准他们希望合并到项目中的代码时,就会出现 pull 请求。
GitKraken 通过 GitHub & GitHub Enterprise、GitLab & GitLab Self-Hosted、Bitbucket & Bitbucket Server 和 Azure DevOps hosted repositories 支持 pull 请求。
当您准备好在 GitKraken 中提交代码变更以供批准时,只需将您的特性分支从中央提交图拖放到左侧面板中主存储库的目标分支上,就可以从下拉菜单中触发 pull request 选项。
GitKraken 更进一步支持 pull 请求模板,它允许贡献者在提交 pull 请求时添加有价值的上下文,比如 bug 是如何修复的,单元测试用例等等。一些存储库甚至要求使用正式的模板来提交提议的变更。
了解关于使用模板增强拉式请求描述的更多信息。
当涉及到拉请求时,使用 Fork 的开发人员的功能非常有限。虽然 Fork 用户可以从应用程序在 GitHub 上创建 pull 请求,但这是 PR 魔法的终点。您不能从 Fork 实际创建一个 pull 请求,只能将相关信息发送到 GitHub,在那里您可以查看 PR。
除了能够在 GitKraken 中直接创建 pull 请求之外,GitKraken 还可以使用定制的模板突出显示哪些分支包含活动的 PRs(在图中的分支上有图标)。我们还让您只需点击一个按钮,就可以非常轻松地在您的托管服务中直接打开您的拉取请求。
Fork 没有让您能够在 GitHub 上点击查看 pull 请求,也没有指出哪些分支有活动的 PRs。
如果您在使用 Fork 和 GitLab 或 Bitbucket repos 来处理拉取请求,那么您似乎不太走运。GitKraken 允许用户在 GitHub、GitLab、Bitbucket 和 Azure DevOps 上创建拉取请求和点击查看 PRs。Fork 只支持 GitHub 的这个功能。
Linux 支持
去吧去吧
GitKraken 很自豪能够为那些经常被忽视的 Linux 开发者提供支持。GitKraken 也有 Mac 和 Windows 版本。
相比之下,Fork 不能在 Linux 上使用。
Azure DevOps 集成
去吧去吧
GitKraken Git 客户端与 Azure DevOps 以及 GitHub 、 GitLab 、 Bitbucket 、GitHub Enterprise、GitLab Self-Managed 和 Bitbucket Server 集成。
Fork 不与 Azure DevOps 集成。
跨平台一致性
去吧去吧
GitKraken 开发结构允许我们在所有操作系统上提供令人愉快且一致的用户体验:Mac、Windows 和 Linux。
这在许多方面都是有价值的,但跨平台一致性给产品所有者和企业团队带来的一个巨大好处是,单个开发人员在项目协作时能够使用他们选择的操作系统。为你的开发人员提供他们想要的编码环境和工具将会带来更快乐和更高效的员工。
同时为多个操作系统开发一个应用程序更具可持续性,并允许 GitKraken 团队开发和发布新功能,以更加一致的方式取悦我们所有的用户。
相比之下,Fork 只适用于 Mac 和 Windows,开发了两个不同版本的应用程序,在不同的时间发布不同的功能。如果你的同事在 Windows 上没有你在 Mac 上可以使用的功能,这就给协作带来了挑战。
退回/重做按钮
去吧去吧
到目前为止,GitKraken Git GUI 最受欢迎的特性之一是我们神奇的撤销/重做按钮。字面上允许您回到过去并撤销一个严重的错误,比如意外重置分支并丢失多个提交。😱
如果你曾经希望可以通过点击一个按钮来撤销 Git 操作,那么你很幸运拥有 GitKraken。我们的Undo
按钮允许用户撤销以下操作:
- 检验
- 犯罪
- 抛弃
- 删除分支
- 移除遥控器
- 重置分支以提交
同样,如果您误操作,所有这些操作都可以使用Redo
按钮重做。
Fork 没有提供同等的功能。虽然您可以在 Fork 中使用 reflog“显示丢失的提交”,但这是您的时间旅行能力的终点。放弃更改、删除或重置分支、移除遥控器等操作无法返回撤消。就像你能对付 GitKraken 一样。
Fork does not offer an equivalent feature. While you’re able to “show lost commits” with reflog in Fork, that’s where your time travel abilities end. You cannot go back to undo discarding changes, deleting or resetting branches, removing remotes, etc. as you can with GitKraken.
问题跟踪集成
去吧去吧
开发人员总是在寻找进一步优化工作流程的方法;他们如何在最短的时间内完成最多的工作。实现这一点的最简单方法之一是减少上下文切换,这通常通过集成来实现。
GitKraken Git GUI 是市场上唯一一个提供与最常用的问题跟踪工具的健壮集成的 Git 客户端。
GitKraken Git GUI 集成了以下问题跟踪器:
The GitKraken Git GUI integrates with the following issue trackers:
使用上述工具管理问题的用户可以直接从 GitKraken Git GUI 完成以下操作:查看、过滤和编辑问题/卡片,创建与问题/卡片相关的分支,以及创建新的问题/卡片。
相比之下,Fork 没有集成这些流行的问题跟踪工具。
Fork, by comparison, does not integrate with these popular issue tracking tools.
企业账户管理
去吧去吧
GitKraken 团队对我们的产品进行了重大而周到的更新,以更好地为需要增强安全性的企业团队和组织提供支持。领导层可以从我们的独立或自托管许可证选项中进行选择,以满足他们的特定需求。
GitKraken self-hosted 提供的用户和许可证管理和 LDAP 集成使团队能够完全控制他们的 GitKraken 帐户,从而可以轻松地将个人许可证转移给新的团队成员,并定制访问要求。
Fork 不提供其软件的任何自托管或独立版本,也不提供团队帐户管理或增强的安全选项。
Fork does not offer any self-hosted or stand-alone versions of their software, and does not offer team account management or enhanced security options.
入职& Git 培训材料
去吧去吧
当引入一个新工具时,让你的开发团队加入进来可能是一个挑战。毕竟,很少有人喜欢改变。成功采用您的团队最大化生产力所需的工具——也就是从命令行转移到 Git 客户端——将取决于您的开发人员对该工具潜力的理解程度。对于现代开发团队来说,全面理解从基础到高级的 Git 概念也很关键。
When introducing a new tool, onboarding your development team can be challenging. Few people like change, after all. Successfully adopting the tools your team needs to maximize productivity—AKA moving from the command line to a Git client—will depend on how well your devs understand the tool’s potential. For modern development teams, it’s also critical to maintain a comprehensive understanding of basic to advanced Git concepts.
进一步了解您的工具和开发标准如何影响您组织的 DevOps 成功。
营销和内容团队可能带来的好处之一是能够制作高质量的培训和教育资源,以帮助 GitKraken 新用户,并确保现有用户继续从他们的体验中获得最大收益。
GitKraken 支持网站是一个宝库,里面有产品视频和提示、技术文档、功能亮点,以及我们的粉丝最喜欢的发行说明。
此外,用户可以订阅 GitKraken YouTube 频道以免费访问我们的 Git 教育视频库、GitHub、GitLab、Bitbucket 和 Azure DevOps 使用 GitKraken 的教程、白板会议等。
Plus, users can subscribe to the GitKraken YouTube channel to get access to our library of Git educational videos, tutorials for using GitKraken with GitHub, GitLab, Bitbucket, and Azure DevOps, whiteboard sessions, and more for free.
通过我们的一系列初级、中级和高级 Git 教程视频,提升您团队的 Git 技能。
虽然 Fork 确实提供了一个博客来提供关于特定功能的更多信息,但如果不浏览发行说明或分析博客文章,很难找到您正在寻找的确切信息,例如如何充分利用特定功能。Fork 网站没有内置搜索功能,所以用户无法快速访问他们想要的内容。
另一方面,GitKraken 用户可以搜索我们的支持网站和开发博客来寻找关于特定功能、集成信息、培训资料、产品备忘单等的帮助。
让这些资源随时可用将在新团队成员入职时产生巨大的影响,并将帮助您的开发人员对他们正在使用的工具更有信心,最终使他们更有效率,更快乐。
Having these resources readily available will make an enormous difference when onboarding new team members and will help your developers feel more confident with the tools they’re using, ultimately making them more productive and happier long-term.
准备好切换到 GitKraken 了吗?
GitKraken 在竞争中脱颖而出,包括 Fork。你自己试试吧!
GitKraken outshines the competition, including Fork. Try it for yourself!
去可乐 vs 去饼干\去 GUI 复习
之前,我们已经将 GitKraken Git GUI 与一些有价值的 Git 客户端竞争对手进行了比较,包括 Sourcetree 、 SmartGit 和 Git Tower 等等。虽然每种工具都有其优点,但 GitKraken 总是名列前茅。
但这是什么?一个新的挑战者出现了: Git 可乐,“高咖啡因的 Git GUI”。让我们来看看这些工具是如何进行比较的。
比较一下可乐 vs gitkraken】
Git 可乐是什么?
Git Cola 是一个创建于 2007 年的开源项目。它由 David Aguilar 编写和维护,最初是为 Linux 构建的,但后来被移植到 BSD、macOS 和 Windows。Git Cola 是用 python 编写的,是一个强大的工具,拥有做好工作的所有基本功能。事实上,如果有一些不太可能的情况,开发人员发现他们不能运行 electronic(Git kraken 就是在这种情况下构建的),这将是一个可靠的 Git 客户端选择。
然而,GitKraken 可以做 Git Cola 可以做的事情,甚至更多。GitKraken 强大的功能与出色的视觉呈现相结合,在从分行结帐到应用内文件管理的 Git 流程中显而易见,使 GitKraken 成为一个难以击败的竞争对手。老实说,我们的吉祥物凯夫北海巨妖是最好的。
GitKraken vs Git Cola:下载安装流程
去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧
下载安装 GitKraken 简单直观。整个下载过程大约需要 2 分钟。用户所要做的就是:
- 从 GitKraken 的网站选择下载
- 将文件从下载移动到应用程序
另一方面,Git 可乐需要大约 6-8 分钟来下载。要完成多步下载过程,用户必须执行以下操作:
从 Git Cola 的网站选择“Download”,打开 README.md 文件,然后下载“Homebrew”,这是一个第三方服务,它将自己描述为“macOS(或 Linux)的 Missing Package Manager”,通过从 READ.me 复制和粘贴来克隆 git-cola,使用 README.md 中的代码再次构建 git-cola.app 应用程序包,最后,将其复制到/Applications。😰你累了吗?
无论是便利性还是速度,GitKraken 都占了上风。我们认识到开发人员没有时间,也不想在多个窗口之间导航,为每个下载步骤来回复制和粘贴代码。
GitKraken vs Git Cola:用标签访问多个回购
去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧
我们之前简单地提到过,但是值得一提的是 Git Cola 要求用户为几乎每个动作打开一个全新的窗口。需要新的窗口来查看图形、文件浏览器和访问 branch diff 视图。
GitKraken 展示了另一种优化的用户体验,它将不同的页面干净地分类为易于导航的选项卡。您可以添加新的标签,拖放重新安排,并删除顶栏中的标签。还可以使用 Windows/Linux 上对应的快捷键cmd+1-9
和 Mac 上对应的快捷键cmd+1-9
在存储库之间快速切换。
GitKraken vs Git Cola:检查 Git 分支
去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧
试图检查一个 Git 分支?GitKraken 使检查分支机构速度超快。只需双击分行名称,系统就会自动为您检查出来。
Git Cola 虽然类似,但是需要用户右击选择Checkout
。虽然我们认识到这对于右击然后选择来说不是很大的不便,但它确实需要更多的时间,这证明了 GitKraken Git GUI 是一个针对有限细节的优化工具。
GitKraken 易于阅读的提交图将帮助您可视化您的项目历史,并以前所未有的速度执行日常操作,如检查分支。获得更好的工作流程。⬇️
git krak vs go 可乐:去 Diff Controls
去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧
GitKraken 的内置 Diff 工具是我们用户最喜欢的功能之一,让您能够快速查看文件中添加或删除了什么。GitKraken 的 Diff 工具允许用户轻松地在大块、内嵌和分割视图之间切换,只需点击一下。
在 Git Cola 上查看 Git Diff 是一种不同的体验。Git Cola 用户可以使用 Git Cola 窗口定制功能来更改他们的 Diff 视图的大小,但是仅限于大块视图格式。
GitKraken vs Git Cola:提交图
去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧
在 Git Cola 中查看提交图需要用户打开一个全新的窗口。Git Cola 使用 DAG(有向无环图)以图形形式查看分支。分支名称和 diff 上的信息可从图表中单独查看。从本质上讲,Git Cola 要求用户将来自不同字段的信息拼凑在一起,以便完整地解释他们的图表。
GitKraken 的图形正好在界面的中央,使得分支、提交和项目作为一个整体可视化变得容易。GitKraken 的图表还显示了提交消息,使团队协作和单独浏览项目变得无缝和容易。
GitKraken vs Git Cola:实时更新
去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧
你现在在想呼吸吗?当然不是。你没有想到呼吸,因为它是你身体过程中如此自然的一部分,它只是在后台发生的事情。
现在考虑一下:当您使用 Git GUI 时,您希望多久刷新一次它?不经常。现在是 21 世纪,事情应该实时更新。GitKraken 的界面会不断更新您所做的更改和提交。另一方面,Git Cola 需要键盘快捷键⌘ + R
或者选择File
- > Refresh
来刷新你的 Git 数据。
git krak vs go 可乐:退回/重做按钮
去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧
Git Cola 增加了“修改或撤销上次提交”的选项。撤销提交的能力是一个超级方便的特性,他们值得大力支持将它作为一个选项。
然而,Git Cola 的撤销功能仅限于提交,而 GitKraken 的撤销按钮允许用户撤销以下所有操作:
撤销你希望没有做过的事情?不要害怕,如果你不小心取消了动作,GitKraken 可以重做。撤销/重做上述所有操作的能力让 GitKraken 多年来与其他 Git GUIs 区别开来。当比较 Git Cola 和 GitKraken 在这方面的功能时,很明显 GitKraken 占了上风。你不能在 Git Cola 中重做你已经做过的任何事情。
GitKraken vs Git Cola:问题跟踪
去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧
GitKraken Git GUI 集成了以下问题跟踪器:
- 吉拉云和服务器问题
- 吉卡拉基板
- 特雷利乌
- GitLab 问题和 GitLab 自我管理的问题
- GitHub 问题和 GitHub 企业问题
GitKraken 用户不仅可以查看、过滤和编辑问题/卡,创建与问题/卡相关的分支,并使用这些集成创建新的问题/卡,而且他们可以通过 Git GUI 本身完成所有这些工作,而不必导航到他们的问题跟踪工具。
相比之下,Git Cola 没有集成这些流行的问题跟踪工具。
GitKraken vs Git 可乐:拖拽
去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧
GitKraken 用户可以使用拖放功能来执行 Git 合并、 Git 交互式 rebase ,甚至将特定的分支推送到您选择的远程存储库,只需将分支移动到中央图上您想要的位置即可。
Git Cola 的拖放功能的开始和结束都依赖于它只将暂存文件的本地路径拖到 Git commit 消息中的能力。就是这样。
GitKraken vs Git Cola:登录 Google 或 GitHub
去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧
Git Cola 正在执行安装在本地机器上的 Git。因为它只是针对 CLI 执行 Git 命令,所以它依赖于本地的 Git 配置。虽然为用户名和密码设置全局配置很容易,但是管理多个角色是一个脆弱而棘手的过程,尤其是在开发人员管理个人、业务和其他角色来管理跨组织项目的情况下。这让开发人员自己承担管理所有后勤开销的责任,而 Git Cola 对此毫无帮助。
GitKraken 的 Pro 版本拥有针对 GitHub、GitLab、Bitbucket、Azure DevOps 和 Google 的 OAuth,即开放授权,允许您快速无缝地登录多个存储库。
GitKraken vs Git Cola:企业特色
去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧去吧
像许多开源项目一样,Git Cola 可以免费使用,并受益于强大的开源社区。这也意味着 Git Cola 没有 GitKraken 提供的内置企业支持。这使得很难找到解决问题的单一事实来源,这对于更大的团队和项目来说是致命的。
虽然 GitKraken 可以在公共存储库上完全免费使用,但许多客户选择 GitKraken 是因为我们提供直接访问我们专业支持的企业许可。拥有这些资源意味着你可以在一个组织内添加用户、分配角色和创建团队,更不用说你可以直接联系到在幕后构建 GitKraken 的开发团队。此外,你还可以访问 GitKraken Learn Git 教育图书馆,那里有丰富的培训资源,可以让新开发人员轻松学习 Git。
去可乐 vs 去卡拉基
Git Cola 可能就像它声称的那样“含有大量咖啡因”,但是,正如我们已经展示的, GitKraken Git GUI 在提交和分支可视化、撤销 Git 错误、问题跟踪和其他集成、团队功能和持续支持资源方面更胜一筹。如果我们把它们都放在外面,水对你更好。😉
亲自尝试 GitKraken,打造自己的观点!下载、安装和连接您的回购程序的过程将需要不到 5 分钟!不相信我们?你自己试试。
GitKraken 与 Git 扩展|查看 Git 客户端的比较
原文:https://www.gitkraken.com/compare/gitkraken-vs-git-extensions
有时候,选择正确的工具来解决具有挑战性的问题与首先知道如何解决它们一样重要。开发者工具应该满足个人和团队复杂且不断增长的需求,当然这也适用于 Git 工具。
如果您还没有使用 Git 客户端来帮助您可视化和管理您的存储库,您可能需要考虑一些工具的相关好处,如 GitKraken 客户端,它提供了预测合并冲突检测和解决,一次分组和克隆多个回购的能力,拉请求管理,等等。
如果您正在评估在 GitKraken 客户端和 Git 扩展之间使用哪个 Git 客户端,那么您来对地方了。本文将引导您了解 GitKraken 与 Git 扩展之间的主要区别,帮助您决定哪种 Git GUI 适合您。
比较 Git 扩展和 GitKraken 客户端
GitKraken Client 是同类工具中唯一提供 Git 增强的终端和 GUI 的工具,让开发人员可以随心所欲地工作。
支持 Mac 和 Linux
GitKraken 客户端✅ | Git 扩展❌
GitKraken 客户端目前支持在所有流行的操作系统上本地执行该应用程序,包括:Windows、MacOS 和各种 Linux 发行版,如 Ubuntu、Debian 或 RHEL,仅举几例。
另一方面,Git 扩展在 MacOS 或 Linux 系统上没有本地支持,并且平台的维护目前只集中在 Windows OS 上。如果你想在 Mac 或 Linux 上运行 Git 扩展,你将需要使用 Mono,并且你将无法运行该软件的最新版本(通过 Mono,Mac/Linux 仅支持 v2.5 或更旧版本)。
用户界面元素
GitKraken 客户端👍Git 扩展👎
GitKraken Client 的团队投入巨资为 Git 创建了一个用户界面,它对于高级用户来说足够强大,对于完全的初学者来说足够直观。这个漂亮的设计只是已经健壮且功能丰富的 Git 客户端上的一颗樱桃。
GitKraken Client 中精心设计的提交图让您一眼就能清楚地了解您的 Git 存储库结构:分支、提交、作者、提交消息、日期/时间、远程存储库、标签、问题、团队成员活动等等都整齐地组织到一个简单的 UI 中。这使得开发人员能够轻松地访问他们需要的特性,并在他们不需要时隐藏它们。
用户可以通过顶部工具栏、拖放操作与他们的存储库进行交互,通过命令面板输入 Git 命令,甚至可以在终端使用提交图作为参考点,使用 GitKraken CLI 进行工作。
如果你正在合作一个项目,头像就像一个视觉标记,让你知道谁在什么时候提交了修改。分支标签上的图标显示它们属于哪个遥控器和 PRs。如果您需要与特定提交相关的更多信息,您只需单击图表中的提交即可显示提交细节的详细视图,例如右侧面板中的 Git 提交消息。
Git 扩展还为用户提供了一个提交图形视图和一个可定制的垂直分割面板,其中包含所选提交的详细信息和视图,如提交消息、差异或错误。
Git 扩展中的 UI 有点混乱不堪,有些用户报告说,由于任何时候都会显示大量的信息,它“妨碍了他们的工作流程”。
连接到托管的 Git 存储库
GitKraken 客户端👍Git 扩展👎
Git Extensions 要求用户使用 PuTTy 之类的工具手动生成一个 SSH 密钥,它允许您将密钥保存到系统上的一个文本文件中,以便连接到 GitHub 上的托管存储库。这也需要您手动将公钥添加到 GitHub 配置文件中。
GitKraken 客户端让这个过程变得简单快捷,只需点击一个按钮,你就可以连接你的 GitHub 、 GitLab 、 Bitbucket 和 Azure DevOps 账户。您可以轻松生成一个公私密钥,该密钥将直接从 GitKraken 客户端自动链接到您的帐户。
GitKraken 客户端不仅兼容前面提到的所有最流行的托管版本控制系统,还兼容自托管和企业托管服务,如 GitHub Enterprise、GitLab 自托管、Bitbucket Server 和 Azure DevOps。
虽然 Git 扩展也允许您克隆和使用托管存储库,但是对于初学者来说,设置过程要困难得多,也更加繁琐。
管理多个档案
GitKraken 客户端✅ | Git 扩展❌
如果您有与非工作 Git repos 相关联的个人项目,您可以通过创建多个概要文件轻松地将它们从 GitKraken 客户端中的工作存储库中分离出来。这对于在一个托管服务上拥有多个账户的开发者和团队来说也是有益的。
单独的配置文件存储不同的应用程序首选项和 Git 配置设置,这使得切换上下文和控制 Git 客户端如何与您合作变得更加容易,反之亦然。
另一方面,Git 扩展不提供创建多个概要文件的能力。
命令面板
GitKraken 客户端✅ | Git 扩展❌
GitKraken 客户端为开发人员提供了一种简单而强大的方法,可以使用命令面板快速执行 Git 命令。
用户可以简单地开始输入以执行命令,如打开 repo、查看文件历史、打开 GitKraken 设置等等。
Git 扩展没有提供命令面板。
团队回购管理工作区
GitKraken 客户端✅ | Git 扩展❌
如果你在一个团队中工作或者每天与人合作,GitKraken Client 为用户提供了创建工作空间的能力。该功能使用户能够将 repos 分组在一起,并同时跨多个存储库采取行动。
在 GitKraken Client 中对存储库进行分组可以使团队的入职过程更加顺畅。当一个新的团队成员加入时,他们可以很容易地从同一个位置访问他们需要工作的所有存储库——非常方便!
工作区还提供了一次从所有或多个存储库中克隆或获取变更的能力,进一步提高了您的团队的工作流生产率。
跟踪指定工作区内所有存储库中的提取请求,过滤分配给您的请求,或者自动标记由于不活动而处于“危险”状态的请求。
虽然是为团队设计的,但工作区也可以由单独的开发人员使用,也是简化回购管理和组织的一种方式。
相比之下,Git 扩展不提供分组和共享多个回购的特性。
GitKraken Client 不断设计和实现更多的团队协作功能,如同时分组和共享多个 repos 的工作区。
团队视图和协作工具
GitKraken 客户端✅ | Git 扩展❌
GitKraken Client 提供了一系列基于团队的协作工具和功能,组织可以使用这些工具和功能来帮助最大限度地提高生产力和改善沟通。
如果你已经在 GitKraken 客户端建立了一个团队,你会在提交图旁边看到一个TEAMS
视图。在这里,您可以找到关于团队成员正在处理的存储库和文件的有价值的信息。
当两个团队成员同时处理同一个文件时,GitKraken 客户端会在团队视图中显示一个警告图标。这使您能够在潜在的合并冲突中保持领先,并在问题发生之前避免问题。
问题跟踪集成
GitKraken 客户端👍Git 扩展👎
GitKraken Client 通过集成最流行的问题跟踪器:吉拉、GitLab 问题和 GitHub 问题,为开发人员、项目经理和团队领导提供了跨平台高效工作的能力。
在设置了与 GitKraken 客户端的问题跟踪集成后,您将能够在左侧面板中看到您的问题的预览。通过单击某个问题,您可以编辑、添加受托人、添加评论等,而无需离开客户端。
此外,新问题可以直接在 GitKraken 客户端中创建,在那里它们将与问题跟踪器实时同步,帮助团队减少文档时间,使开发人员的生活更轻松。
当处理一个特定的问题时,GitKraken 客户端提供了从该问题创建一个新分支的选项,因此您可以直接处理需要您立即关注的任务。
Git 扩展在这方面非常有限,只提供了通过插件显示吉拉提交提示的选项。
Git 增强型终端
GitKraken 客户端✅ | Git 扩展❌
喜欢使用命令行而不是 GUI 的开发人员可以使用 GitKraken 客户端中的终端来执行 Git 操作。
GitKraken Client 以键盘优先、Git 增强的终端体验增加了传统的 CLI 体验。自动建议和自动完成命令和语法工具提示有助于提高工作流程速度,并且无需记忆复杂的 Git 命令。
除了您已经熟悉的 Git 命令,使用 GitKraken Client 的开发人员还可以通过***【GK】命令*** 访问一系列功能,让您可以访问终端旁边的不同视图,包括:提交图、比较、责任和历史视图。
相比之下,Git 扩展不提供终端接口,希望使用 CLI 执行 Git 命令的开发人员会退出应用程序。
Git 合并冲突解决
GitKraken 客户端👍Git 扩展👎
GitKraken 客户端为开发人员提供了解决合并冲突的能力,而无需移动外部工具,直接在应用程序内的专门视图中。当检测到合并冲突时,应用程序会向您发出警告,并指导您完成解决问题的步骤。
当检测到冲突时,您可以在右侧面板中点击受影响的文件,在 GitKraken 客户端中打开合并冲突视图。从这里,您可以决定想要保留哪些代码块或文件。在底部甚至有一个输出视图,这样你就可以确切地看到你的改变将如何影响文件。
如果您仍然喜欢在工作流程中使用外部工具,您仍然可以在 GitKraken 客户端中配置不同的默认合并冲突工具,方法是导航到Preferences
→ General
并在不同的可用选项之间进行选择:kdiff3、araxis、P4 merge…仅举几例。
Git 扩展还允许您配置外部工具来查看文件差异和解决合并冲突。您可以从流行的解决方案中进行选择,如:kdiff3、diffmerge、tortoisediff 等。该工具还为用户提供了在应用程序的合并冲突对话框中选择更改的能力。
1-点击撤销&重做
GitKraken 客户端👍Git 扩展👎
错误发生;这是生活的现实。幸运的是,如果您使用 GitKraken 客户端,由于 GUI 中的撤销/重做快捷方式很容易访问,Git 中的错误风险要小得多。
至于用户可以撤销/重做的操作,该列表涵盖了所有主要的 Git 操作,例如:签出、提交、放弃、删除分支、移除远程以及将分支重置为提交。
另一方面,Git 扩展只允许用户撤销最后一次提交。
Git 扩展 vs GitKraken 客户端
我们喜欢开源 Git 扩展社区用他们的项目开发的东西。然而,如果你是一名开发人员,在使用 Git 时寻求绝对最佳的用户体验,并且你意识到不断地在不同应用之间移动会如何影响你的速度和性能,那么是时候尝试一下 GitKraken 客户端了。
如果你是一个团队的一员,希望跨不同的存储库进行协作,通过像吉拉这样的问题跟踪器来跟踪 bug 和 epics,或者对他们的队友正在做的事情有详细的了解,你也将从 GitKraken Client 的面向团队的特性中受益匪浅。
GitKraken vs GitHub 桌面|哪个是最好的 GitHub GUI?
原文:https://www.gitkraken.com/compare/gitkraken-vs-github-desktop
根据 Jet Brains 最近的一份报告,超过 90%的开发人员使用 Git 来管理他们的代码。难怪有这么多工具被创造出来,通过图形用户界面(GUI)来帮助 Git 更容易使用。之前,我们已经将 GitKraken 与许多其他方法进行了比较,如 Sourcetree 、 TortoiseGit 或 Fork 。
今天,我们来看看 GitHub 桌面,看看它与 GitKraken 相比如何。
比较 GitHub 桌面与 GitKraken
“伙计,我很喜欢@GitKraken 的开发工作。将分支、更改、提交可视化,并能够通过一个漂亮的 GUI 处理我的整个 Git 流程,这真是太好了。”–@ btken
Git vs GitHub
对许多人来说,GitHub 是使用 Git 的同义词。对于初级开发人员来说,同时遇到这两种想法是很常见的,因此,可能会混淆您需要一个来使用另一个,或者甚至可能认为它们是同一个东西。
毫无疑问,你需要 Git——创建于 2005 年的开源版本控制工具——来使用 GitHub。但是你不需要 GitHub 来利用 Git。也就是说,GitHub.com是在全球范围内分发 Git 库的最流行的方式,数百万开发者使用该工具与其他人协作。我们不要忘记,协作是 Git 本身的创建目标之一。
毫无疑问,你需要 Git——创建于 2005 年的开源版本控制工具——来使用 GitHub。但是你不需要 GitHub 来利用 Git。也就是说,GitHub.com是在全球范围内分发 Git 库的最流行的方式,数百万开发者使用该工具与其他人协作。我们不要忘记,协作是 Git 本身的创建目标之一。
GitHub 桌面介绍
几年前,GitHub 团队意识到他们的许多初级用户在通过命令行学习 Git 和将代码推送到 GitHub 时遇到了问题。为了满足这一需求,他们在 2015 年推出了 Git GUI:GitHub Desktop。
2017 年,GitHub 对应用进行了重新设计,并作为开源项目发布,名为 GitHub Desktop 1.0 。让我们在该表扬的地方给予表扬;对于许多用户来说,GitHub Desktop 是 CLI 的巨大进步,尤其是对于那些以前从未接触过终端的用户。
但是在试图提供一个绕过 CLI 的路径时,GitHub Desktop 似乎接受了命令行的一些限制,尤其是在可视化版本历史和分支管理方面。对于最常见最简单的 Git 命令,比如 Git commit 、 Git branch 、 Git checkout 、 Git pull 、Git push 或者 Git merge ,GitHub Desktop 做得相当不错。但是就像 CLI 一样,一旦你开始处理多个分支、更复杂的工作流和更大的团队和项目,GitHub Desktop 要求你在工作时保持头脑中有组织的东西,并且在这些方面没有太大的帮助。
但是在试图提供一个绕过 CLI 的路径时,GitHub Desktop 似乎接受了命令行的一些限制,尤其是在可视化版本历史和分支管理方面。对于最常见最简单的 Git 命令,比如 Git commit 、 Git branch 、 Git checkout 、 Git pull 、Git push 或者 Git merge ,GitHub Desktop 做得相当不错。但是就像 CLI 一样,一旦你开始处理多个分支、更复杂的工作流和更大的团队和项目,GitHub Desktop 要求你在工作时保持头脑中有组织的东西,并且在这些方面没有太大的帮助。
github desktop和 GitHub Desktop
GitKraken Git GUI 于 2015 年与 GitHub Desktop 同年首次发布,但侧重点不同。GitKraken 不仅仅是 Git 初学者的一个简单选择,它诞生于我们内部开发团队的需求,他们正在寻找一种更好的方法来可视化 Git 并解决复杂的代码管理问题。正如 Hamid Shojaee 所说,Git kraken 的部分目标是“一种更好、更直观的方式来与 Git 交互,并查看交互历史。”
因为 GitKraken 是为团队设计的,所以它不仅仅是帮助用户将代码上传到 GitHub。
因为 GitKraken 是为团队设计的,所以它不仅仅是帮助用户将代码上传到 GitHub。
对于正在寻找以高级方式安全、轻松地使用 Git 的团队和成长中的组织来说,为了更好的生产率和透明度,GitKraken 的健壮特性显然是一个更好的标准。
对于正在寻找以高级方式安全、轻松地使用 Git 的团队和成长中的组织来说,为了更好的生产率和透明度,GitKraken 的健壮特性显然是一个更好的标准。
Read more about GitKraken for Teams
让我们一起来看看这两个工具,你可以自己决定在 GitKraken 和 GitHub 桌面的比较中哪个更胜一筹。
让我们一起来看看这两个工具,你可以自己决定在 GitKraken 和 GitHub 桌面的比较中哪个更胜一筹。
历史和分支的图形视图
GitKraken ✅ | GitHub 桌面❌
当你在 GitHub 桌面查看一个项目的历史时,你看到的是一个平面列表。它一次只能让您看到一个分支日志。
虽然从概念上讲,“ Git 存储库是一个巨大的图形”,GitHub Desktop 保持了与 CLI 相似的视觉风格。在这种情况下,该工具要求用户读取项目历史的列表视图,并在调查过去的提交时手动交换分支来遍历图形。
虽然从概念上讲,“ Git 存储库是一个巨大的图形”,GitHub Desktop 保持了与 CLI 相似的视觉风格。在这种情况下,该工具要求用户读取项目历史的列表视图,并在调查过去的提交时手动交换分支来遍历图形。
另一方面,GitKraken 是为了拥抱图形模型而构建的,使开发人员更容易理解项目的历史。当你在 GitKraken 中打开一个 Git 库时,你可以从干净且颜色协调的图形视图中看到项目跨分支的历史。
另一方面,GitKraken 是为了拥抱图形模型而构建的,使开发人员更容易理解项目的历史。当你在 GitKraken 中打开一个 Git 库时,你可以从干净且颜色协调的图形视图中看到项目跨分支的历史。
随着您的团队采用 GitKraken 并与之合作,您将享受到更多的生产力优势。团队中的每个人都将知道谁在做什么,甚至在 Git 合并冲突发生之前就避免它们!这种对您的项目和团队工作的前所未有的可见性会让您想知道,如果没有 GitKraken,您是如何管理代码和协作的。
随着您的团队采用 GitKraken 并与之合作,您将享受到更多的生产力优势。团队中的每个人都将知道谁在做什么,甚至在 Git 合并冲突发生之前就避免它们!这种对您的项目和团队工作的前所未有的可见性会让您想知道,如果没有 GitKraken,您是如何管理代码和协作的。
官方 Linux 支持
GitKraken ✅ | GitHub 桌面❌
GitHub 桌面文档声明:“GitHub 桌面支持以下操作系统。macOS 10.10 或更高版本,Windows 7 64 位或更高版本。必须有 64 位操作系统才能运行 GitHub Desktop。”然而,Linux 用户仍然可以找到让它工作的方法。
GitHub 桌面文档声明:“GitHub 桌面支持以下操作系统。macOS 10.10 或更高版本,Windows 7 64 位或更高版本。必须有 64 位操作系统才能运行 GitHub Desktop。”然而,Linux 用户仍然可以找到让它工作的方法。
作为一个开源项目,GitHub Desktop 确实有很多fork可以安装并运行在各种操作系统上。但这些都不是 GitHub 官方维护或支持的,任何问题都受制于其维护者的问题队列和资源限制。
作为市场上唯一真正的跨平台 Git GUIs 之一,GitKraken 很自豪地为最广泛采用的发行版提供官方 Linux 支持。在 GitKraken 文档中可以看到“GitKraken 目前支持 Ubuntu 16.04 LTS+,RHEL 7+,CentOS 7+,Fedora 30+”
作为市场上唯一真正的跨平台 Git GUIs 之一,GitKraken 很自豪地为最广泛采用的发行版提供官方 Linux 支持。在 GitKraken 文档中可以看到“GitKraken 目前支持 Ubuntu 16.04 LTS+,RHEL 7+,CentOS 7+,Fedora 30+”
跨平台团队一致性
GitKraken ✅ | GitHub 桌面❌
开发人员是一群固执己见的人;每个人都有自己喜欢的工具链和本地开发设置。有些人对 Linux 深信不疑,而有些人是 macOS 的铁杆粉丝,而 Windows 似乎永远受许多人的欢迎。虽然 Git 可以在任何操作系统上运行,但并非所有的 Git GUIs 或其他开发团队生产力工具都是如此。
简化您团队的工作流程意味着标准化一组最佳实践,包括使之成为可能的工具。GitKraken 努力做到与操作系统无关,并为所有开发人员提供一种更容易交流分支策略、管理 Git pull 请求和发布队列的方式,无论他们对桌面的偏好如何。随着我们的 Git teams 特性在 7.7.0 版本中的引入,用户可以更好地了解团队成员是如何协作的,甚至可以看到在提交文件之前谁在主动编辑哪些文件。💥
GitHub Desktop 可以帮助 Windows 和 Mac——以及非官方的 Linux——用户使用基本的 Git,但仅此而已。每个用户都有自己的设备来管理团队协调以及问题和拉式请求的可见性,就像他们使用 CLI 一样。
GitHub Desktop 可以帮助 Windows 和 Mac——以及非官方的 Linux——用户使用基本的 Git,但仅此而已。每个用户都有自己的设备来管理团队协调以及问题和拉式请求的可见性,就像他们使用 CLI 一样。
内置文本编辑器
GitKraken ✅ | GitHub 桌面❌
每个开发人员都有自己喜欢的 IDE,无论是 Visual Studio 代码、崇高文本、 Atom ,甚至是 Vim 。GitKraken Git GUI 和 GitHub 桌面都可以让你定义打开文件时使用的首选文本编辑器。然而,在很多情况下,在您的 Git 流中,能够直接在您的文件中进行更改是非常方便的。
当您需要在提交之前修复一个小的打字错误或其他小的更改时,或者当您正在处理一个 Git 合并冲突并意识到代码中需要其他东西时。简单地修复它的能力,而不是上下文切换回您的编辑器,可以节省时间,让您专注于手头的原始任务。
GitHub 桌面没有内置的编辑器,需要你切换回你的 IDE,打破你的工作流程节奏。起初这看起来没什么大不了的,但是我们中有多少人改变到一个新的窗口或标签页,然后马上分心去做另一个任务呢?保持你的注意力在同一个工具上会带来更好的结果。
GitKraken 集成了 Monaco 编辑器,与 VS 代码中的编辑器相同。在合并冲突期间进行较小的更正或额外的编辑不需要离开工具或当前工作流。如果你真的想的话,你甚至可以去 only 使用 GitKraken 来满足你所有的编辑需求。
GitKraken 集成了 Monaco 编辑器,与 VS 代码中的编辑器相同。在合并冲突期间进行较小的更正或额外的编辑不需要离开工具或当前工作流。如果你真的想的话,你甚至可以去 only 使用 GitKraken 来满足你所有的编辑需求。
本地文件管理
GitKraken ✅ | GitHub 桌面❌
大多数情况下,开发人员会通过他们的 IDE 或文件查看器来创建或删除文件,但是也有一些时候,您可能希望在 Git 工作流的中间动态地这样做。在命令行中,在工作流中执行rm
或touch
是相当简单的。鉴于此,令人惊讶的是 GitHub Desktop 没有提供任何文件操作选项。
另一方面,Git krakenGitGUI 允许用户通过快速点击鼠标右键来快速添加或删除文件。结合内置的编辑器,添加所需的文件,如.gitignore
或自述文件,根本不需要您改变视图。类似地,从项目中删除不需要的文件不需要切换应用程序,这有助于提高每个开发人员的工作效率。
另一方面,Git krakenGitGUI 允许用户通过快速点击鼠标右键来快速添加或删除文件。结合内置的编辑器,添加所需的文件,如.gitignore
或自述文件,根本不需要您改变视图。类似地,从项目中删除不需要的文件不需要切换应用程序,这有助于提高每个开发人员的工作效率。
合并冲突编辑器
GitKraken ✅ | GitHub 桌面❌
最终,每个使用 Git 的人都会遇到合并冲突。虽然完全避免它们会很棒,这也是 GitKraken 的新团队视图功能的目标之一,但事实是,有时它们会发生。当评估哪一个是最好的 Git GUI 时,工具如何帮助我们从这种状态中恢复是一个非常重要的方面。有很多第三方工具可以处理这些情况。GitKraken 允许您在设置中设置您首选的合并冲突解决工具,因此当合并冲突发生时,您可以轻松地打开它。使用 GitHub Desktop,您会得到一个弹出窗口,让您选择在 IDE 或命令行中打开,但只是提醒您可以在您最喜欢的工具中以纯文本消息的形式打开它。
最终,每个使用 Git 的人都会遇到合并冲突。虽然完全避免它们会很棒,这也是 GitKraken 的新团队视图功能的目标之一,但事实是,有时它们会发生。当评估哪一个是最好的 Git GUI 时,工具如何帮助我们从这种状态中恢复是一个非常重要的方面。有很多第三方工具可以处理这些情况。GitKraken 允许您在设置中设置您首选的合并冲突解决工具,因此当合并冲突发生时,您可以轻松地打开它。使用 GitHub Desktop,您会得到一个弹出窗口,让您选择在 IDE 或命令行中打开,但只是提醒您可以在您最喜欢的工具中以纯文本消息的形式打开它。
如果你关闭 GitHub 桌面的那个窗口,它会让你进入一个视图,让你选择哪些行要保留,哪些行要丢弃。虽然有一个并列视图(在撰写本文时目前处于测试阶段),但它利用默认的 CLI 方法来突出显示与“<<<<<<> > > > > > > > commit-id”符号的冲突,您需要手动选择或取消选择该符号。这些都导致了不太直观的体验。
如果你关闭 GitHub 桌面的那个窗口,它会让你进入一个视图,让你选择哪些行要保留,哪些行要丢弃。虽然有一个并列视图(在撰写本文时目前处于测试阶段),但它利用默认的 CLI 方法来突出显示与“<<<<<<> > > > > > > > commit-id”符号的冲突,您需要手动选择或取消选择该符号。这些都导致了不太直观的体验。
将该体验与 GitKraken 中内置的合并冲突解决工具进行比较。
将该体验与 GitKraken 中内置的合并冲突解决工具进行比较。
GitKraken 的合并冲突编辑器在 Pro 和 Enterprise 版本中可用,它是一个直观的界面,使编辑能够快速查看冲突代码行的并排比较,并选择他们想要使用的代码行,并在底部面板中预览最终更改。重要的是,成功的更改不是自动提交的,只是暂存的,因此如果您需要使用内置编辑器进行新的编辑,您可以在提交文件之前完成,而无需离开 UI。
GitKraken 的合并冲突编辑器在 Pro 和 Enterprise 版本中可用,它是一个直观的界面,使编辑能够快速查看冲突代码行的并排比较,并选择他们想要使用的代码行,并在底部面板中预览最终更改。重要的是,成功的更改不是自动提交的,只是暂存的,因此如果您需要使用内置编辑器进行新的编辑,您可以在提交文件之前完成,而无需离开 UI。
有了 GitKraken,您可以避免合并冲突和预测警报。⚠️:没错——当两个人同时对同一个文件进行修改时,图形用户界面会提醒你。🤯
有了 GitKraken,您可以避免合并冲突和预测警报。⚠️:没错——当两个人同时对同一个文件进行修改时,图形用户界面会提醒你。🤯
简易暂存和解除暂存
GitKraken ✅ | GitHub 桌面❌
GitHub Desktop 在某种程度上模糊了 staging 的概念。一旦项目中的文件被修改,GitHub Desktop 会自动将项目准备好提交。虽然许多用户可能认为这是一个优点,但这相当于每次都使用git add
。这在很多情况下很方便,但是被广泛认为是一个坏习惯,因为这意味着您可能会无意中提交您忘记在.gitignore
中列出的文件,或者还没有准备好提交的文件,从而导致管理整个存储库的更多工作。
GitHub 桌面确实可以让你轻松的拆分工作,主动的从索引中取出东西。然而,对于习惯和/或喜欢标准工作流程的人来说,这种正常流程的逆转可能会令人沮丧。
GitHub Desktop 在某种程度上模糊了 staging 的概念。一旦项目中的文件被修改,GitHub Desktop 会自动将项目准备好提交。虽然许多用户可能认为这是一个优点,但这相当于每次都使用git add
。这在很多情况下很方便,但是被广泛认为是一个坏习惯,因为这意味着您可能会无意中提交您忘记在.gitignore
中列出的文件,或者还没有准备好提交的文件,从而导致管理整个存储库的更多工作。
GitHub 桌面确实可以让你轻松的拆分工作,主动的从索引中取出东西。然而,对于习惯和/或喜欢标准工作流程的人来说,这种正常流程的逆转可能会令人沮丧。
在 GitKraken Git GUI 中,只需展示您想要展示的内容。是的,在很多情况下,转移所有已更改的文件会更快,也是正确的做法。GitKraken 通过一个Stage all changes
按钮让这一切变得简单。与 GitHub 桌面的单一列表视图相反,GitKraken 还通过将它们分成不同的部分,使查看已更改和已发布的内容变得更加简单。
在 GitKraken Git GUI 中,只需展示您想要展示的内容。是的,在很多情况下,转移所有已更改的文件会更快,也是正确的做法。GitKraken 通过一个Stage all changes
按钮让这一切变得简单。与 GitHub 桌面的单一列表视图相反,GitKraken 还通过将它们分成不同的部分,使查看已更改和已发布的内容变得更加简单。***
***拖放动作
基特克拉肯👍GitHub 桌面👎
GitKraken 的图形视图和整体视觉呈现自然使得通过拖放执行 Git 动作变得简单、直观和容易。这包括合并、 Git interactive rebase ,以及将特定的分支推送到您选择的远程存储库。
在 GitKraken 中,你可以双击一个分支或提交选择它,然后把它拖到另一个分支或遥控器来开始一个动作。
在 GitKraken 中,你可以双击一个分支或提交选择它,然后把它拖到另一个分支或遥控器来开始一个动作。
GitHub Desktop 没有图形视图,所以不能马上看出你能拖动什么或者你能把它放到哪里。经过一些试验后,您会发现您可以将单个提交拖到其他提交之上来尝试挤压。你也可以 Git cherry pick 从一个分支到另一个分支,但是通过一个相当笨拙的界面。这就是 GitHub Desktop 拖放操作的终点。
GitHub Desktop 没有图形视图,所以不能马上看出你能拖动什么或者你能把它放到哪里。经过一些试验后,您会发现您可以将单个提交拖到其他提交之上来尝试挤压。你也可以 Git cherry pick 从一个分支到另一个分支,但是通过一个相当笨拙的界面。这就是 GitHub Desktop 拖放操作的终点。
退回/重做按钮
GitKraken ✅ | GitHub 桌面❌
我们都有犯错的时候。犯错是人之常情。在进行评估时,工具让您快速撤销这些错误的能力是值得考虑的。GitHub 桌面让你通过点击鼠标右键来撤销你的最后一次提交。这是从命令行的一个重大进步,它需要恢复一个 Git 提交,因此创建一个新的提交,来完成同样的事情。但这是撤销的终点。
GitKraken 的撤销/重做按钮是我们用户最喜欢的功能之一。这个按钮允许开发者回到过去,消除错误。像意外重置分支和丢失多个提交这样的失误。😱
除了撤销上一次提交,我们的撤销按钮还允许用户撤销:
除了撤销上一次提交,我们的撤销按钮还允许用户撤销:
类似地,如果您误操作,所有这些操作都可以使用重做按钮重做。
类似地,如果您误操作,所有这些操作都可以使用重做按钮重做。
在 Git 中,错误是不可避免的,但是通过 GitKraken 的撤销按钮,您将能够神奇地✨撤销提交、签出、删除分支等常见操作,让您对工作流程更加自信。
在 Git 中,错误是不可避免的,但是通过 GitKraken 的撤销按钮,您将能够神奇地✨撤销提交、签出、删除分支等常见操作,让您对工作流程更加自信。
GitHub、GitLab 或吉拉问题跟踪
GitKraken ✅ | GitHub 桌面❌
正如人们所料,GitHub 桌面允许用户创建 GitHub 问题,但它是通过在浏览器中打开 GitHub.com 并把你放到相关屏幕上来实现的。诚然,与命令行相比,这很方便。从 GitHub 的角度来看,这是有意义的;只需将用户引向他们令人惊叹的现有界面。
不幸的是,从用户的角度来看,这有点破坏性,会导致用户再次进行上下文切换。一旦创建,就没有办法在本地查看或跟踪你的 GitHub 问题,尽管 GitHub Desktop 确实给了你在浏览器中打开 GitHub.com 的选项,你可以在那里管理你的问题。
虽然有的文章介绍如何通过使用访问令牌将 GitHub Desktop 与 GitLab 和 Azure 等其他服务集成,但没有关于如何与其他问题跟踪系统集成的容易发现的文档。同样,从 GitHub 的角度来看,这是有意义的,因为 GitHub 桌面是专门为 GitHub 用户构建的。但是对于用户来说,如果你的公司或者项目改变了或者服务,那么就要靠个人开发者来解决问题。
GitKraken Git GUI 是在知道 Git 用户有大量首选任务管理工具的情况下构建的,这就是为什么它提供了非常健壮的问题跟踪集成选项。
GitKraken 用户可以轻松集成问题跟踪器,例如:
GitHub 问题和 GitHub 企业问题
- 吉拉云和吉拉服务器
- 吉卡拉基板
- 特雷利乌
- GitLab 问题和 GitLab 自我管理的问题
- GitLab 问题和 GitLab 自我管理的问题
GitKraken 允许用户为这些集成创建新的问题,但它走得更远。用户可以查看、过滤和编辑问题/卡片。用户甚至可以创建与问题/卡片相关的分支。这对于希望通过减少上下文切换来优化工作流的开发人员来说非常有用。
GitKraken 允许用户为这些集成创建新的问题,但它走得更远。用户可以查看、过滤和编辑问题/卡片。用户甚至可以创建与问题/卡片相关的分支。这对于希望通过减少上下文切换来优化工作流的开发人员来说非常有用。
拉式请求管理
基特克拉肯👍GitHub 桌面👎
GitHub Desktop 确实有一个管理 GitHub pull 请求的路径,但是就像问题一样,它只是一个到 GitHub.com 的快捷方式,在那里你可以创建请求。与 GitHub 问题不同,您可以看到对存储库的所有打开的 pull 请求,尽管是以一种缩写的状态。在本地点击一个拉取请求仅仅改变了你对那个分支的视图;注释和详细信息不会被填充。
而且,与 GitHub 问题一样,没有明显的方法来集成其他集成的拉请求系统,如 GitLab 、 Bitbucket 或 Azure DevOps 。
GitHub Desktop 确实有一个管理 GitHub pull 请求的路径,但是就像问题一样,它只是一个到 GitHub.com 的快捷方式,在那里你可以创建请求。与 GitHub 问题不同,您可以看到对存储库的所有打开的 pull 请求,尽管是以一种缩写的状态。在本地点击一个拉取请求仅仅改变了你对那个分支的视图;注释和详细信息不会被填充。
而且,与 GitHub 问题一样,没有明显的方法来集成其他集成的拉请求系统,如 GitLab 、 Bitbucket 或 Azure DevOps 。
GitKraken Git GUI 与包括 GitHub 在内的领先服务进行了非常健壮的集成。用户可以直接从界面上为这些服务生成新的拉取请求,而无需打开浏览器窗口。GitKraken Pull 请求视图显示了 PRs 的完整列表,以及完整的详细信息和对话。
git kraken 的 7.6.0 版本引入了新的内置 GitHub 拉请求视图,增强了 GitHub 集成。除了从 GitKraken 界面在 GitHub 上创建和查看 PRs 之外,用户现在还可以:
编辑 GitHub 拉请求标题、描述、审阅者、受托人、里程碑和标签。
- 对 GitHub pull 请求进行评论。
- 合并 GitHub pull 请求。
- 通过留下评论、批准 PR 或请求更改来提交审核。
- 检查并测试 GitHub pull 请求分支。
- 从构建状态部分链接到 PR 的构建。
- 从构建状态部分链接到 PR 的构建。
Git 挂钩支持
GitKraken ✅ | GitHub 桌面❌
Git 最强大的特性之一是它的钩子系统。这些位于.git/hooks
文件夹中的简单文本文件允许开发人员自动化无限数量的动作,这些动作由 Git 工作流中的特定事件触发。
如果你还没有接受这个特性,考虑研究一下它们,添加错误检查,防止你不小心泄露 AWS 秘密,并帮助你自动化许多其他的最佳实践。
GitKraken 支持 Git 挂钩,甚至在 GitKraken 中提供了一个非常方便的关于如何开始使用 Git 挂钩的指南。来自挂钩的错误和警告消息显示在 GitKraken 活动日志中,并且易于解析。
如果你还没有接受这个特性,考虑研究一下它们,添加错误检查,防止你不小心泄露 AWS 秘密,并帮助你自动化许多其他的最佳实践。
GitKraken 支持 Git 挂钩,甚至在 GitKraken 中提供了一个非常方便的关于如何开始使用 Git 挂钩的指南。来自挂钩的错误和警告消息显示在 GitKraken 活动日志中,并且易于解析。
企业支持
GitKraken ✅ | GitHub 桌面❌
GitHub Desktop 的开源模式意味着它可以完全免费使用。虽然这从根本上来说很棒,但它只提供社区支持。社区支持通常是惊人的,值得称赞的是,他们是积极的参与者,倾听他们社区的声音。
许多大型企业客户选择 GitKraken Git GUI ,因为我们为企业授权提供直接访问我们专业支持的服务。能够快速连接到构建和维护工具的开发人员对于任何具有关键任务工作流的团队来说都是非常有益的。
GitHub Desktop 的开源模式意味着它可以完全免费使用。虽然这从根本上来说很棒,但它只提供社区支持。社区支持通常是惊人的,值得称赞的是,他们是积极的参与者,倾听他们社区的声音。
许多大型企业客户选择 GitKraken Git GUI ,因为我们为企业授权提供直接访问我们专业支持的服务。能够快速连接到构建和维护工具的开发人员对于任何具有关键任务工作流的团队来说都是非常有益的。
企业账户管理
GitKraken ✅ | GitHub 桌面❌
由于 GitHub Desktop 是本地的开源许可桌面软件,它不提供任何托管版本的软件,也不提供团队帐户管理或增强的安全选项。如果你的团队中有一部分人在工作中使用 GitHub Desktop,那么你的组织的管理员就不得不分别手动管理每个安装。
GitKraken 提供基于云、独立或自托管的 GitKraken enterprise 许可选项,以满足各种政策的特定需求。GitKraken 团队明白,企业团队和组织需要增强其工具链的安全性和责任性。
对于需要完全控制用户和许可证管理的团队来说尤其如此。依赖 LDAP 的组织喜欢与 GitKraken 的集成。您的管理员将能够管理整个组织的许可证,包括将单个许可证转让给新的团队成员以及自定义访问要求。
对于需要完全控制用户和许可证管理的团队来说尤其如此。依赖 LDAP 的组织喜欢与 GitKraken 的集成。您的管理员将能够管理整个组织的许可证,包括将单个许可证转让给新的团队成员以及自定义访问要求。
github desktop vs git krak的缩写形式
GitHub 桌面确实帮助了很多 GitHub 新手用户快速有效地利用 GitHub.com。然而,除此之外,它的范围和目的都非常有限。GitKraken 旨在帮助开发团队更高效地工作,它成功地做到了这一点,其强大的功能集允许您更轻松地执行 Git 操作,更安全地执行 T2,更强大的功能。
GitHub 桌面确实帮助了很多 GitHub 新手用户快速有效地利用 GitHub.com。然而,除此之外,它的范围和目的都非常有限。GitKraken 旨在帮助开发团队更高效地工作,它成功地做到了这一点,其强大的功能集允许您更轻松地执行 Git 操作,更安全地执行 T2,更强大的功能。
说真的,你还在等什么。下载市场上最好的 Git 客户端——您的工作流程将会感谢您。⬇️
说真的,你还在等什么。下载市场上最好的 Git 客户端——您的工作流程将会感谢您。⬇️******
gitKraken 与 Magit |查看 Git 客户端的详细对比
GitKraken 的构建考虑到了协作,让用户能够轻松安全地在多台机器上共享工作,包括 Git SSH 。该应用程序正在不断更新和改进,在最近的 GitKraken v7.2 版本中就很明显,该版本引入了创建 Git 存储库的功能,如果用户选择Reset Local to Here
在 WIP 节点存在时签出远程 Git 分支。
另一方面,Magit 是一个开源工具,旨在解决常见的编程错误。
多年来,Magit 一直被用于创建大型 PHP 程序,被用于学术和商业目的,是一种广泛使用的开发工具。
如果你对你的 Git 游戏没有 100%的信心,GitKraken 就像一个免费的私人教练——除非你在大联盟中编码,否则不会停止。
跨平台支持:GitKraken vs Magit
GitKraken 和 Magit 都提供了对 Windows、Mac 和 Linux 操作系统的跨平台支持。
GitKraken 是市场上仅有的跨操作系统提供一致体验的 Git GUIs 之一。这是可能的,因为应用程序是建立在电子之上的。这为开发团队提供了一个很大的好处,那就是开发人员可以自由选择他们喜欢的操作系统。
特色亮点:GitKraken vs Magit
GitKraken 最显著的特点之一就是可视化和分支组织。例如,您可以轻松地创建一个新的分支并将更改推送到远程存储库,并且可以确切地看到 GitKraken 的主 UI 中发生了什么。
GitKraken 还简化了 Git 克隆功能的过程,允许您轻松地克隆远程 repos 来处理您机器上的本地文件。
另一方面,使用 Magit 时,您将受到 emacs 基本功能的限制。
流行的怪怪特征
GitKraken 合并冲突编辑器
GitKraken Git 客户端提供的最受欢迎的功能之一是应用内合并冲突编辑器。
您可以清楚地看到文件中哪些更改是冲突的,这样您就可以做出最佳决策来解决冲突。
完成高级操作从未如此简单;GitKraken 让您对复杂的合并过程有更多的控制,并使解决冲突…我们敢说,有趣吗?
了解更多关于在 Git 中合并的信息:
易用性:GitKraken vs Magit
世界上许多开发人员都使用 Git,它作为版本控制系统的有用性怎么强调都不为过。GitKraken 不依赖于终端,而是为 Git 提供了一个直观的界面,允许您在将文件推送到远程之前,在本地运行命令来合并或修改文件。
通过 GitKraken 使用 Git 非常容易:界面只是一个查看和访问工具的屏幕,没有复杂的设置过程。
GitKraken 入门资源:
GitKraken 允许您浏览您的存储库,查看提交,并添加新的提交。您还可以添加新的存储库——例如,您可以派生一个团队成员的存储库,以查看他们在 repo 中所做的代码更改。GitKraken 还支持访问 Git 仓库,允许打开本地仓库和克隆远程仓库。
GitKraken 的易用性优势是使用 Git 客户端的最大优势。在开始之前,您不必记住 Git 命令或学习全新的工作流。GitKraken 的默认设置提供了您开始项目所需的一切。
起床和上 Emacs 需要时间;一位用户描述了***“3-4 周的生产力递减——学习 Emacs 的打击。”***
Magit 以暂存和应用更改以及简化 git 的暂存接口而自豪。Magit 状态缓冲区提供 git 命令的可操作输出,并显示当前存储库的信息。大多数 Magit 版本控制任务和命令行一样快。
显示的状态缓冲信息:
- 当前未提取的分支列表
- 未发布的更改
- 阶段性和非阶段性变更
Magit 可以从以下位置安装:
- Emacs 的包管理器
- Git 回购
使用 Magit 的限制包括:
- 没有会话存储。当您启动新的 Magit 实例时,您将不会收到任何会话数据。
- 没有安全存储。Magit 以纯文本形式存储用户信息,可能会暴露未加密的信息。
- 没有复制。没有创建沙盒环境的功能,在沙盒环境中可以复制或连接不同的实例。
您将能够在编译时确定 Magit 的限制。使用-limit-limits-from 参数在命令行上显示限制。如果在多个 CPU 上使用 Magit,则需要此选项。
使用 Magit,您可以编辑目录、其他文件夹和文件,但不能对远程主机做任何事情。您将需要配置 Git 来挂载远程 Git 存储库,作为您的主目录中的子目录。
由于其易用性等优点,GitKraken 被 20,000 多家公司强烈推荐和使用,作为使用 Git 存储库的最佳工具。看看为什么百万开发者选择 GitKraken 。
用户界面&体验:GitKraken vs Magit
GitKraken 的视觉用户界面分为六个部分:
工具栏
- 撤消按钮
- 重做按钮
- 拉
- 推
- 树枝
- 隐藏物
- 流行收藏
- LFS
左侧面板
- 本地存储库
- 远程存储库
- 拉取请求
- 标签
- 贮藏
- 子模块
提交面板(右侧面板)
- 未分级文件
- 暂存文件
- 提交消息
图表–git kraken 中的中心图表是您回购的核心,也是您分行历史的代表。
在 GitKraken 的中心图中,您可以创建新的提交、合并提交、创建分支、删除分支等等。在 GitKraken 中工作时,您正在进行的工作将显示为图形顶部的 WIP 节点。
标签
在 GitKraken 中,标签可以让你在多个储存库之间快速切换。从主用户界面,您可以添加新的标签,使用键盘快捷键在 repos 之间切换,拖放标签以重新排列它们,并同时关闭多个标签。
栏目
默认情况下,GitKraken 的主用户界面会显示三个标题:
- 分支/标签
- 图表
- 提交消息
如果您想要额外的上下文,您可以添加三个额外的数据点作为列标题: - 提交作者
- 提交日期/时间
- 恒星时角
Magit 的命令行界面分为六个概念:
模式和缓冲器
- 开关缓冲器
- 命名缓冲区
- 退出 Windows
- Magit 缓冲区的自动刷新
- 文件访问缓冲区的自动保存
- 文件访问缓冲区的自动恢复
章节
- 截面移动
- 截面可见性
- 截面挂钩
- 区段类型和值
- 部分选项
瞬时命令
- 前缀命令
- 中缀论元
- 后缀命令
瞬态自变量和缓冲变量
- 用户选项:magit-prefix-use-buffer-arguments
- 用户选项:magit-直接使用-缓冲区-参数
- 两个选项的值:
- 总是
- 选择或 t
- 目前的
- 从不
完成、确认和选择
- 行动确认
- 完成和确认
- 选择
- 大块内部区域
- 支持完成框架
- 附加完井选项
运行 Git
- 查看 Git 输出
- Git 进程状态
- 手动运行 Git
- Git Executable
- 全局 Git 参数
GitKraken 更加用户友好,因为它是一个非常容易使用的可视化 GUI。Magit 是为高级用户设计的命令行界面。GitKraken 确实有高级用户直接从应用程序打开终端的功能,并且有快速键盘快捷键。
适合初学者:GitKraken vs Magit
GitKraken 似乎是 Git 新手的最佳选择,他们可以从 Git GUI 支持的工作流中受益,如 T2 Git Flow T3。
GitKraken 最大的好处之一就是 Learn Git 库中的众多视频和教程。下面是一些建议的资源,可以帮助您开始学习 Git:
Magit 是一个命令行界面 git 客户端。
在开始使用 Magit 之前,您必须了解如何使用 Emacs 的包管理器。您必须知道使用 Magit 的命令行,因为 Magit Git 客户端没有可视化界面,也不是 GUI。
定价:GitKraken vs Magit
GitKraken 免费向用户提供对公共托管库的访问。
对于希望升级到 GitKraken Pro 的开发人员,价格是每个用户每月 4.95 美元,按年计费,建议 1 到 10 个用户的团队使用。
对于使用企业计划的客户,价格为每个用户每月 8.95 美元,按年计费,该计划可以扩展到的用户数量没有限制。对于使用许可证的无限数量的用户来说,企业版具有显著的优势。
点击查看所有 GitKraken 定价。
Magit 在 GNU GPL 许可下完全免费使用。
可免费下载:GitKraken vs Magit
GitKraken 和 Magit 都是免费下载的。GitKraken 包括所有付费功能的 7 天免费试用,包括合并冲突编辑器。
保护您的 Git 存储库的完整性是无价的;用 GitKraken 免费获得。
集成:GitKraken vs Magit
与 GitKraken 不同,Magit 只提供部分 API 集成。
GitKraken 远程仓库集成
可用的 GitKraken 集成包括与以下设备的远程回购集成:
- GitHub.com
- GitHub 企业
- GitLab.com
- GitLab 自我管理
- 完了
- 伺服器位元组
- Azure DevOps
GitKraken 问题跟踪集成
GitKraken 的问题跟踪集成包括:
吉拉
- 吉拉服务器
- 特雷罗
- GitLab 问题
- GitLab 自我管理的问题
- GitHub 问题
- GitHub 企业问题
- Magit Forge 集成
Magit 的 Forge 提供了与多个 Forge 的集成,即 GitHub 和 GitLab。还列出了对 Gitea、Gogs、Bitbucket、Gitweb、Cgit、StGit 和 Sourcehut 的部分支持。
Magit Forge Integrations
客户支持&满意度:GitKraken vs Magit
开发人员一直是 IT 行业创新的灯塔。例如,GitKraken 的创始人最初是一名软件开发人员,而内部团队仍然在开发产品——这意味着他们使用 Git GUI 来开发产品本身的新改进。GitKraken 过去十年的成长要归功于一个令人难以置信的客户服务团队和一个世界级的软件开发团队。
GitKraken 努力达到客户期望的高标准,拒绝在客户服务上妥协。该团队已经花了很多年来完善软件代码,并实现了一个让客户更高效、更透明地工作的系统。
加入 GitKraken Slack 社区后可以问任何问题。GitKraken 网站也有一个学习 Git 中心,里面有教程、最佳实践、视频教程,甚至还有问题和解决方案部分。
GitKraken 团队的目的是创建一种服务,所有软件专业人员都可以依赖它来完成工作。为此,GitKraken 投入了大量资源,建立了深受所有客户喜爱的广泛的客户支持系统。
Magit 有一个完善的社区支持系统,但它没有提供最好的安全特性,所以如果您正在处理复杂的文件或其他敏感信息,您应该考虑像 GitKraken 这样更复杂的选项。
The intent of the GitKraken team is to create a service that all software professionals can rely on to get their jobs done. To this end, GitKraken has invested significant resources in an extensive customer support system loved by all customers.
下载、安装并运行 GitKraken Git GUI
安装 git 卡拉基
GitKraken vs SmartGit |免费下载 GitKraken Git GUI
GitKraken Git GUI 是 2014 年 8 月上市的首批同类软件产品之一,由 Axosoft 的开发人员开发,他们在的任务是找到一个不烂的 Git GUI。一个可以快速显示谁在任何项目中对哪个文件做了什么;一个有助于加快个人工作流程和改善团队协作的工具;一个在视觉上震撼了所有与之互动的人的想法。🤯
我们让我们的开发人员自由地构建数字世界有史以来最棒的 Git GUI。尽管自 GitKraken 首次发布以来,新的竞争已经进入,但我们的速度、性能和功能(更不用说我们的吉祥物 Keif )继续满足和愉悦我们全球数百万开发人员不断增长的用户群。
但是不要相信我们的话。我们对我们的产品非常有信心,所以我们愿意把它全部摆出来,告诉你我们与竞争对手相比如何。在本文中,我们将关注 GitKraken Git GUI 如何与 SmartGit 相结合。
比较 SmartGit 与 GitKraken
“刚刚第一次尝试了@GitKraken(而不是 SmartGit) —登台单个 diff“块”的能力真的很方便。”–@ MoldyMagnet
解决合并冲突
GitKraken 不仅清楚地通知你一个冲突,我们的合并冲突工具是迄今为止我们最受欢迎的功能之一。
Git 中的合并冲突是出了名的吓人,但是对于 GitKraken 来说却是轻而易举的事情。假设您正在处理两个分支,这两个分支对同一文件中的同一行提出了冲突的更改。在尝试执行合并时,GitKraken 会检测到冲突并提醒您它需要您的帮助。
GitKraken 然后向您显示冲突文件的列表。单击一个文件将打开合并工具,它会在底部并排显示冲突的更改和输出视图。
每个冲突部分都有一个复选框,如果选中,将被添加到底部的输出部分。然后,您可以点击+
图标,用鼠标选择其他要添加到输出中的行。使用向上和向下箭头在冲突之间导航。
一旦解决了冲突的文件,您就可以继续进行合并并返回到您定期安排的工作流程。
我们最近改进了合并冲突工具,对滚动、输出、行编辑和冲突行选择进行了性能改进。我们的合并工具现在使用 Monaco 编辑器,允许用户在三个冲突窗口中独立搜索。我们还向输出编辑器添加了自动完成功能。
快速全局搜索
(智能手机)
SmartGit 缺乏快速全局搜索。我们知道这对使用 Git 的开发者来说是一个重要的特性;甚至有来自 SmartGit 用户的请求在他们的软件中实现类似 GitKraken Fuzzy Finder 的东西。
我想请求一个类似于 GitKraken 客户端中的“模糊查找器”的“快速全局搜索”功能。这提供了在单个操作中搜索提交、访问客户端命令和启动 Git 操作的即时访问。
在 GitKraken 中,我们的模糊查找器是快速访问我们的应用程序的动作和特性的好方法。您可以打开存储库、搜索提交、查看文件历史、打开设置等等。
GitKraken 对 Slant.co“最佳 Windows Git 客户端”的评价
用键盘快捷键Cmd/Ctrl + P
打开模糊查找器,开始打字完成各种动作。你可以在我们的模糊查找器文档中查看支持的命令列表。
我们的 Fuzzy Finder 是 GitKraken 如何帮助开发人员提高生产力的又一个例子。
定价
基特克拉肯👍智能 Git👎
GitKraken 的定价模式不仅更直接,我们的产品也比 SmartGit 便宜。 SmartGit 许可证的个人许可证起价为每年 59 美元,相比之下 GitKraken 为每年 29 美元。旁注:GitKraken 是免费的,如果你正在与公共回购。向我们的开源伙伴大声疾呼!
GitKraken 的 49 美元投资可以让用户获得一年的 Pro 许可,拥有 Git 客户端提供的所有功能。SmartGit 最便宜的产品,每年 59 美元,没有很多功能,包括用于快速代码评审的分布式评审插件。要获得 SmartGit 的所有核心特性,个人许可证的年费不到 90 美元。
**Undo Button **
(智能手机)
SmartGit 没有撤销按钮。我们的Undo
按钮是直接魔法。✨·凯夫希望每次用户告诉我们在错误地执行合并后,撤销按钮是如何拯救他们时,他能得到一枚海怪硬币。
假设您正在命令行中工作,按下回车键,突然,当您意识到刚刚犯了一个严重的错误时,您会感到一阵恐慌。提示出冷汗和呼吸急促。
现在让我们使用 GitKraken 来回放同样的情况。犯错误?只需点击 UI 顶部工具栏中的Undo
按钮,即可返回工作流程。去吧,拥抱你内心的奇异博士。
Undo
按钮允许用户撤销 GitKraken 中的以下操作:
检验
犯罪
- 抛弃
- 删除分支
- 移除遥控器
- 将分支重置为提交
- 此外,GitKraken 还有一个
Redo
按钮,如果你曾经很喜欢点击,并且误撤销了某个操作。我们抓住你了。😅 - Reset branch to a commit
拉取请求模板
基特克拉肯👍智能 Git👎
SmartGit 的基本版本不支持 pull request 模板,这是团队编码的一个元素,已经成为公认的行业最佳实践。 GitKraken 支持来自 GitHub、GitLab 和 Azure DevOps 的 PR 模板。然而,SmartGit 有一个“分布式审查”系统作为附加产品,需要额外的费用,它支持没有消息模板的 PRs。该系统不支持来自 GitHub、GitLab 或 Azure DevOps 的 pull 请求。
作为一名开发人员,您不仅有责任修复问题和实现新特性,而且有责任将您的工作清楚地传达给产品所有者、团队成员或其他审阅代码的合作者。
通过我们的 PR 集成,GitKraken 使用户能够通过预先格式化的模板提供他们提交的代码的简明描述,确保一致性,而不管您团队中的谁在提交请求。
更好的是,GitKraken 发行版最近获得了一个新功能,允许用户将 Glo 卡与 GitHub pull 请求链接起来!用户可以跟踪 PR 的状态,并根据拉动请求是已打开、关闭还是已合并,自动将卡片移动到 Glo 板上的新列中。
此外,在 GitKraken 中创建拉动请求时,您可以通过在 PR 模板表单中搜索卡来关联 Glo 卡。卡片链接将作为卡片的标题显示在 GitHub 中的 pull 请求描述中。
Through our PR integration, GitKraken gives users the ability to provide concise descriptions of their submitted code through pre-formatted templates, ensuring consistency regardless of who on your team is submitting the request.
问题跟踪集成
基特克拉肯👍智能 Git👎
通过在不离开编码环境的情况下管理您的问题,进一步加快您的工作流程。GitKraken 是市场上唯一一个提供与最常用的问题跟踪工具增强集成的 Git GUI。
GitKraken 集成了以下问题跟踪器:
GitKraken 👍 | SmartGit 👎
使用上述工具管理问题的用户可以直接从 GitKraken 完成以下操作:查看、过滤和编辑问题/卡片,创建与问题/卡片相关的分支,以及创建新的问题/卡片。
虽然 SmartGit 确实提供了与吉拉的不太健壮的问题集成,但它没有提供与其他问题跟踪工具的集成。
Azure DevOps 集成
(智能手机)
SmartGit 不与 Azure DevOps 集成,不像 GitKraken 与 GitHub 、 Bitbucket 、 GitLab 和 Azure DevOps 托管和自托管服务集成。
GitKraken 用户可以通过我们的应用快速连接到 Azure DevOps 。经过身份认证过程后,用户可以获得以下好处:
关闭 Azure DevOps 存储库列表中的存储库
为你的 Azure DevOps repos 添加远程
创建和查看拉式请求
- 自动生成 SSH 密钥对并将其复制到 Azure DevOps
- 还有更多…
- 最佳跨平台 Git GUI
- 归根结底,您选择使用的工具取决于您的个人偏好和工作流程,但是大众已经说话了。GitKraken 是跨 Windows、Mac 和 Linux 使用的最流行的 Git GUI。
- 从我们的客户那里听到,听听为什么学生喜欢用 GitKraken 学习,或者阅读我们在偏、 G2Crowd 和产品搜索上的评论。
对于 git 初学者来说,它非常直观,而且当事情变得混乱时,它仍然具有您需要的所有高级功能。最酷的是:GitKraken 实际上通过可视化显示来帮助你保持 git 工作流的整洁。
At the end of the day, the tools you choose to use depend on your personal preferences and workflows, but the masses have spoken. GitKraken is the most popular Git GUI used across Windows, Mac, and Linux.
GitKraken 是唯一一个拥有(我也尝试过很多)如此漂亮界面的 Git 客户端,并且允许你应用不同的主题,我更喜欢深色的,但是你也可以选择浅色的。甚至北海巨妖的标志也很漂亮。
你准备好发布北海巨妖了吗?
你相信了吗?GitKraken 是市场上速度最快、功能最强的 GUI,与全球数百万其他软件开发人员和工程师一起,最大限度地提高您工作流程的生产力。
GitKraken is the only Git client that has (and I’ve tried many) such a nice interface and also allows you to apply different themes, I prefer the dark one but you can also choose a light one. Even the Kraken logo is beautiful.
– Ryan W, G2 Crowd
**Are you ready to release the Kraken? **
Are you convinced yet? Join millions of other software developers and engineers worldwide in maximizing the productivity of your workflow with GitKraken, the fastest and highest-functioning GUI on the market.
Sourcetree vs GitKraken |哪个是最好的 Git GUI?
原文:https://www.gitkraken.com/compare/gitkraken-vs-sourcetree
软件开发人员、学生和一些海洋生物已经发言。GitKraken 是世界上最流行的 Git GUI 在 2020 年软件发展报告中被评为 Git 最常用的图形用户界面。
然而,你可能是骑墙派;也许你对 Git 很好奇,但不确定是否要“提交”(抱歉)给 GUI。毕竟,外面有好几个。你应该选择哪一个?如果您仍然在决定哪个 Git 客户端最适合您,我们将为您节省一些时间。
那么,Sourcetree 和 GitKraken 相比如何?GitKraken 以 Linux 支持、跨平台一致性、直观的输入动作、界面设计、撤销按钮等满足了全球开发者的需求。
对比 Sourcetree 和 GitKraken
“我用过 Sourcetree 和 GitKraken,北海巨妖是我的选择。GitKraken 要快得多,而且还在继续增加新功能,变得更好。”–@ integerman
Linux 支持
「资源」
Stack Overflow 的 2019 年开发者调查报告称,超过 25%的开发者选择 Linux 作为他们的主要操作系统。虽然我们的许多竞争对手忽视了 Linux 爱好者的不断增长的市场,GitKraken 将尽职尽责地管理您的 Git 项目,而不会偏向您的操作系统。Windows、Mac 和 Linux 用户欢欣鼓舞!
相比之下,Sourcetree 不支持 Linux。
Sourcetree, by comparison, does not support Linux.
跨平台一致性
「资源」
我们以前介绍过 GitKraken 能够在 Windows、Mac 和 Linux 上提供相同的应用程序体验。
这个特性不仅对开发人员有吸引力,反过来他们可以使用自己喜欢的操作系统,而且对团队和组织也有好处。给你的工程师提供他们想要使用的工具会让他们更开心,提高工作效率。
Sourcetree 的体验会有很大的不同,这取决于您是在 Windows 还是 Mac 上使用该工具。用户经常抱怨版本之间令人沮丧的差异。当您需要对某个问题进行故障排除时,跨操作系统拥有不同的功能可能会是一项挑战。四
此外,Sourcetree 不是 Atlassian 的重点,这表现在缺乏沟通和应用程序更新不频繁。
g itKraken 是 Axosoft 开发团队的主要关注点,除了可发现的和有用的学习 Git 资源和支持之外,它还可以提供频繁的更新和改进。
GitKraken is a primary focus of Axosoft’s development team, making it possible to provide frequent updates and improvements, in addition to discoverable and helpful Learn Git resources and support.
提交图形 UI
【源代码管理】
GitKraken 的界面简单、直观,可定制明暗主题。如果你打算使用图形用户界面,它应该看起来不错!你值得!犒劳自己!
GitKraken’s interface is simple, intuitive and customizable with light and dark themes. If you’re going to use a GUI, it should look good! You’re worth it! Treat yourself!
通过 GitKraken 展示的电子公开回购
Electron public repo displayed via GitKraken
GitKraken 中的图形不仅是您工作的漂亮表示,它还是管理您的分支和提交的高度功能化的工具。当您使用拖放合并、创建分支或恢复提交时,直接与分支和提交进行交互。如果你在一个项目上合作,头像就像一个视觉标记,让你知道谁提交了工作。分支标签上的图标显示它们属于哪个遥控器和 PRs。
Satoripop 开发者 Ghassen Rjab 在他的文章《Git 用 GitKraken 好还是 Sourcetree 好?
“在 GitKraken 的主界面中,我们拥有我们需要的一切。在左边的面板中,我们有关于项目的信息,比如本地分支、添加到项目中的远程存储库及其分支、存储库、标签和子模块。项目的历史和正在进行的工作在中间,我们也可以看到仓库。在右侧面板中,我们可以看到从历史中选择的任何提交的详细信息。在顶部,我们有一个搜索按钮,可以用来查找提交。
所有这些功能都存在于主界面中,这使得与 GitKraken 一起工作是一种很好的体验。”
相比之下,Sourcetree 的 UI 分为三个视图:文件状态、日志/历史和搜索。
Sourcetree UI
“Sourcetree 的用户界面会让你的 UX 有点令人沮丧,因为你总是需要在这三个标签之间切换来完成你的工作。”
Sourcetree UI
退回/重做按钮
「资源」
一键撤销!哪个 Git 客户端可以做到这一点?当然不是 Sourcetree。
**Undo/Redo Button **
GitKraken ✅ | Sourcetree ❌
GitKraken 的撤销/重做按钮是很多开发者的救命稻草,他们可能会不小心丢弃了几个小时的代码更改。😱
GitKraken 允许用户点击一个按钮撤销以下动作:结账;提交;丢弃;删除分支;移除遥控器;并将分支重置为提交。如果您曾经错误地撤销了这些操作,您也可以重做它们。😅
利用 GitKraken 独特的工作效率功能,如一键撤销/重做,享受更安全的工作流程。
GitKraken allows users to undo the following actions with the click of a button: checkout; commit; discard; delete branch; remove remote; and reset branch to commit. You can also redo these actions if you ever undo them by mistake. 😅
合并冲突解决
【源代码管理】
通过使用 GitKraken 的内置合并工具,可以更好地控制要包含的代码位,从而解决合并冲突。使用 Sourcetree,它是“我的”、“他们的”,或者打开另一个应用程序。
GitKraken 会在右边的提交面板中显示任何冲突的文件。单击冲突文件将打开合并冲突编辑器,其中当前分支显示在左侧,目标分支显示在右侧,输出字段显示在底部。
GitKraken 👍 | Sourcetree 👎
Resolve merge conflicts with more control over which bits of code to include by using GitKraken’s built-in merge tool. With Sourcetree it’s “mine,” “theirs,” or open another application.
用户可以选择文件中的所有更改、单个部分或单个代码行,所有这些都显示在一个附带的复选框中。只需选中复选框,将这段代码添加到输出字段中,您就可以在上下文中看到您的选项,并决定哪些更改是更可取的。(拥有付费账号的 GitKraken 用户甚至可以直接在输出栏编辑🤯).解决冲突后,保存输出并提交更改。
使用 Sourcetree,您最好使用外部合并工具。
问题跟踪集成
「资源」
出于许多原因,GitKraken Git GUI 不同于市场上的其他同类工具,但这是一个重要的原因。没有其他 Git 客户端提供与软件开发人员和团队使用的最流行的问题跟踪器的健壮集成。没有。
GitKraken Git GUI 集成了以下问题跟踪器:
GitKraken ✅ | Sourcetree ❌
使用上述工具管理问题的用户可以直接从 GitKraken Git GUI 完成以下操作:查看、过滤和编辑问题/卡片,创建与问题/卡片相关的分支,以及创建新的问题/卡片。
The GitKraken Git GUI integrates with the following issue trackers:
Users who utilize one of the above tools to manage their issues can accomplish the following actions directly from the GitKraken Git GUI: view, filter, and edit issues/cards, create branches tied to issues/cards, and create new issues/cards.
不再需要切换上下文来掌控您的问题——只需在您漂亮的编码环境中完成即可。
相比之下,Sourcetree 不提供强大的问题跟踪功能,并且不与 Trello、GitKraken 板、GitLab 问题或 GitHub 问题集成。
拖放
「资源」
有了 GitKraken,您可以使用自己最熟悉的输入法。使用拖放来执行 Git 操作,或者坚持使用键盘并切换 repos,检查分支,等等。用 GitKraken 的模糊探测器。这也是你可以在 Sourcetr 中做的事情——哦,不,你不能。
GitKraken 上的用户可以拖放来启动交互式 rebase 或创建 pull 请求(在设置到您的托管服务的集成之后);用户还可以将一个分支拖放到遥控器上来执行Push
。
GitKraken ✅ | Sourcetree ❌
With GitKraken you can use the input methods you’re most comfortable with. Execute Git actions using drag-and-drop, or stick to the keyboard and switch repos, check out branches, etc. with GitKraken’s Fuzzy Finder. This is something you can also do in Sourcetr– oh no, you can’t.
别担心,GitKraken 也为你的键盘爱好者准备了一些东西:我们的模糊查找器,它允许用户通过键盘快捷键访问各种操作。
Sourcetree 缺少拖放功能,并且不提供可发现的键盘快捷键。
随着您的团队规模的扩大,GitKraken 继续提供增强的功能,如交互式拉式请求管理,将协作和可见性提升到一个新的水平。
Sourcetree lacks drag-and-drop functionality and does not offer discoverable keyboard shortcuts.
团队许可证管理
「资源」
GitKraken 团队精心改进了我们的产品,以支持需要在断开连接或防火墙环境中工作的企业组织。高级领导可以从我们的三个许可证管理选项中选择一个最适合您需求的选项。
**License Management for Teams **
GitKraken ✅ | Sourcetree ❌
虽然 Sourcetree 宣传企业选项提供了更好的帐户管理,但他们没有提供可以自托管的应用程序版本。
如果您确实想要 Sourcetree Enterprise 提供的帐户管理,您将需要下载一个 MSI 文件安装程序来管理该过程。
Sourcetree 或 GitKraken:准备好转换了吗?
如果您已经在使用 Sourcetree,那就帮自己一个忙。制造。👏的。👏开关。👏相信我们和许多已经做出同样转变的人:你们不会后悔的。
**Sourcetree or GitKraken: Ready to make the Switch? **
If you were already using Sourcetree, do yourself a favor. MAKE. 👏THE. 👏SWITCH. 👏 Trust us and many of those who have made the same transition: you will not regret it.
GitKraken vs TortoiseGit |哪个是开发者最好的 Git GUI?
原文:https://www.gitkraken.com/compare/gitkraken-vs-tortoisegit
Git 是世界上使用最广泛的版本控制系统,超过 70%的开发人员使用它来管理他们的代码。难怪有这么多工具被创造出来,通过图形用户界面(GUI)来帮助 Git 更容易使用。我们已经将我们的解决方案 GitKraken 与过去的许多其他方法进行了比较,如 Sourcetree 、塔和叉。
今天我们将看看托尔托伊塞吉特,看看它如何与基特克拉肯相提并论。虽然我们将尽可能做到公平,但这是一个挑战,就像将新款特斯拉与弗林斯通的汽车进行比较一样。
比较 TortoiseGit 与 GitKraken
让你的 Git 游戏更上一层楼。🚀GitKraken 增强了对分支机构历史的可见性,使管理复杂的合并和快速解决冲突充满信心成为可能。
TortoiseGit——早期的一个开源项目。
TortoiseGit 是一个开源项目,不是一个商业产品。这有一些好处,但也有一些警告。最大的好处是社区已经将 UI 国际化为 34 种语言,其中 14 种的翻译率达到 80%或更多。另一个主要的好处是它可以完全免费使用,尽管这也带来了一些缺点,我们将在后面介绍。
TortoiseGit 出现在 Windows 是开发者实际使用的操作系统的时代。一个 Linux 还处于婴儿期的时代,像 Ubuntu 这样稳定的桌面发行版还需要几年时间,MacOS 只占市场份额的 3%。当时,创建一个直接集成到 Windows shell 界面的 Windows 专用工具的决定非常明智。
不幸的是,他们的用户界面反映了第一次编码的时间,即 Windows ME 时代。随着其他 Windows 设计的发展,这种复古的外观导致了使用该工具的整体笨拙。
另一件你会立即注意到的事情是,当你查看 TortoiseGit 文档时,有许多对 Apache Subversion (SVN)的引用,以及它与 Git 的不同之处。这是因为 TortoiseGit 基于 TortoiseSVN,这是一个受依赖 Apache Subversion (SVN)的 Windows 开发人员欢迎的工具。虽然这可能很好地服务了他们的社区,因为人们首先迁移到了 Git,但是这使得使用他们的工具感觉有点过时,尤其是在这么多开发人员已经将 Git 作为第一个也是最好的版本控制系统的情况下。
TortoiseGit vs GitKraken
那么,这些选项中哪一个是适合您需求的工具呢?让我们深入了解一下使 GitKraken 成为市场上最受欢迎的 Git GUI 的特性和功能。
很明显,对于大型组织和在项目上合作的个人开发者,GitKraken 提供了更健壮的特性和对拉请求、跨平台一致性、撤销/重做、培训材料等的支持。
Linux 支持
GitKraken ✅ | TortoiseGit ❌
作为市场上唯一真正的跨平台 Git GUIs 之一,GitKraken 很自豪能够提供 Linux 支持。TortoiseGit 文档声明:“TortoiseGit 在 Windows 7 或更高版本上运行。”这是有意义的,因为这是为了与 Windows Explorer UI 集成而专门构建的。
As one of the only true cross-platform Git GUIs on the market, GitKraken is proud to offer Linux support. The TortoiseGit documentation states: “TortoiseGit runs on Windows 7 or higher.” This makes sense as this was purpose-built to integrate with the Windows Explorer UI.
跨平台一致性
GitKraken ✅ | TortoiseGit ❌
GitKraken 的建立是为了满足开发者的需求,无论他们更喜欢什么操作系统。GitKraken 基于 Electron,可以在专业开发人员喜欢的任何操作系统上工作。
开发者多种多样,各持己见。每个人都喜欢自己的工具和平台。有些人喜欢 Mac,有些人喜欢 Windows,更多的人对 Linux 深信不疑。拥有一种与操作系统无关的方式来参与整个组织的版本控制,是让每个人都同意工作流的关键,也是让新团队成员加入的明智和简化的途径。
将此与仅适用于 Windows 的 TortoiseGit 进行比较。这使得协作更具挑战性,除非整个团队都喜欢在 Windows 上工作。
Compare this to TortoiseGit, which is only available for Windows. This can make collaboration more challenging unless the whole team prefers to work on Windows.
入职& Git 培训材料
GitKraken ✅ | TortoiseGit ❌
让一个新的团队成员熟悉工作总是一个挑战。Git 的学习曲线通常很陡,尤其是当 UI 是空白终端时。团队需要一种方法让每个人尽可能快地高效工作。
GitKraken 支持网站提供了一整套技巧、技术文档、产品视频和突出流行功能的材料。那也是我们存放我们粉丝最喜欢的发行说明的地方。
用户还可以订阅 GitKraken YouTube 频道来访问我们不断扩展的 Git 教育视频和教程库,免费使用 GitHub、GitLab、Bitbucket 和 Azure DevOps 等 GitKraken。
GitKraken 有一个专门的内容团队来制作高质量的培训和教育资源,以帮助新用户,并确保所有经验水平的用户都获得一致的支持。
我们的一系列初级、中级和高级 Git 教程视频将帮助您的团队提升他们的 Git 技能!跟 GitKraken 学 Git
TortoiseGit 确实提供了免费的手册,其中包含了很多官方的 git-scm 文档,但是他们的教育资源似乎到此为止了。这本手册虽然很大,但没有提供搜索功能,很难浏览。
TortoiseGit does provide a free manual, which incorporates a lot of the official git-scm documentation, but that’s where their educational resources seem to end. The manual, while immense, does not offer a search function, making it hard to navigate.
更快地跟上 Git 的步伐。GitKraken 的直观用户界面将让您从第一天开始就执行简单和复杂的 Git 命令!
Get up-to-speed with Git faster. GitKraken’s intuitive UI will have you executing simple & complex Git commands from day one!
简易暂存和解除暂存
GitKraken ✅ | TortoiseGit ❌
GitKraken 使得只存放您想要存放的内容变得极其容易,甚至可以存放到单独的代码行。它还提供了一个直观的视图,显示了发生了哪些变化以及上演了哪些内容。
TortoiseGit 实际上模糊了 staging 的概念,甚至没有将它作为菜单选项提供。它允许您提交任何单个文件,但是没有明确的指示文件相对于您的工作进展(WIP)或暂存的位置。对于 Git 新手和习惯使用命令行的人来说,这种不明确性会导致严重的混乱。
TortoiseGit actually obscures the concept of staging, not even offering it as a menu option. It allows you to commit any individual file, but there is no clear indication of where files are in relation to your Work in Progress (WIP) or staging. For both those new to Git and those used to working the command line, this lack of clarity can cause serious confusion.
拖放动作
GitKraken ✅ | TortoiseGit ❌
GitKraken 为用户提供了执行拖放操作的能力。这包括合并、交互式重定基础,甚至将特定的分支推到您选择的远程存储库,所有这一切都只需将分支移动到中央图上您想要的位置。
不要担心,GitKraken 也为你的键盘爱好者准备了一些东西:我们的模糊查找器,它允许用户通过键盘快捷键访问各种操作。
Don’t worry, GitKraken has something for you keyboard lovers out there too: our Fuzzy Finder, which allows users to access a variety of actions via keyboard shortcuts.
使用 TortoiseGit,每个操作都会打开一个新窗口。每个窗口都带来了一系列全新的选择和选项,即使对于经验丰富的 Git 用户来说,它们的功能也不是很清楚。除了系统范围的命令如ctl
+ f
在屏幕上查找文本或f5
刷新视图,TortoiseGit 没有提供键盘热键或快捷键。
With TortoiseGit, every action opens a new window. Each window brings a whole new slew of choices and options whose functions are not very clear, even to a seasoned Git user. And other than system-wide commands like ctl
+ f
for finding text on-screen or f5
to refresh view, TortoiseGit offers no keyboard hotkeys or shortcuts.
细粒度差异控制
GitKraken ✅ | TortoiseGit ❌
GitKraken 的内置 Diff 工具是我们用户最喜欢的功能之一,让您能够快速查看文件中添加或删除了什么。我们的工具允许您选择单独的行或文件块来登台。
GitKraken 的 Diff 工具允许用户在大块视图、内嵌视图和拆分视图之间轻松切换,包括单词区分、语法突出显示、在变更集之间移动的箭头等等。
GitKraken’s Diff Tool allows users to easily toggle between Hunk, Inline, and Split views and includes word diffing, syntax highlighting, arrows to move between change sets, and more.
虽然 TortoiseGit 当然有一个包含许多选项的 Diff 视图,但是要想知道如何从初始的 Diff 菜单获得并排视图还是需要做一些尝试。一旦进入 Diff 视图,UI 在工具栏中提供了许多设置,每个设置的含义并不清楚。有这么多,有些是隐藏的,除非你让新打开的窗口全屏。在所有的选项中,似乎没有一个在 TortoiseGit 可以看到大块的风景。
While TortoiseGit certainly has a Diff view with many options, figuring out how to get to a side-by-side view took a few attempts from the initial Diff menu. Once inside the Diff view, the UI offers a lot of settings in the toolbars, and the meaning of each is not immediately clear. There are so many that some are hidden unless you make the newly opened window full screen. With all the options, there does not seem to be a Hunk view possible in TortoiseGit.
退回/重做按钮
GitKraken ✅ | TortoiseGit ❌
到目前为止,GitKraken Git GUI 最受欢迎的特性之一是我们神奇的撤销/重做按钮。字面上允许您回到过去并撤销一个严重的错误,比如意外重置分支并丢失多个提交。😱
如果你曾经希望可以通过点击一个按钮来撤销 Git 操作,那么你很幸运拥有 GitKraken。我们的撤销按钮允许用户撤销以下操作:
检验
- 犯罪
- 抛弃
- 删除分支
- 移除遥控器
- 重置分支以提交
- 类似地,如果您误撤销了所有这些操作,可以使用重做按钮来重做。
TortoiseGit 不提供等效的功能。虽然你可以查看日志和参考日志,但你的时间旅行能力到此为止了。放弃更改、删除或重置分支、移除遥控器等操作无法撤消。就像你能对付 GitKraken 一样。
Similarly, all of these actions can be redone using the Redo button if you undo them by mistake.
让你的 Git 安全网就位。GitKraken 的撤销按钮等功能有助于防止您的工作出现常见错误。💯
GitHub、GitLab 或 Azure 问题跟踪
GitKraken ✅ | TortoiseGit ❌
除了 GitKraken Git GUI,没有其他 Git 客户端提供与最常用的任务管理工具的健壮的问题跟踪集成。一个都没有。
GitKraken Git GUI 集成了以下问题跟踪器:
吉拉云/服务器
吉卡拉基板
- 特雷利乌
- GitLab/GitLab Self-Managed
- GitHub/GitHub 企业
- 使用上述工具管理问题的用户可以直接从 GitKraken Git GUI 完成以下操作:查看、过滤和编辑问题/卡片,创建与问题/卡片相关的分支,以及创建新的问题/卡片。
- GitHub/GitHub Enterprise
这对于希望通过减少上下文切换来优化工作流的开发人员来说非常有用。
另一方面,TortoiseGit 声称提供问题跟踪功能,但似乎暗示这只能通过 Bugtraq 实现。
企业账户管理
GitKraken ✅ | TortoiseGit ❌
GitKraken 团队明白,企业团队和组织需要增强其工具链的安全性和责任性。这就是为什么我们提供基于云的、独立的或自托管的 GitKraken 企业许可证选项,以满足各种政策的特定需求。
想要完全控制用户和许可管理以及 LDAP 集成的团队喜欢 GitKraken。使用我们针对组织的增强型许可证管理功能,可以更轻松地将个人许可证转让给新团队成员,并定制访问要求。
由于 TortoiseGit 仅适用于单个本地 Windows 环境,因此它不提供任何托管版本的软件,也不提供团队帐户管理或增强的安全选项。这意味着,如果你的团队使用 TortoiseGit 来管理你的 repos,那么手动管理另一个软件就成了你组织的管理员的责任。
The GitKraken team understands that enterprise teams and organizations need enhanced security and accountability for their tool chain.This is why we offer cloud-based, stand-alone, or self-hosted GitKraken enterprise license options to fit the specific needs of various policies.
企业支持
GitKraken ✅ | TortoiseGit ❌
TortoiseGit 的开源模型意味着它可以完全免费使用,但随之而来的是社区支持成为唯一的支持选项。社区支持通常是令人惊讶的— 我们也喜欢这个选项 —但是对于专注于构建企业软件的大型团队来说,拥有解决他们问题的单一事实来源不是可有可无的,而是至关重要的。
虽然 GitKraken 可以完全免费使用,并有社区支持,但许多客户选择 GitKraken,因为我们提供企业许可,可以直接获得我们的专业支持。能够快速连接到构建和维护工具的团队对于具有关键任务工作流的大型组织来说是非常有益的。拥有这种内心的平静有助于我们的顾客晚上睡得更好。
GitKraken ✅ | TortoiseGit ❌
下载、安装并运行 GitKraken Git GUI
既然我们已经做出了令人信服的 GitKraken vs TortoiseGit 论证,我们希望你能考虑加入北海巨妖家族。为了尽可能简单,我们提供了在您选择的操作系统上安装 GitKraken 的分步说明:
安装 git 卡拉基
gitkraken vs tower \下载 git krak 免费
Git 在软件行业越来越受欢迎,这导致了许多旨在使版本控制体验更快、更直观的工具的引入。增强开发人员 Git 工作流的最著名的工具是图形用户界面(GUI)。
目前市场上的大多数 Git GUIs 都提供了各种各样的特性,用于将 Git 命令简化为快速动作;许多人也非常注重让协作变得更容易。这就是为什么 GitKraken Git GUI 比 Tower 更受欢迎的原因。
比较塔与吉克拉肯
“GitKraken 正是我所需要的,因为它让我在我的三个构建平台(mac/win/linux)上使用 Git 的体验变得相同,而不必以令人讨厌的方式摆弄子模块,我只需点击并说‘请去获取它’”–@ larsiusprime
Linux 支持
去塔
作为市场上唯一真正的跨平台 Git GUIs 之一,GitKraken 很自豪能够提供 Linux 支持。相比之下,Tower 不能在 Linux 上使用。
As one of the only true cross-platform Git GUIs on the market, GitKraken is proud to offer Linux support. Tower, by comparison, cannot be used on Linux.
跨平台一致性
去塔
无论您选择使用哪种操作系统,GitKraken 都能提供无缝一致的体验。这是可能的,因为 GitKraken 是在电子上发展起来的。
团队中的个体开发人员偏爱不同的操作系统并不罕见;一个喜欢 Mac,而另一个则笃信 Linux。相信我们,我们明白。拥有一个与操作系统无关的工具,可以让你以更少的开销更快地训练你的团队,并且让你更容易与喜欢不同操作系统的同事合作。
此外,因为 GitKraken 团队只开发了一个跨平台的 Git GUI,而不是三个针对某个操作系统的不同工具,所以我们有能力更频繁地发布产品改进和新功能。
Furthermore, because the GitKraken team is only developing one cross-platform Git GUI, rather than three disparate tools specific to an OS, we have the ability to release product improvements and new features more frequently.
问题跟踪集成
去塔
除了 GitKraken Git GUI,没有其他 Git 客户端提供与最常用的问题跟踪工具的健壮集成。一个都没有。
GitKraken Git GUI 集成了以下问题跟踪器:
The GitKraken Git GUI integrates with the following issue trackers:
使用上述工具管理问题的用户可以直接从 GitKraken Git GUI 完成以下操作:查看、过滤和编辑问题/卡片,创建与问题/卡片相关的分支,以及创建新的问题/卡片。
Users who utilize one of the above tools to manage their issues can accomplish the following actions directly from the GitKraken Git GUI: view, filter, and edit issues/cards, create branches tied to issues/cards, and create new issues/cards.
这对于希望通过减少上下文切换来优化工作流的开发人员来说非常有用。
相比之下,Tower 不提供与上面列出的问题跟踪器的集成。
定价
【塔】
GitKraken 的定价模式比 Tower 的定价模式更灵活、更实惠。
GitKraken 👍 | Tower 👎
The pricing model for GitKraken is more flexible and affordable than the pricing model for Tower.
GitKraken 提供了一个免费的许可证,用于公共托管的存储库;Tower 不提供他们软件的免费版本。
让我们将它与 Tower 进行比较,后者没有免费版本,并向收取每年 69 美元的基本许可费,这是“单个用户的理想选择”
GitKraken offers a free license for use on publicly-hosted repositories; Tower does not offer a free version of their software.
Let’s compare this to Tower, which has no free version and charges $69 per year for their basic license, which is “ideal for single users.”
即使是 GitKraken 最贵的许可证——git kraken Enterprise——每个用户每月的起价也只有 8.95 美元(按年计费)。无论你是业余爱好者、个人开发者还是企业团队,GitKraken 都能以更好的价格提供更多的功能。就这么简单。
提交图形 UI
【塔】
请看, GitKraken Git GUI 显示的漂亮的 technicolor 提交图。
GitKraken 👍 | Tower 👎
通过 GitKraken 展示的电子公开回购
GitKraken 提交图旨在尽可能方便地导航您的提交历史,这样做不仅看起来很好,而且改善了其他 Git GUIs 中的可读性问题,如 Git Tower 客户端。
GitKraken 提供的可见性是无与伦比的,让您能够快速查看分叉存储库上的所有远程分支和活动。
通过塔楼展示的电子公开回购
虽然 Tower 试图通过压缩其图形来节省空间,但这可能会产生难以跟踪的混乱的分支,并引入扫描提交消息和通过使分支不对齐来查找分支名称的问题。
在 GitKraken 中,提交的每个分支在图中有自己的一列,分支名称列在左边的一列中。这使得定位分支、跟踪其提交和查找提交消息变得更加容易,因为所有文本都是左对齐的,这是人们在阅读长列表时所期望的。
此外,GitKraken 允许您调整图形的大小,以优化带有许多分支的较大 repos 的显示,始终保持提交整齐排列。
In GitKraken, each branch of commits gets its own column in the graph and the branch names are listed in a column to the left. This makes locating a branch, following its commits, and finding commit messages much easier because all text is left-aligned, as one would expect when reading a long list.
Additionally, GitKraken allows you to resize the graph to optimize your display for larger repos with numerous branches, always keeping the commits cleanly lined up.
工作副本&图中项目历史:
去塔
GitKraken 的图表允许用户看到他们正在进行的工作(在 GitKraken 中,这被称为WIP
)与项目的其余部分在一起。这意味着您可以查看(和编辑!)在与您可以查看项目历史中任何其他提交的更改相同的视图中查看 WIP 的内容。
GitKraken ✅ | Tower ❌
GitKraken’s graph allows users to see their work in progress (in GitKraken, this is called the WIP
) inline with the rest of the project. This means you can view (and edit!) the contents of your WIP in the same view as you can view the changes in any other commit in your project history.
另一方面,Git Tower 客户端将用户的“工作副本”分离到一个单独的选项卡中。这迫使开发人员在任何时候都要切换上下文,跳到一个新的显示画面,以查看他们的代码将如何影响整个项目。
The Git Tower client, on the other hand, separates a user’s “Working Copy” into a separate tab. This forces developers to switch context and jump to a new display anytime they want to see how their code will influence the project as a whole.
并排差异
去塔
GitKraken 的内置 Diff 工具是我们用户最喜欢的功能之一,让您能够快速查看文件中添加或删除了什么。我们的工具允许您选择单独的行或文件块来登台。
GitKraken 的 Diff 工具允许用户在Hunk
、Inline
和Split
视图之间轻松切换,并且包括单词区分、语法高亮、在变更集之间移动的箭头等等。
GitKraken’s built-in Diff Tool is one of our users’ favorite features, giving you the ability to quickly see what has been added to or removed from a file. Our tool allows you to choose individual lines or hunks of a file to stage.
GitKraken’s Diff Tool allows users to easily toggle between Hunk
, Inline
, and Split
views, and includes word diffing, syntax highlighting, arrows to move between change sets, and more.
拖放动作
【塔】
GitKraken 和 Tower 都为用户提供了执行拖放操作的能力,尽管 Tower 的功能有点有限。
使用 Tower,您可以创建、拉、推和合并分支,并启动交互式 rebase(确切地说,用于挤压、重新排序和修复)。在 GitKraken 中,您可以拖放来启动 Git interactive rebase 或创建一个 pull 请求(在设置了到相关托管服务的集成之后)。
虽然您确实可以在 Git Tower 客户端中使用拖放来启动交互式 rebase,但是执行此操作的体验远不如在 GitKraken 中直观。
首先,在“历史视图”中,也就是向您显示存储库中所有分支的历史的视图中,Tower 用户不能执行交互式的 rebase,或者任何其他前面提到的拖放操作。这是 GitKraken 在主界面中显示的中心图形(在这里我们所有的拖放操作都是可能的)。
那么,如何在 Tower 中使用拖放来启动交互式 rebase 呢?您必须首先在左侧面板中选择一个分支,这会将图形的上下文切换为只关注该分支。然后您可以拖放提交来压缩、重新排序和修复。然而,对于所选择的提交,一次只能完成这些操作中的一个。
First and foremost, Tower users cannot perform an interactive rebase, or any other previously mentioned drag-and-drop actions, while in “History View,” aka the view that shows you the history of all branches within the repository. This is the central graph that GitKraken displays in the main interface (where all of our drag-and-drop actions are possible).
在塔内进行交互式基础改造
😅我们花了一段时间才弄明白这一点,而且 Tower 的支持文档在交互式 rebase 部门中是缺乏的,并且没有提供方向。我们来对比一下在 GitKraken 的体验。
Psst:在我们的支持网站上,使用 GitKraken 中的交互式 Rebase 功能,在上获得清晰的分步说明。
在 GitKraken 中,用户可以通过从中央提交图中将一个分支拖放到另一个分支上来轻松启动交互式 rebase,而无需切换上下文或更改界面。
Psst: Get clear step-by-step instructions on using the Interactive Rebase feature in GitKraken on our support site.
在 GitKraken 中执行交互式 Rebase
使用 GitKraken,自信、快速、轻松地执行高级 Git 操作,如交互式 rebase,再也不用担心 rebase 了。
在拖放方面,Tower 和 GitKraken Git GUI 的另一个有意义的区别是可访问性。在 GitKraken 中,您可以从我们的左侧面板、中间的图形以及两者之间执行拖放操作。
在 Git Tower 客户端中,在图形和左侧面板之间进行拖放的能力非常有限,而且不够直观。例如,您可以将一个提交(同样,只有当您在左侧面板中选择了一个特定的分支时)拖到“Branches”标题上,以创建一个新的分支,或者在同一个分支上启动一个精选。塔用户没有能力将分支拖出图形,因为当选择一个分支时,拖放只对提交起作用;这使得您能够在 Tower 中通过拖放执行的操作非常有限。
Another meaningful difference between Tower and the GitKraken Git GUI when it comes to drag-and-drop is accessibility. In GitKraken, you can perform a drag-and-drop action from our left panel, the central graph, and between the two.
塔中的拖放功能
典型的例子是:你不能像在 GitKraken 中那样,将一个分支从图中拖到左面板中的另一个分支上进行合并、重定基础等操作。
git kraken 中的拖放功能
合并冲突解决
【塔】
GitKraken 和 Tower 都提供了解决应用内合并冲突的工具,但相似之处也仅此而已。
如果您在 GitKraken 中尝试执行合并时遇到冲突,我们的工具会在右侧提交面板中显示冲突文件。单击一个冲突文件将打开我们的合并冲突编辑器,在左边显示当前分支,在右边显示目标分支,在底部显示输出字段。
Both GitKraken and Tower offer tools for in-app merge conflict resolution, but that’s about where the similarities end.
If you encounter a conflict when attempting to perform a merge in GitKraken, our tool will display the conflicting files in the right Commit Panel. Clicking on a conflicted file will open our merge conflict editor, showing the current branch on the left, the target branch on the right, and an output field at the bottom.
从该工具中,用户可以选择文件中的所有更改、更改的单个部分,甚至是单个行,所有这些都显示有一个附带的复选框。选中一个框会将这段代码添加到输出字段,使您可以轻松地查看上下文中的选项,并决定哪一个更好。或者,付费用户可以直接在输出字段中编辑。解决冲突后,只需保存输出并提交更改。进入工作流程的下一步。
相比之下,在 Git Tower 客户机中解决合并冲突的经验非常有限。Tower 团队似乎同意这一点,鼓励人们使用外部合并和比较工具来代替他们自己的工具。
Tower 宣传了一个“冲突向导”,事实上,当文件之间发生冲突时,它会提醒您。然而,该工具严重缺乏上下文信息。简而言之,Tower 让你可以选择两个冲突文件中的一个或者合并它们。
By comparison, the experience of resolving a merge conflict in the Git Tower client is extremely limited. The Tower team seems to agree, pushing people to use external merge and diff tools in place of their own.
Tower advertises a “Conflict Wizard” which does, in fact, alert you when a conflict occurs between files. However, the tool is severely lacking in contextual information. In short, Tower gives you the option to either select one of the two conflicting files or combine them.
如果不在 Tower 中打开外部工具,您将无法查看代码更改或从多个文件中挑选更改。如果你已经确定“我的版本”或“他们的版本”是你想要提交的,那么 Tower 的冲突向导真的很有帮助。
免费开源:
去塔
GitKraken 不仅提供我们付费许可证的免费试用,我们还提供在公共托管库上使用的免费版本。我们的免费许可证附带了核心 Git GUI 特性。
GitKraken 还通过 GitHub 学生开发者包向学生和教师免费提供我们的 Pro 许可证。
Not only does GitKraken offer a free trial of our paid licenses, we also offer a free version for use on publicly-hosted repositories. Our free license comes with the core Git GUI features.
每个版本中包含的更新:
去塔
如果您订阅了 GitKraken,无论您使用的是什么许可证或何时购买的,每次发布新软件时,都会提示您更新应用程序。
通过 Tower 2.0,购买者需要购买单独的版本。所以 1 号塔,2 号塔等等。当有新版本时,塔式机客户可以以 50%的折扣购买最新版本。
If you have a GitKraken subscription, regardless of what license you’re on or when you purchased, you will be prompted to update your application upon each new software release.
Banner from Tower 网站广告 2020 年 3 月升级定价。
虽然 Tower 现在通过年度订阅模式独家提供他们的产品,但过去令人困惑的许可证结构继续对他们的传统客户产生最显著的影响。
GitKraken 通过向每个用户提供我们的软件更新来避免所有这些混乱,无论您购买的是什么许可证。
另外,我们频繁的发布节奏和幽默的发布说明也是我们让 Tower 大放异彩的另一个领域。通过 GitKraken 时间轴查看我们的完整发布历史。
GitKraken avoids all of that confusion by making our software updates available to every user, no matter what license you purchased.
免费 Git 教育内容
去塔
GitKraken 团队为我们提供的教育内容感到自豪;它完全免费,所有人都可以使用。我们不会限制我们的内容或要求任何联系信息来访问我们的材料和资源。
GitKraken ✅ | Tower ❌
查看我们丰富的 Git 教育数据库,里面有免费视频、教程、小抄等等。
毫无疑问,Tower 在其网站上也有一份经过深思熟虑的 Git 教育材料汇编,而且绝大多数都是免费提供的。
然而,如果你想下载他们的备忘单,你需要提交你的电子邮件地址并订阅通讯。
No doubt, Tower also has a thoughtful compilation of Git educational materials on its website, and the vast majority is offered for free.
However, if you want to download any of their cheat sheets, you’re required to submit your email address and subscribe to communications.
GitKraken 在我们的网站和 YouTube 频道上完全免费提供我们所有的学习 Git 视频教程,无论经验水平如何。相比之下,Tower 对他们的一些教育内容收费。
在其网站上公布教育套餐的广告价格(2020 年 3 月)
准备好切换了吗?
既然我们已经提出了一个令人信服的 GitKraken vs Tower 的论点,我们希望你会考虑切换到 GitKraken Git GUI 。
**Ready to make the switch? **
Now that we’ve made a convincing GitKraken vs Tower argument, we hope you will consider making the switch to GitKraken Git GUI.
GitLab CI |如何使用与 GitKraken Git GUI 的持续集成
这篇文章是一位客座作者写的。
配合 GitKraken 使用 git lab CI
在当今的软件开发世界中,最受重视的实践之一是 CI,即持续集成。
持续集成是 CI/CD 管道的第一步,是整个 DevOps 思维和方法的推动者。竞争情报是现代软件开发的基础。鉴于这是正确安装 DevOps 的第一步,因此必须正确安装至关重要。
假设您有一个应用程序,它的代码在 GitLab 存储库中。开发人员每天都会推送代码变更,甚至一天多次。随着每个变更提交到应用程序的代码库,必须创建和测试一个新的构建。
涉及 GitLab CI 的最简单的持续集成流程之一包括以下阶段:
- 将更改推送到 GitLab 。
- 构建应用——由 GitLab runner 执行的过程,包括将源代码打包到独立的软件工件中(我们将在本文后面提供一个带有 Docker 映像的例子)。
- 测试应用程序——由 GitLab runner 执行的过程,目的是在部署我们的应用程序之前验证我们的代码更改——在我们的例子中使用服务或工具 pylint。
定义 GitLab CI/CD
我们想要实现的是一个零错误的稳定应用程序,同时遵守指导方针和代码遵从标准。
基本上,我们希望不断地构建、测试和部署迭代代码变更。再往下,我们可以看到整个 GitLab CI/CD 流程的高级图。
趣闻: GitLab 本身就是一个把持续集成作为软件开发方法#ouroboros 的项目的例子。
再往下,我们有连续交付,这意味着不仅我们的应用程序在每次代码变更被推送到存储库时都被构建和测试,而且应用程序也必须被连续部署。然而,使用连续投放,我们手动触发部署,而不是自动触发的连续部署。
我们的目标是使部署可预测且稳定,无论是大规模分布式系统还是复杂的生产环境。 连续部署 下一步过去 连续交付。 部署测试过的变更不需要人工干预。
如何实施 GitLab CI
从工具的角度来看,我们需要一个 GitLab repo 和 GitKraken Git GUI 来演示一个适当的 GitLab CI/CD 流。
剧透:通过 GitKraken 的无缝集成和可视化提交图,实现 CI/CD 工作流要容易得多。你还在等什么?⬇️
GitLab CI yml 文件
GitLab 持续集成的主要组件之一是。gitlab-ci.yml,它位于存储库的根目录中,包含 GitLab CI/CD 配置。
首先,我们来谈谈 Git 仓库的结构。我们有自己的应用程序,在本例中,是用 Python 编写的 Prometheus exporter 基本上是一个公开 API 的应用程序。
我们存储库的布局包括:
- app.py + requirements.txt(我们的应用和依赖项)
- Docker file–包含将我们的应用程序打包成 Docker 映像所需的所有命令的文件
- curl _ test . sh——我们的端点的一些基本测试
- 。git ignore–从 git 跟踪中排除某些文件
- 。git lab-ci . yml–描述我们的管道流程
正如我们之前提到的,我们需要对构建过程进行一些扩展。我们构建过程的核心是 Dockerfile ,它提供了将我们的应用程序打包成 Docker 映像的方法(命令)。构建使用 Dockerfile 文件和“上下文”。上下文是构建映像的目录中的一组文件;基本上,Docker 会通过读取 Docker 文件中的指令来自动构建映像。
GitLabs CI/CD 核心组件:
- 管道:持续集成、交付和部署的顶层组件。
- runner : GitLab 使用不同服务器上的 runner 来实际执行一个管道中的作业;GitLab 提供了 runner 来使用,但是你也可以作为runner来运行你自己的服务器。
- 作业:定义做什么的基本配置组件(如编译或测试代码)。
- 阶段:定义何时运行作业。
简而言之,作业正由运行者执行,阶段提供了一种组织作业的方式(例如,如果多个作业在同一个阶段,它们被并行执行)。如果一个阶段中的所有作业成功,则流水线移动到下一个**阶段;**否则,一个作业失败,整个流水线都会失败。
下面是一个具体的例子,我们有三个阶段(构建、测试、部署)。在测试级阶段,有两个并行执行的测试作业,如果其中一个失败,管道将失败,部署阶段将不会执行。
从 GitKraken 触发 git lab CI
gitlab-ci.yml 文件根据构成管道的作业描述了我们的工作流,后者是 GitLab CI/CD 的顶级组件。
当我们在 GitKraken Git GUI 中添加一个. gitlab-ci.yml 文件到我们的存储库时,gitlab 会自动检测它,一个名为 GitLab Runner 的应用程序会运行阶段中定义的步骤。
下面我们可以看到。gitlab-ci.yml 文件显示在 GitKraken 的应用内文本编辑器中。
从一个高层次的角度来看,我们的管道有四个由运行者执行的主要任务,其中两个是并行执行的:test-code-job1 和 test-code-job2。
我们的目标是触发 GitLab CI 流程;这意味着直接从 GitKraken 构建/打包、测试并最终部署我们的应用程序。
使用 GitKraken 这样的工具,可视化 CI/CD 工作流更加直观,因此您的整个团队都可以做出贡献,无论他们的技能水平如何。
为了更好地查看我们的工作流,我们将使用**标签,**标签对于标记特定的部署和发布以供以后参考非常有用。
GitTip:了解如何在 GitKraken 中使用标签,包括如何 Git 推送标签以及如何结帐 Git 标签。
标签的创建和注释都是直接从 GitKraken 中完成的,所以不需要使用像git tag -a v1.0 -m 'Version X.Y'
这样的命令。
Git 标签提供了将历史中的特定点——提交——标记为重要点并将其“标记”为发布版本的能力。
在我们推送我们的更改之后,我们可以看到构建过程已经被触发,因此,在 repositoryContainer Registry选项卡下,我们可以看到我们的工件:带有所需标签的 Docker 图像。在 GitLab CI 中,每个项目都可以有自己的容器注册空间来存储图像。
根据前面提到的概念,我们可以看到用正确的工具发布新的代码变更(升级到9.0版本)是多么容易💻关于 CI/CD 最佳实践。
https://www.youtube.com/embed/putJq1WZ9eU?feature=oembed
视频
准备好配合 GitKraken 使用 GitLab CI 了吗?
正如所料,GitLab CI 工作流有多种风格/变化,但是一旦您有了一个稳定和清晰的工作流,您将能够在以后轻松地扩展它。
GitLab 使我们能够建立和发展健康的 CI/CD 实践,而 GitKraken Git GUI 通过提供灵活性和简化整个流程,为整个生态系统带来附加值,使管理整个管道变得更加容易,并具有更好的可见性。
开始持续集成可能看起来势不可挡,但是在 GitKraken 的帮助下,您和您的团队将很快开始 CI/CD 工作流。
Linux 的最佳 GitLab 客户端|免费下载 GitKraken
这篇文章是一位客座作者写的。
GitKraken Git 客户端和 GitLab ==天造地设的一对
在 DevOps 领域工作,我经常发现自己需要在相对较短的时间内交付一个特性或一个改进(基本上是一段代码),甚至并行处理不同的任务。
一个相当通用的软件开发栈包括:
- Linux 环境
- 一个版本控制系统(通常是 Git)和一个 Git 客户端(比如 GitKraken Git GUI
- 一个提供一些持续集成和部署特性的平台(这里是 GitLab)
Git 中的存储库和分支管理从未如此简单。利用 GitKraken 提供的可视化功能,获得对 Git 工作流的更多控制。
Git 中的存储库管理
开始时,这似乎不是什么难以管理的事情,但是随着项目数量的增加,项目之间的技术堆栈也不同,维护和使用各种类型的设置往往变得相当难以管理,即使对于一个有经验的软件工程师来说也是如此。
对于初学者来说,这种情况可能会令人望而生畏。尽管我是 CLI 的忠实粉丝,但我可以诚实地承认,我一直被困在仓库地狱中,有无尽的 Git 仓库、远程分支和依赖项。
管理 GitLab 库的 Git 客户端
这是我知道我需要一个 Git 客户机的时刻。在尝试了多个变体之后,我感觉最舒服的一个是 GitKraken,最棒的是它不需要任何依赖(甚至不需要 Git);它只是直接与你的 GitLab 库一起工作。此外,GitKraken 是少数几个支持 Linux 的 Git 客户端之一。
首先引起我注意的是 GitKraken 直观的布局。一个具体的例子是查看所有远程分支的可能性,以及您可以轻松地签出远程 Git 分支。
在分布式环境中工作的一个普通任务是 Git SSH 密钥设置。跟踪 SSH 密钥并将它们添加到遥控器通常是团队中新成员的首要任务之一,这对于新手来说有时会很麻烦。
GitKraken 通过提供与 GitLab 的无缝集成,轻松解决了这个问题;不需要使用ssh-keygen
,将公钥复制到您的远程存储库,或者管理~/。ssh/config。GitLab SSH 密钥配置完全由 GitKraken 管理。
GitLab 拉取请求
另一个真正加速开发过程的很酷的特性是可以在 Linux 上的 GitKraken Git GUI 中快速创建 GitLab pull 请求。
对于一个新特性,通常过程包括创建一个新的 Git 分支(通常来自开发分支),添加所需的修改,将分支推送到您的远程,然后是一个合并请求。
所有这些任务都可以在几秒钟内从 Git 客户端执行,只需将一个分支拖放到另一个分支上,然后选择Start a pull request
。使用 GitKraken 合并本地机器上的分支有相同的过程,只需拖放即可。
只要您连接到 GitLab 远程存储库,就可以直接在 Linux 上的 Git 客户机中方便地管理您的 Git pull 请求。
GitKraken 的拉取请求功能与 GitLab 的集成非常好,它甚至允许用户通过在 GitLab 的合并请求视图的浏览器中打开一个新标签来打开和查看 GitLab 中的拉取请求。GitKraken 的 GitLab 集成提供了跨所有操作系统的无缝体验,包括 Linux。
GitLab 问题
GitKraken 还为 GitLab 问题提供了一个特性,使团队能够使用 Linux 上的 Git 客户端进行协作和计划工作。
GitLab Issues
GitKraken 完全支持与 GitLab 问题的集成,允许用户查看、更新、添加对某个 Gitlab 问题的评论,并创建与该特定问题相关的分支。
GitKraken 是唯一提供问题跟踪集成的 Git 客户端。这允许您减少上下文切换,节省您宝贵的编码时间。
撤销命令行中的 Git 错误
最后但同样重要的是,Git 最棘手的问题之一是撤销操作的过程。
从高层次的角度来看,Git 与以下三个主要的名称空间/区域“协同工作”:
工作目录(“未跟踪”区域)
索引(临时区域)
本地存储库(下的所有内容。git 目录)
- Working directory (“untracked” area)
- Index (staging area)
- 因此,假设您想要撤销最近所做的更改,例如撤销 Git 提交。虽然这看起来是一个简单的过程,但是会出现一些挑战,比如更改后的文件处于哪种状态?我们要撤消所有更改吗?对于一个相当简单的用例,比如更新一个文件(比如 Dockerfile),需要执行一些命令。
那么,如果我们想撤销对 docker 文件所做的更改,会发生什么呢?从技术上来说,我们需要撤销我们的本地工作,更确切地说是撤销最后一次提交,并为了修改文件而对文件进行卸载。
这可以通过在 CLI 中使用以下命令来实现:
这些命令是准备提交文件并随后将其带回工作区所必需的。
更不用说后面的命令还穿插着git status
命令(显示你所在区域的状态)。前一个场景实际上非常简单,因为在一个文件中只做了一个更改。这仍然需要在 CLI 中执行五个命令。😰
git add <FILE>
git commit -m '<COMMIT MESSAGE>’
git reset --soft HEAD^1
git reset HEAD <FILE>
git checkout -f <FILE>
使用 Git 客户端一键撤销 Git 错误
如果我们在 Linux 上使用 GitLab 的 GitKraken Git 客户端来做同样的场景,这将是一个毫不费力的动作,不用说,我们将拥有所有 Git 区域的可视化表示。更容易跟踪文件的状态,并且在多个文件发生多次更改的情况下,灵活程度会更大。
Undo Git Mistakes in 1 Click with a Git Client
Git lab 和 Linux 的 Git 客户端
随着我越来越多地使用 GitKraken,我发现它不仅仅是一个 GUI 这是一个成熟的工具,通过直观的设计和无缝集成提供了一种提高效率的方法。它的设计方式有助于用户理解 Git,并支持流畅的工作流。
GitKraken 的撤销/恢复功能让您可以更好地控制高级 Git 操作,使它们更加安全,同时让您高枕无忧。🧘♂️
As I used GitKraken more and more, I discovered that it’s more than a GUI; it’s a fully fledged tool that provides a way to increase efficiency through intuitive design and seamless integrations. It’s designed in such a way that helps the user to make sense of Git and enables a fluid workflow.
GitKraken’s Undo/Redo gives you more control over advanced Git actions, making them more secure while giving you peace of mind.🧘♂️
你应该使用哪个 GitLab GUI?|免费下载 GitKraken
这篇文章是一位客座作者写的。
gitkrak GUI+gitlab =超棒的工作流程
GitKraken 让我的开发生活变得简单了吗?
我作为一名年轻的枪械技师在 Pipefy 工作已经 6 个月了。在这几个月里,我学到了很多东西,并使用了各种工具来简化我的工作。
在这篇文章中,我将谈论我如何使用 GitLab 上运行的 GitKraken Git,因为这两个工具有着惊人的集成。这样你就可以像我一样加快工作流程。🏎💭
有了 GitKraken,你可以:处理 GitLab 拉取请求,执行代码审查,执行 Git rebase , Git cherry pick ,以及其他一些很酷的东西,只需点击几下,不需要浏览器。快如闪电和简单易行——我相信这两样东西我们都很重视。
感谢 GitKraken 提供的 GitLab 集成,你可以在眨眼之间与你的团队成员分享你所有的精彩代码。你想知道怎么做吗?
GitKraken 是一个用于 Git 的跨平台 GUI,它简化并优化了 Git 过程,尤其是当我需要使用除我信任的 Ubuntu 笔记本电脑之外的其他机器时。
GitKraken Git GUI 与 GitLab 配合得非常好,Git lab 是一种基于 Git 的协作软件开发和版本控制 web 服务。在我的例子中,我们使用 Pipefy 的 GitLab 自托管集成。
GitKraken 的 GitLab 集成使认证过程变得简单而安全,因此您可以直接在您的远程设备上工作,即使您是 Git 的新手。
拖放到 Git 合并
我最喜欢 GitLab 的 GitKraken Git GUI 的一个特性是进行 Git 合并时的交互性。只要将你的分支拖放到你想要合并的分支上。很简单,对吧?
我最喜欢 GitLab 的 GitKraken Git GUI 的一个特性是进行 Git 合并时的交互性。只要将你的分支拖放到你想要合并的分支上。很简单,对吧?
在 GitKraken 中执行合并时,您可以很容易地在一堆选项中进行选择。让我们回顾一下我最常用(也最喜欢)的一些 GitLab GUI 特性:
在 GitKraken 中执行合并时,您可以很容易地在一堆选项中进行选择。让我们回顾一下我最常用(也最喜欢)的一些 GitLab GUI 特性:
快速解释您的 GitLab 拉取请求
快速解释您的 GitLab 拉取请求
“Push my/awesome/branch and start a new pull request to origin/main”
“Push my/awesome/branch and start a new pull request to origin/main”
从 GitKraken Git GUI 创建 GitLab pull 请求的功能是超级不可思议的。我可以直接在 GitKraken 上向我的 Git pull 请求添加标题、描述、受托人等等,而不需要浏览器。
此外,我们还可以通过单击鼠标来可视化我们在 GitLab 上的 Git pull 请求模板上编写的内容,正如您在这个示例中看到的。
此外,我们还可以通过单击鼠标来可视化我们在 GitLab 上的 Git pull 请求模板上编写的内容,正如您在这个示例中看到的。
您还可以看到 GitLab 中反映的变化:
不痛不痒
“Rebase /awesome/branch onto origin/main.”
当在 GitKraken Git GUI 中选择 Git rebase 选项时,您可以轻松地并排查看文件差异,并选择保留哪些更改和放弃哪些更改。
我发现这比使用 Nano 更简单快捷,Nano 是我 Ubuntu 设置中的默认文本编辑器。当我在终端中工作时,有时我想保留来自源和本地分支的更改,而其他时候,我只想保留来自一个分支的更改。在 GitKraken 中,我可以简单地选中一些复选框并继续!
“Rebase /awesome/branch onto origin/main.”
“在做了一次基础调整后,我不得不修复一个冲突,但是命令行给我呈现了令人困惑的交织在一起的 10 段代码。@GitKraken 只给了我两大块就解决了问题。我只需要检查两边就可以了。谢谢大家!”–@ royce _ tech
我发现这比使用 Nano 更简单快捷,Nano 是我 Ubuntu 设置中的默认文本编辑器。当我在终端中工作时,有时我想保留来自源和本地分支的更改,而其他时候,我只想保留来自一个分支的更改。在 GitKraken 中,我可以简单地选中一些复选框并继续!
一键签出 Git 分支
GitLab 的 GitKraken Git GU 中我喜欢的另一个很酷的功能是从团队中查找最近的合并请求,或者只是从搜索栏中查找特定的 PR。GitKraken 的搜索速度和 Sonic 一样快!🦔
当您想在 GitLab 中查看一个 pull 请求或者在您的本地机器上检查它们时,这可能特别有用。不管你是像我一样使用 Mac、Windows 还是 Ubuntu Linux,你都可以查看你的 GitLab pull 请求,而不用在浏览器上寻找它们!
查看 Git 差异
在发送 Git 合并请求之前,另一件重要的事情是查看我们的更改。幸运的是,我们可以非常快地做到这一点,因为 GitLab 的 GitKraken Git GUI 将突出显示我们的更改,因此您可以很容易地看到文件的“之前”和“之后”😃!
这些差异可以显示在同一行中(如下图所示),也可以并排显示。选一个你最喜欢的!
GitKraken 去 GitLab 的 GUI
这些功能可能看起来很简单,但在日常生活中,它们帮助我改善了我的工作流程,对此我非常感激。这样我就可以专注于为 Pipefy 带来令人惊叹的功能。
我知道你也想改进你的工作流程!所以试试 GitLab 的 GitKraken Git GUI 。它易于使用,但功能不减;相反,它强大得不可思议!💪
综上所述,我最看重 GitKraken 的东西是:
在发送 Git 合并请求之前,另一件重要的事情是查看我们的更改。幸运的是,我们可以非常快地做到这一点,因为 GitLab 的 GitKraken Git GUI 将突出显示我们的更改,因此您可以很容易地看到文件的“之前”和“之后”😃!
从我的经验来看,我可以说现在我只需点击几下鼠标,就可以从一个工具中完成 GitLab 拉取请求、合并请求审查、Git rebase、Git cherry pick 和其他事情。
在 GitLab 中使用 GitKraken GUI 的方法上,您是否有所启发?你现在可以开始使用 GitKraken 了!免费的!它兼容所有平台(Windows、Linux、MacOS),你可以在这里下载 GitKraken。
Git 可能很复杂,尤其是当你试图记忆命令的时候。如果你是 Git 新手,GitKraken 会加快学习过程,这样你就可以专注于代码。
这些功能可能看起来很简单,但在日常生活中,它们帮助我改善了我的工作流程,对此我非常感激。这样我就可以专注于为 Pipefy 带来令人惊叹的功能。
我知道你也想改进你的工作流程!所以试试 GitLab 的 GitKraken Git GUI 。它易于使用,但功能不减;相反,它强大得不可思议!💪
综上所述,我最看重 GitKraken 的东西是:
从我的经验来看,我可以说现在我只需点击几下鼠标,就可以从一个工具中完成 GitLab 拉取请求、合并请求审查、Git rebase、Git cherry pick 和其他事情。
在 GitLab 中使用 GitKraken GUI 的方法上,您是否有所启发?你现在可以开始使用 GitKraken 了!免费的!它兼容所有平台(Windows、Linux、MacOS),你可以在这里下载 GitKraken。
Git 可能很复杂,尤其是当你试图记忆命令的时候。如果你是 Git 新手,GitKraken 会加快学习过程,这样你就可以专注于代码。
GitLens 12.1 -丰富的 GitLab 集成和改进的自动链接
我们很自豪地向全世界介绍 GitLens 的最新版本。我们增加了更丰富的 GitLab 集成、Gerrit 支持、在创建交互式 rebase 时重新排序提交的能力等等。我们迫不及待地想让您了解 GitLens 12.1 的所有新功能!
更丰富的 GitLab 集成
利用g itLab.com管理回购协议的用户现在将体验到与 GitLens 更强大的集成,比以往任何时候都更容易在 VS 代码中释放 Git 的全部力量。
GitLens 现在可以自动将合并请求与 GitLens 所熟知的行注释关联起来。合并请求也会出现在 hovers 中,它提供了关于提交、合并请求以及任何相关问题的更多信息。合并请求也会显示在状态栏中。GitLab 用户会很高兴看到他们的 GitLab 头像与注释和悬停相关联。GitLens 视图现在将显示分支和提交的相关合并请求,以及 GitLab 问题的丰富自动链接,包括标题、状态和作者信息。
https://www.youtube.com/embed/59Gwvj8somU?feature=oembed
视频
https://www.youtube.com/embed/59Gwvj8somU?feature=oembed
视频
GitLens+支持 GitLab 自管理
如果您的组织正在使用 GitLab 自我管理回购,您现在将能够通过付费 GitLens+ plan 在 VS 代码中释放 Git 的全部潜力。GitLab 自管理存储库托管支持许多具有特定安全和 IT 管理需求的企业。我们很高兴能够帮助管理这些回购更加容易。
如果您的组织正在使用 GitLab 自我管理回购,您现在将能够通过付费 GitLens+ plan 在 VS 代码中释放 Git 的全部潜力。GitLab 自管理存储库托管支持许多具有特定安全和 IT 管理需求的企业。我们很高兴能够帮助管理这些回购更加容易。
解锁付费 GitLens+计划的所有优势,包括丰富的 GitLab 自我管理集成。
解锁付费 GitLens+计划的所有优势,包括丰富的 GitLab 自我管理集成。
添加和更新内脏设置中的自动链接
将 GitLens 与 GitHub 和 GitLab 等服务集成的用户喜欢 GitLens 自动链接到问题,并在提交比较中引用请求。现在,吉拉问题或 Zendesk 门票的粉丝可以通过在 GitLens 设置中定义自己的外部参考来获得自动链接的功能。
现在你可以在 GitLens 设置里面找到Autolinks
部分。达到这个设置的最快方法之一是打开命令面板, ⇧⌘P 并输入GitLens: Configure Autolinks
。这将打开 GitLens 设置的Autolinks
部分,在这里你可以确定你将在提交消息中使用的外部引用,GitLens 会将这些引用转换成可点击的链接。
将 GitLens 与 GitHub 和 GitLab 等服务集成的用户喜欢 GitLens 自动链接到问题,并在提交比较中引用请求。现在,吉拉问题或 Zendesk 门票的粉丝可以通过在 GitLens 设置中定义自己的外部参考来获得自动链接的功能。
现在你可以在 GitLens 设置里面找到Autolinks
部分。达到这个设置的最快方法之一是打开命令面板, ⇧⌘P 并输入GitLens: Configure Autolinks
。这将打开 GitLens 设置的Autolinks
部分,在这里你可以确定你将在提交消息中使用的外部引用,GitLens 会将这些引用转换成可点击的链接。
https://www.youtube.com/embed/9sjQDYIBxYk?feature=oembed
视频
重新排序交互式 rebase
GitLens 使得处理 Git rebase 变得非常简单,这是更复杂但极其有用的 Git 特性之一。GitLens 交互式 rebase 编辑器可以帮助你轻松清理你的代码历史。
一些用户更喜欢认为他们的提交图的顺序是升序,而一些人认为提交越多,提交图的顺序就越低。我们认为两者都是正确的。GitLens 现在允许用户在交互式 rebase 编辑器中切换显示提交的顺序。
重新排序交互式 rebase
https://www.youtube.com/embed/s6plz4UX_BM?feature=oembed
视频
改进的注释
文件热图
GitLens 现在比以往任何时候都更容易在使用文件热图注释时快速区分旧代码和最近添加的代码行。GitLens 将在编辑器中突出显示较新的代码行,以便更容易识别最近发生了什么变化。此外,较老的代码行将被淡出,但仍然可见,从而清楚地表明哪些代码已经存在了一段时间!
文件更改
能够快速识别文件中的更改非常重要。无论是为了确定您尚未修改的文件在最后一次提交时发生了什么变化,还是为了查看已经发生了变化但尚未提交的文件,GitLens 文件更改注释已经涵盖了所有内容。现在,比以往任何时候都更容易快速找到添加或更改的确切行。从“文件注释”菜单中选择“文件更改”,现在将在编辑器中突出显示相关的代码更改,帮助您更快地完成工作!
普通 Gerrit 支持
Gerrit 是目前最流行的基于 Git 的开源代码评审工具之一。为世界上最流行的 VS 代码 Git 扩展添加 Gerrit 支持是非常有意义的!新的集成一定会让所有 Gerrit 和 GitLens 用户疯狂地进行代码审查!
每天都有更好的协作
GitLens 致力于让你在 VS 代码中的工作更容易释放 Git 的力量。随着 rush GitLab 支持和 vanilla Gerrit 集成的加入,我们比以往任何时候都更容易连接到您的首选工具链。没有出色的 GitLens 社区的反馈,我们无法做出这些改进。如果您对我们如何使 GitLens 变得更好有任何建议或想法,我们邀请您在 GitLens GitHub repo 上发表您的意见。
我们期待着帮助更多的 VS 代码用户利用世界上最受欢迎的版本控制系统!
能够快速识别文件中的更改非常重要。无论是为了确定您尚未修改的文件在最后一次提交时发生了什么变化,还是为了查看已经发生了变化但尚未提交的文件,GitLens 文件更改注释已经涵盖了所有内容。现在,比以往任何时候都更容易快速找到添加或更改的确切行。从“文件注释”菜单中选择“文件更改”,现在将在编辑器中突出显示相关的代码更改,帮助您更快地完成工作!
使用免费的 GitLens+帐户从 Git 中获得更多。利用工作树和可视化文件历史记录等附加功能,更多功能即将推出。
普通 Gerrit 支持
Gerrit 是目前最流行的基于 Git 的开源代码评审工具之一。为世界上最流行的 VS 代码 Git 扩展添加 Gerrit 支持是非常有意义的!新的集成一定会让所有 Gerrit 和 GitLens 用户疯狂地进行代码审查!
每天都有更好的协作
GitLens 致力于让你在 VS 代码中的工作更容易释放 Git 的力量。随着 rush GitLab 支持和 vanilla Gerrit 集成的加入,我们比以往任何时候都更容易连接到您的首选工具链。没有出色的 GitLens 社区的反馈,我们无法做出这些改进。如果您对我们如何使 GitLens 变得更好有任何建议或想法,我们邀请您在 GitLens GitHub repo 上发表您的意见。
我们期待着帮助更多的 VS 代码用户利用世界上最受欢迎的版本控制系统!
We are looking forward to helping even more VS Code users leverage the world’s favorite version control system!
使用免费的 GitLens+帐户从 Git 中获得更多。利用工作树和可视化文件历史记录等附加功能,更多功能即将推出。
Get more out of Git with a free GitLens+ account. Leverage additional features like Worktrees and Visual File History, with more coming soon.
Sign up for GitLens+ for free!
GitKraken 宣布 GitLens 12 - VS 网络支持代码
原文:https://www.gitkraken.com/press/gitlens-12-vs-code-for-the-web-support
亚利桑那州斯科茨代尔,2022 年 2 月 28 日——全球领先的 Git 工具Git lens 12 宣布推出,包括支持 Web 和 github.dev 的 Visual Studio 代码。此外,GitLens+有史以来第一个功能,如工作树和可视文件历史,可通过 GitLens+、Pro 和企业计划获得。
“将 GitLens 的强大功能带到网络上是一个不可思议的里程碑,为开发者带来了引人注目的新机遇。GitLens 创始人兼 git kraken CTO/CPO Eric Amodio 表示:“现在,每个人都可以直接从浏览器访问 GitLens 丰富的见解,更好地了解事情发生变化的原因、时间和人员。”我们还为 GitLens 用户添加了几个强大的新功能,如 Worktrees,使开发人员能够无缝地在任务之间周旋,而不必隐藏或切换分支,以及可视化文件历史,以提供更多关于文件如何随时间演变的见解。"
GitLens 12 是最流行的 VS 代码扩展之一,为Visual Studio Web 代码 提供支持,让用户能够在桌面或平板电脑上的 Web 浏览器中编辑 VS 代码中的 GitHub 库,无需安装。现在,开发人员可以在 vscode.dev 和 github.dev 上享受他们在 VS Code desktop 中喜欢使用的许多 GitLens 功能
微软首席产品经理克里斯·迪亚斯(Chris Dias)说:“自从把 Visual Studio 代码带回网络以来,我们一直在努力想象如何扩展基于浏览器的编码环境。“从扩展的角度来看,我们看到的势头确实令人兴奋,我们非常高兴 GitLens 成为早期采用者。我们希望 Eric 和 GitKraken 团队所做的工作将激励其他人重新思考如何以及在哪里可以使用他们的工具,我们期待在 3 月 3 日的 VS Code Day 上听到更多关于 Eric 作为主题演讲人的旅程的信息。”
此版本还引入了升级的 GitLens 计划。GitLens+是一个免费计划,提供对公共存储库的高级功能的访问。GitLens+ Pro 是一个付费订阅,提供对私有和公共存储库的高级功能的访问,以及优先支持和更多好处。
GitLens+和付费用户可以访问工作树和可视文件历史等附加功能。Worktrees 使得在同一个 repo 上一次签出多个分支成为可能,而可视化文件历史可以可视化文件随时间的变化。
GitKraken 首席执行官 Matt Johnston 表示:“今天的发布是一个伟大的里程碑——对于 GitLens 用户、产品和我们公司而言。“对于所有 GitLens 用户来说,这不仅是一个重大版本,也是创建 GitLens+功能和企业集成的第一步,这将在未来带来更强大的 GitLens。”
在将 GitLens 引入 GitKraken 工具组合后,GitLens 的开发速度加快了,来自流行的 GitKraken 桌面 Git 客户端的功能正在进入 GitLens。很快,GitLens+和 GitLens+ Pro 将为用户提供对 VS 代码中 GitKraken 提交图等功能的访问,以便为 Git 存储库提供更多可视化上下文,以及对 GitHub Enterprise 的支持。
关于 GitKraken: GitKraken 提供了一套顶级的 Git 工具,帮助数百万开发人员每天都有更高的工作效率——世界各地的团队也能更紧密地合作。我们的产品为开发人员服务,无论他们在哪里,无论他们在哪里编码,无论是在他们的 IDE 中,在他们的桌面上还是在他们的问题跟踪系统中。来自全球 100,000 家公司的 1000 多万开发人员依靠 GitKraken 的工具让 Git 为他们工作。更多信息请点击 www.gitkraken.com。
GitLens 12 -支持 Web/Online 的 Visual Studio 代码
GitLens 用户欢欣鼓舞!此版本引入了令人兴奋的更新,包括对 VS 代码在线中基于浏览器的编辑体验的预览支持,传奇的新 GitLens+功能,如工作树和可视化文件历史,等等!请继续阅读,了解 GitLens 12 的新功能。
VS Web 代码–预览支持
用户现在能够在 Web 的 Visual Studio 代码中利用 GitLens,它提供了在线 VS 代码的文本编辑体验,直接在浏览器中,无需安装。现在,任何人都可以通过 vscode.dev 或 github.dev 使用 GitHub repos 来访问 GitLens 的功能。对于 vscode.dev 和 GitLens 用户来说,这是一个巨大的进步,我们非常自豪能够成为 vscode 发展的这个大胆的、具有前瞻性的阶段的一部分。GitLens 利用 GitHub 存储库对 Web 提供的代码的支持,授予用户访问 Git 功能的权限。
这个特性是关于将 GitLens 的力量带到网络上,扩展了人们喜爱的特性,如内嵌责备、责备注释、热图和历史导航。即使您没有本地克隆的 repo,您也可以很容易地看到比较以前版本的热图视图,或者看到并排的文件责任视图,以了解单行提交历史的底部。GitLens 12 在查看或编辑 GitHub repos 时会覆盖 github.dev 和 vscode.dev。
用于 Web 的 Visual Studio 代码
2021 年 10 月,Visual Studio 代码团队宣布他们将把 VS 代码带到浏览器中。这是一个完全的浏览器内代码编辑体验,让 VS 代码用户利用他们最喜欢的 IDE,即使远离他们的本地机器。这个项目向 VS Code 的目标迈出了重要的一步,即提供一个“短暂的编辑器,任何人只要有浏览器和互联网连接就可以使用它。”
在 vscode.dev 或 github.dev 中添加 GitLens,就像在桌面上添加到 VS 代码一样简单。只需打开扩展菜单,寻找 GitKraken 的 GitLens。
GitLens+功能介绍
从今天开始,GitLens 用户可以享受新的 GitLens+功能,这将进一步增强您的 Git 体验。你所要做的就是创建一个免费账户,就可以在公共回购上使用这些功能!
GitLens+功能介绍
目前的 GitLens 用户应该注意:所有核心功能将继续免费,无需帐户,因此您不会失去对任何您了解和喜爱的 GitLens 功能的访问。GitLens+功能完全是附加的,提供了更丰富、更强大的体验。
可视文件历史
跟踪您的每个存储库的历史可能是一个挑战,尤其是当项目从几天延续到几周甚至几年的时候。拥有可视化项目历史的能力使得处理代码库如何发展变得更加容易,这反过来帮助开发人员做出更明智的决策。
目前的 GitLens 用户应该注意:所有核心功能将继续免费,无需帐户,因此您不会失去对任何您了解和喜爱的 GitLens 功能的访问。GitLens+功能完全是附加的,提供了更丰富、更强大的体验。
Current GitLens users should note: all core features will continue to be free without an account, so you won’t lose access to any of the GitLens features you know and love. GitLens+ features are purely additive and provide a richer, more powerful experience.
GitLens+用户现在可以访问可视化的文件历史视图,这使您可以快速查看文件的演变,包括更改的时间、大小以及由谁进行的更改。您可以从编辑器区域下方的面板或通过命令选项板来访问此视图。
对文件做出更改的作者在左侧的 y 轴上示出,沿着 x 轴创建了他们的提交随时间的轨迹。提交被标为彩色气泡,用颜色区分作者。气泡的大小代表了变化的相对大小。
此外,每个提交的添加和删除被可视化为颜色编码的堆叠竖条。这些条形的高度代表受影响的行数,显示在右侧的 y 轴上。添加的行显示为绿色,删除的行显示为红色。
工作树
如果你曾经在工作中遇到一个地方,并且想“一次检查多个分支会很棒”,那么我们有一些非常令人兴奋的消息要告诉你!GitLens 正在将 Git Worktrees 的强大功能带给每个人。
对文件做出更改的作者在左侧的 y 轴上示出,沿着 x 轴创建了他们的提交随时间的轨迹。提交被标为彩色气泡,用颜色区分作者。气泡的大小代表了变化的相对大小。
此外,每个提交的添加和删除被可视化为颜色编码的堆叠竖条。这些条形的高度代表受影响的行数,显示在右侧的 y 轴上。添加的行显示为绿色,删除的行显示为红色。
在单个存储库中同时检出多个分支的能力使得人们更容易开发或测试多个分支,从而最大限度地减少了在分支之间切换的开销。GitLens 的这个特性使得创建和管理工作树更加容易,因为它们在 VS 代码的源代码控制面板中是可视化的。
走吧+
创建一个 GitLens+帐户可以解锁强大的附加功能,如工作树和可视文件历史记录,更多功能即将推出!创建您的帐户是完全免费的,这使您能够在 GitLens+ Pro 的 7 天自动试用期间,无限期地使用公共回购和私人回购的 GitLens+功能。试用 GitLens+ Pro 后,您可以升级到付费计划,或通过公共回购继续使用 GitLens+功能。
这些新功能的引入对 GitLens 12 发布之前的 GitLens 功能没有影响。您不会失去对您熟悉和喜爱的任何功能的访问。创建一个帐户只是让你获得新的、额外的特性,这将使你在 VS 代码中从 Git 中获得更多!
GitLens+ Pro 和企业版
GitLens+ Pro 非常适合需要访问所有 GitLens+功能以获得私有存储库和升级的专业支持的用户。
GitLens+ Enterprise 提供 GitLens+ Pro 的所有优势,但专为需要专业入职和培训机会的大型团队而设计。此外,面向大型团队的更多高级特性,如 SSO 支持,即将推出。
随着新的 GitLens+功能在未来的推出,如添加传说中的 GitKraken commit graph 和 GitHub Enterprise 支持,GitLens+ Pro 和企业用户将是第一批!
走吧+
创建一个 GitLens+帐户可以解锁强大的附加功能,如工作树和可视文件历史记录,更多功能即将推出!创建您的帐户是完全免费的,这使您能够在 GitLens+ Pro 的 7 天自动试用期间,无限期地使用公共回购和私人回购的 GitLens+功能。试用 GitLens+ Pro 后,您可以升级到付费计划,或通过公共回购继续使用 GitLens+功能。
特别限时优惠:升级到 GitLens+ Pro,每月仅需 1 美元!
特别限时优惠:升级到 GitLens+ Pro,每月仅需 1 美元!
自动链接的问题和拉式请求
很难跟踪哪些提交与特定问题相关,或者哪些拉请求合并了代码更改。现在,当使用 GitLens 的 Search & Compare 特性比较一系列提交时,您可以看到任何 GitHub 问题以及与这些更改相关的 pull 请求。例如:您现在可以很容易地从一个视图中看到一个版本中修复的所有问题。
比较修订和库存
比较修订是 GitLens 给你的众多超能力之一。GitLens 现在可以在比较版本时轻松选择相关的隐藏内容。只需使用Open Changes with Revisions…
或Open File at Revision
命令,除了分支、标记和提交之外,您还会看到一个Choose a Stash…
选项。
比较修订是 GitLens 给你的众多超能力之一。GitLens 现在可以在比较版本时轻松选择相关的隐藏内容。只需使用Open Changes with Revisions…
或Open File at Revision
命令,除了分支、标记和提交之外,您还会看到一个Choose a Stash…
选项。
gittens 演练入门
有很多强大的功能和方式可以配置 GitLens。为了指导新用户和现有用户完成配置过程,我们添加了一个新的Get Started with GitLens
演练。体验旨在指导您的每一步,从初始设置到像专家一样快速使用 GitLens+功能。
该演练快速涵盖了设置和自定义 GitLens,以及如何使用各种功能,如当前行责备和 Git authorship CodeLens。它还向您展示了如何利用 Git 命令面板、使用可视化交互式 rebase 等等。
您可以通过打开 VS 代码命令面板⇧⌘P
并键入GitLens: Get Started
来随时访问本演练。
连接到更好的体验
这只是 GitLens 如何继续增强的开始。许多其他 GitLens+功能即将推出,包括可视化提交图和更丰富的集成。立即注册,获得这些令人难以置信的 GitLens+功能,并与致力于为您带来更多功能的团队保持联系!
比较修订和库存
gittens 演练入门
有很多强大的功能和方式可以配置 GitLens。为了指导新用户和现有用户完成配置过程,我们添加了一个新的Get Started with GitLens
演练。体验旨在指导您的每一步,从初始设置到像专家一样快速使用 GitLens+功能。
该演练快速涵盖了设置和自定义 GitLens,以及如何使用各种功能,如当前行责备和 Git authorship CodeLens。它还向您展示了如何利用 Git 命令面板、使用可视化交互式 rebase 等等。
您可以通过打开 VS 代码命令面板⇧⌘P
并键入GitLens: Get Started
来随时访问本演练。
连接到更好的体验
这只是 GitLens 如何继续增强的开始。许多其他 GitLens+功能即将推出,包括可视化提交图和更丰富的集成。立即注册,获得这些令人难以置信的 GitLens+功能,并与致力于为您带来更多功能的团队保持联系!
This is just the beginning of how GitLens will continue to be enhanced. Many additional GitLens+ features are coming soon, including a visual commit graph and richer integrations. Sign up now to get access to these incredible GitLens+ features and to stay connected with the team working to bring you even more functionality!
GitLens 13 - GitLens+面向本地和公共媒体的所有功能
GitLens+现在比以往任何时候都好。
当我们在 2022 年初首次发布 GitLens+时,需要一个免费帐户来访问视觉文件历史和工作树等功能。因为,我们认为这一额外的步骤阻碍了我们的用户探索和使用这些丰富的新功能。
这就是为什么有了 GitLens 13,我们非常兴奋地将 GitLens+功能的强大,包括漂亮的新提交图,带给本地和公共 repos 上的所有用户。不需要账户。升级到 GitLens Pro 后,您可以访问私人回购网站上的 GitLens+功能。
现在,更多用户可以使用 GitLens+功能,通过额外的可视化和协作功能来增强他们的 GitLens 体验。以下是 GitLens+的功能,您现在可以通过本地或公共回购获得:
- GitKraken 提交图–在功能强大的新提交图上轻松可视化并跟踪所有正在进行的工作
- 工作树–通过最小化分支之间的上下文切换来帮助您进行多任务处理,允许您轻松地同时处理存储库的不同分支
- 可视化文件历史记录–需要快速找到对文件影响最大的更改是何时进行的,或者谁可能是讨论更改的最佳人选,使用可视化文件历史记录可以一目了然
提交图表–现在不在预览范围内!
接下来,我们很高兴地宣布 GitKraken 提交图不再是预览版了,而且速度更快,功能更强大!
这意味着您现在可以直接与提交图进行交互,并采取如下操作:
- 通过右键单击上下文菜单与分支、提交、标签等进行交互
- 双击分支以签出分支
- 按消息、作者、SHA、文件和更改搜索提交
- 查看分支上的关联拉请求
丰富提交搜索
借助强大的新提交图中丰富的搜索功能,准确找到您想要的内容。
无论是搜索特定的提交、消息、作者、一个或多个已更改的文件,甚至是特定的代码更改,提交图都会突出显示整个存储库中的匹配结果。此外,您可以快速跳转到最后一个结果,以便于查看文件或更改何时被引入到代码库中。
完整的上下文菜单支持
与您的分支、提交等进行交互!现在,当右键单击提交图中的任何分支、标记、提交或作者时,都可以使用上下文菜单。您甚至可以与 author、date 或 SHA 列的 Commit Graph 列标题进行交互。如此强大的力量!
与您的分支、提交等进行交互!现在,当右键单击提交图中的任何分支、标记、提交或作者时,都可以使用上下文菜单。您甚至可以与 author、date 或 SHA 列的 Commit Graph 列标题进行交互。如此强大的力量!
新的上下文菜单操作包括:
切换到分支
还原提交
切换到提交
- 创建分支
- 合并
- 重定…的基准
- 创建工作树
- 创建拉式请求
- 关于 GitLens 13 所有变化的完整列表,请查看我们的 GitLens 发布说明。
- GitLens Pro 用于私人回购
- 想升级吗?当您开始 7 天免费试用时,GitLens+功能可用于私人回购,之后您可以升级到 GitLens Pro 以继续使用它们。
要开始免费试用,安装 GitLens ,然后在 VS 代码中打开一个文件夹或工作区,点击侧边栏> Sign In
中的 GitLens 图标。
关于 GitLens 13 所有变化的完整列表,请查看我们的 GitLens 发布说明。
您的免费试用将自动开始,您可以使用您的私人 repos 尝试 GitLens+的所有功能。
GitLens Pro 用于私人回购
想升级吗?当您开始 7 天免费试用时,GitLens+功能可用于私人回购,之后您可以升级到 GitLens Pro 以继续使用它们。
要开始免费试用,安装 GitLens ,然后在 VS 代码中打开一个文件夹或工作区,点击侧边栏> Sign In
中的 GitLens 图标。
您的免费试用将自动开始,您可以使用您的私人 repos 尝试 GitLens+的所有功能。
2022 年的 GitLens:更多功能、更快速度、更强大
新年快乐 GitLens 在 2022 年度过了忙碌而富有成效的一年,发布了两个主要版本,增加了几个全新的功能。让我们回顾一下过去 12 个月的亮点。但是首先要做的是…
感谢所有 GitLens+采用者
在我们回顾 2022 年之前,我们想花点时间感谢所有 GitLens+的早期采用者,感谢你们的承诺和热情。我们非常感谢您的支持,让 GitLens 继续成为 VS 代码市场上最好、发展最快的 Git 扩展。
随着 GitLens+和 GitLens for VS Code for the Web 的发布,2022 年对 GitLens 来说是辉煌的一年。我们刚刚跨越了另一个重要的里程碑—2000 万次安装!这证明了 GitLens 社区的力量,我们感谢你们所有人成为这一旅程的一部分。我们期待继续一起创造奇迹。接下来是 2022 年的集锦。
✨GitLens+特色发布会
然而,当我们在 10 月份发布 GitLens 13 时——推出了漂亮的新提交图——我们希望每个人都能从本地和公共存储库中强大的 GitLens+功能中受益,而不会有任何摩擦。因此,我们消除了自由账户的障碍。现在,访问 GitLens+功能的唯一要求是拥有一个用于私人存储库的 Pro 帐户。
我们使用 GitLens+功能的目的是创建一个可持续的模型,使我们能够继续大力投资 GitLens 的免费和开源核心,这些功能可以提高工作效率、安全性、易用性等,同时创建一组专门为专业开发人员和团队设计的附加但完全可选的功能。
为了帮助您识别 GitLens+功能,它们标有✨symbol.
✨Commit 图
在 GitLens 13 中,我们从 GitKraken 客户端重新构思了强大而美丽的提交图,并将其引入 GitLens,甚至在此过程中对其进行了改进!易于使用的提交图帮助您可视化并跟踪所有正在进行的工作。您还可以快速查看提交之间的关系,查看提交细节,并通过全功能上下文菜单与分支、提交、标记等进行交互。这可以帮助您和您的团队更好地理解存储库的历史,并使识别变更、恢复错误以及与他人协作变得更加容易。
我们还将 GitLens 强大的提交搜索功能引入到提交图中,使其更易于访问和可视化。使用丰富的提交搜索来准确找到您想要的内容。其强大的过滤器允许您通过特定的提交、消息、作者、一个或多个更改的文件,甚至特定的代码更改进行搜索。
作为 GitLens+的一个特性,提交图对所有在本地和公共托管的存储库上工作的 GitLens 用户都是免费的,而私有托管的存储库需要一个 Pro 帐户。
网络上的 GitLens
在 GitLens 12 中,我们为 Web 添加了对 VS 代码的支持,这是一种完整的浏览器内代码编辑体验。这是一个巨大的努力,因为 GitLens 是围绕访问 Git 而构建的,这在 web 上是不可能的。但是能够通过 vscode.dev 和 github.dev 将 GitLens 的强大功能带给每个人是非常值得的。
GitLens for VS Code for the Web 旨在将 GitLens 的强大功能带给每一个人,扩展人们喜爱的功能,如内嵌责备、责备注释、热图和历史导航。GitLens 13 也把新的提交图带到了网上!
要获得 Web 体验的 VS 代码,只需导航到 github.com 上的一个存储库,然后按下.
,你就会直接跳转到它。一旦你进入 VS 代码,从扩展视图安装 GitLens,就像你在桌面上一样,GitLens 将从此可用。
现在在网络上,当你在 github.dev 和 vscode.dev 上查看或编辑 GitHub repos 时,GitLens 已经覆盖了你。
特色亮点
提交详细信息
GitLens 12.2 中发布的提交细节视图提供了关于提交和隐藏的丰富细节。快速查看有关提交的作者、提交 ID、相关问题和拉请求的链接、更改的文件等信息。
当取消锁定时,提交详细信息视图上下文跟随您在编辑器中导航文件,以及在✨提交图、提交视图、存储视图、交互式 Rebase 编辑器和✨可视文件历史中选择提交和存储。您还可以从悬停、上下文菜单和快速选择菜单的提交详细信息视图中打开提交或存储。
✨Visual 档案历史
GitLens 12 中添加的另一个新的丰富的可视化特性是可视化文件历史,它提供了对文件如何随时间变化的洞察。可视化的文件历史视图允许您快速查看文件的演变,包括更改的时间、更改的大小以及更改者。使用它可以快速查找对文件进行最有影响的更改的时间,或者关于文件更改的最佳讨论对象等。
✨Worktrees
GitLens 12 还增加了对 Git 工作树的支持,允许您同时检查多个分支。工作树通过最小化分支之间的上下文切换来帮助您进行多任务处理,允许您轻松地同时处理存储库的不同分支。当需要查看拉取请求时,避免中断正在进行的工作。只需创建一个新的工作树,并在新的 VS 代码窗口中打开它,这一切都不会影响您的其他工作。
集成
我们在 GitLens 12 中添加了一些有价值的新集成。
GitLens 12.2 中发布的提交细节视图提供了关于提交和隐藏的丰富细节。快速查看有关提交的作者、提交 ID、相关问题和拉请求的链接、更改的文件等信息。
✨GitHub 企业和 GitLab 自我管理集成
使用 Pro 帐户,GitHub Enterprise 和 GitLab 自管理用户可以看到提交作者的头像、自动链接问题和拉请求的丰富细节,以及与提交和分支相关的拉请求。
Gerrit 和 Google Source 集成
GitLens 社区成员(@felipecrs)和(@andrewsavage1)的贡献增加了对 Gerrit 和 Google Source 远程提供者的支持。
感谢 gittens 社区
特别感谢令人敬畏的 GitLens 社区和以下 GitLens 代码贡献者!
(@费利佩克斯)费利佩桑托斯
(“t0”@ mcy 村”t1)mcy 村
( @Brcrwilliams )布莱恩·威廉斯
(@巴尼卡罗尔)巴尼卡罗尔
( @rasa )罗斯·史密斯二世
( @smartinio ) Sam Martin
( @ amodudas
泰勒·詹姆斯·莱恩哈特
( @rzhao271 )雷蒙德·赵
( @andrewsavage1 )
( @ dimaulpov 德米特里·乌尔波夫
( @markjm )马克·莫里纳罗
(@ yr 胆小)德米特里·古罗维奇
( @alwinw ) Alwin 王
( @adaex ) Aex
(@ slavik-lvovskyslavik lvovsky
( @Git-Lior ) Lior Kletter
( @ tamuratak taki Tamura
展望未来
这是对我们在 2022 年发布的所有产品的快速回顾,但我们最兴奋的是我们在 2023 年及以后为您准备的所有产品。
我们正在开发并很快发布的首批产品之一是将 Workspaces 的强大功能引入 GitLens。有了工作区,您将能够轻松地关注对您来说重要的问题和拉动式请求。
我们喜欢听 GitLens 社区;考虑您与我们分享的建议和想法。我们还计划更深入地参与 GitLens 社区,因为我们更多地“开放设计”——发布想法和模拟以获得早期反馈。提交图是我们的第一个实验,我们发现您的反馈非常有价值。我们的团队期待继续讨论和改进 GitLens 的想法。
编码快乐!
要了解更多 2022 GitKraken 产品亮点,请阅读我们在 GitKraken 客户端和吉拉 Git 集成上的年度综述博文。
(@ dimaulpovDmitry ulpov
( @markjm )马克·莫里纳罗
(@ yr 胆小)德米特里·古罗维奇
( @alwinw ) Alwin 王
( @adaex ) Aex
(@ slavik-lvovskyslavik lvovsky
( @Git-Lior ) Lior Kletter
(@ tamurataktaki Tamura
展望未来
这是对我们在 2022 年发布的所有产品的快速回顾,但我们最兴奋的是我们在 2023 年及以后为您准备的所有产品。
我们正在开发并很快发布的首批产品之一是将 Workspaces 的强大功能引入 GitLens。有了工作区,您将能够轻松地关注对您来说重要的问题和拉动式请求。
我们喜欢听 GitLens 社区;考虑您与我们分享的建议和想法。我们还计划更深入地参与 GitLens 社区,因为我们更多地“开放设计”——发布想法和模拟以获得早期反馈。提交图是我们的第一个实验,我们发现您的反馈非常有价值。我们的团队期待继续讨论和改进 GitLens 的想法。
编码快乐!
要了解更多 2022 GitKraken 产品亮点,请阅读我们在 GitKraken 客户端和吉拉 Git 集成上的年度综述博文。
For more 2022 GitKraken product highlights, read our annual round-up blog posts on GitKraken Client and Git Integration for Jira.
如何在 VS 代码中使用 GitLens 的 5 个高级技巧
GitLens 是一个 Git 扩展,与 Visual Studio 代码无缝集成。事实上,有超过 1400 万的安装量,它是 VS 代码市场上最受欢迎的 Git 扩展之一。GitLens 之所以广受欢迎,是因为它能够解锁有价值的作者信息,帮助用户浏览项目的修订历史,等等。
即使你是 GitLens 的长期用户,你可能会发现本文中的提示将揭示你以前不知道的 GitLens 的功能。如果你是 GitLens 新手,不用担心!虽然这些都是高级技巧,但你可以在今天的工作流程中应用这些技巧。免费注册 git lens+,这样你就可以遵循本文中的提示。
https://www.youtube.com/embed/bOoLr3_8pco?feature=oembed
视频
在 VS 代码中释放 Git 的全部力量——注册 GitLens+以访问强大的功能,如工作树和可视化文件历史!
Sign up for GitLens+ for free!
变怪怪怪
GitLens 在每一行代码上公开注释,通过 hovers 提供更多信息。悬停可以显示详细的责备信息,如提交消息、作者信息、提交 ID 等等。所有这些信息都可以通过将光标悬停在代码的特定部分来访问。
要修改 GitLens 中的指责悬停行为,请在 VS 代码中通过键入cmd+shift+P
打开命令面板,然后在命令面板中键入GitLens settings
,并点击enter
。
接下来,向下滚动到Hovers
部分。您可以通过选择和取消选择紧靠Hovers
标题左侧的复选框来打开或关闭整个功能。此外,您可以通过选择Hovers
部分后面的复选框来定制您的悬停显示内容以及它们的行为方式。
要定制当鼠标悬停在一行文本而不仅仅是注释上时出现的光标,选择Show hovers for the current line
下的下拉菜单并选择line & annotation
。
现在,您可以将光标悬停在注释或一行代码的任何部分上,以访问 GitLens 悬停信息。
GitLens 设置:配置日期和时间格式
GitLens 允许您修改日期和时间设置,使您非常容易地本地化时间和显示您喜欢的格式。要调整 GitLens 的日期和时间设置,请在 VS 代码中打开命令面板,键入GitLens settings
,然后点击enter
。然后,导航到位于屏幕右侧的Jump to menu
部分,并选择右下角附近的Dates & Times
。
从这里开始,您可以使用各种格式选项。只需点击Allow relative date formatting
复选框,就可以将日期格式化为相对时间,类似于:1 day ago
,或者绝对时间,类似于:July 25th, 2018 7:18 PM
。
您也可以在这里设置您的Date locale
。您可以选择默认 VS 代码区域设置,或者手动设置您自己的区域设置。
GitLens 中默认的日期格式表示为MMMM Do, YYY h:hmma
,看起来像是July 25th, 2018 7:18 PM
。您可以通过点击Date format
框并输入您想要的格式来轻松更新格式。例如,您可以选择这样反映日期:YYYY-MM-DD
,如下所示:2018-07-25
。
您可以按照如下所示的过程设置所需的日期格式,以自定义Short Date
和Time
格式。如果您后来发现自己进行了想要恢复或更改的更改,您可以随时返回 GitLens 设置并进行这些更新。
为任何 GitLens 命令添加按键绑定
您可以为任何可以从命令调板访问的 GitLens 命令添加按键绑定。键绑定或热键是一组执行特定操作的自定义键击。如果您发现自己一遍又一遍地在命令面板上寻找同一个命令,这个特性会非常有用。
要创建一个 keybinding,在 VS 代码中打开命令面板并输入>GitLens:
。这将显示所有可用的 GitLens 命令列表。接下来,将鼠标悬停在要为其创建热键的命令上,并选择出现在右侧的齿轮图标。这将带您进入所选命令的设置。
在这里,选择屏幕顶部的Keybinding
。将出现一个文本框,提示您创建自定义的组合键。输入与所选 GitLens 命令相关联的所需组合键,然后点击enter
。现在,只要你输入你创建的组合键,GitLens 就会运行相关的命令。
按照这个过程为任何 GitLens 命令创建一个键绑定。但是,如果您试图为另一个 GitLens 或 VS Code 原生命令创建一个已经存在的 keybinding,您会得到一个警告消息,建议您创建一个新的、唯一的 keybinding。
定制 CodeLens
GitLens 利用了 CodeLens ,这是另一个暴露 VS 代码内部信息的工具。使用 GitLens,您可以定制 CodeLens 操作的行为方式。
要定制 GitLens 如何利用 CodeLens,请执行以下操作:打开 VS 代码命令面板,键入GitLens settings
,然后点击enter
。接下来,向下滚动到标题为Git CodeLens
的部分。从这里,您可以完全控制 CodeLens,包括通过选择标题Git CodeLens
左侧的复选框来打开和关闭整个功能,以及其他细粒度的控制。
当您打开和关闭 CodeLens 功能时,您会注意到中间的预览窗口显示了您的自定义如何影响 CodeLens 显示的信息。
有很多方法可以定制 CodeLens 以适应您的特定工作流,所以不要害怕探索这些选项并真正使它成为您自己的。
使用令牌定制 GitLens 注释
您可以完全控制 GitLens 公开注释的方式,并且可以使用一整套标记来完全个性化该信息在工具中的呈现方式。
要开始定制 GitLens 注释,打开 VS 代码命令面板,输入GitLens settings
,点击enter
。在 GitLens 设置的顶部,你会发现一个标题为Current Line Blame
的部分。像我们讨论过的其他功能一样,您可以通过Current Line Blame
标题左侧的复选框打开或关闭整个功能。
您会注意到在这一部分的底部,有一个定制 GitLens 注释格式的选项。默认的注释格式是${author,}${agoOrDate}${via
pullRequest}${ • message|50?}`。但是,如果您单击注释格式框,将会显示几个可用的标记,允许您修改注释格式。
例如,您可以通过用|10
替换|50
来修改• message|50?}
字段,使其只显示 10 个字符。您还可以对序列中某些 GitLens 责备注释出现的位置进行完全重新排序。默认情况下,GitLens 责备注释首先显示${author,}
信息。但是,您可以将该字段移动到注释序列中的任何位置,只需简单地剪切和粘贴它以适应您想要的顺序。
此外,您可以自定义注释在当前行责备和状态栏责备中的显示方式。要访问状态栏责备,只需在 GitLens 设置中向下滚动到标题为Status Bar Blame
的部分。您可以选择配置两个选项的设置,以提供相同的 GitLens 责备信息,或者您可以调整它们以显示稍微不同的信息。
定制 GitLens 以适应您独特的工作流程
这 5 个技巧只是 GitLens 可定制性的一瞥。这个工具不仅功能极其丰富,而且您还可以通过裁剪它来满足您的开发需求。如果你正在寻找更多的方法来释放 Git 在 VS 代码中的全部力量,并增强你的 GitLens 体验,请查看这些额外的 11 GitLens 技巧。
GitLens+特性减少了用 VS 代码完成复杂任务的时间。尝试可视化文件历史,以显示项目的贡献者和您的贡献的图形表示。
Sign up for GitLens+ for free!
GitLens 的现状和未来
GitLens 是 2016 年开发的一个轻量级扩展,它在 VS 代码中增强了 Git 的功能。如今,GitLens 已经有超过 1400 万的安装量,是 VS 代码市场上最受欢迎的 Git 扩展,也是使用最广泛的扩展之一。
【GitKraken 之前的 git lens
为了分享一些关于我为什么创建 GitLens 的信息,让我们从我作为一名初露头角的开发人员的早期开始。当我第一次发现 Microsoft Visual Basic 时,我就被迷住了。我可以想象一些东西,并很快将这一愿景变为现实。我的第一个应用是一个共享软件工具,用来显示 POP3 电子邮件账户的桌面通知。它在发布时变得如此流行,以至于我有效地对我的大学网络发起了 DDoS 攻击,导致了一天左右的中断。哎呀。从那以后,我就迷上了创建和构建工具来满足自己的渴望,使我管理的事情更好、更容易或更快。
快进许多年,我发现了另一个微软工具:VS Code,一个漂亮、快速、精简、实时的 IDE,我很快就爱上了它。一旦 VS 代码引入了可扩展性模型,我就立刻投入其中。我一直想用 TypeScript 做更多的事情,并决定尝试构建一个工具来帮助我和我的团队更高效地使用 Git。
在我的职业生涯中,通过深入研究代码库的历史,我总能从代码库中学到很多东西,尤其是当我试图修复 bug 或开发我还不理解的遗留代码时。我从来没有找到任何好的工具来使这个过程变得更容易和不那么痛苦。因此,我开始创建一个扩展,使 VS 代码能够快速洞察丰富的历史,并很容易回到过去,看看代码是如何演变的。
快进到今天: GitLens 已经成长为提供广泛的工具和可视化工具,以打开存储库中尚未开发的知识,帮助您更好地理解代码。更好的理解带来更高的生产力和更好的结果。
这些是 GitLens 的基本目标,实现这种魔力的核心功能不会消失,也不会停滞不前。我们也不会拿走任何东西或限制对任何现有 GitLens 功能的访问,也不会对它们收费。
为什么 GitLens 比 GitKraken 好
我于 2021 年秋天加入 GitKraken 团队,担任首席技术官,领导 GitLens 和 GitKraken 客户端的开发工作。我做出这一举动的主要动机是确保 GitLens 有一个光明的未来。GitLens 拥有比以往更多的开发人才和资金,允许我们为所有用户创造更好的功能和体验,包括没有账户的免费用户。
git lens+是什么?
和 GitLens 类似,GitLens+也是免费的;主要区别在于 GitLens+需要一个 GitKraken 帐户(也是免费的)来利用本地和公共存储库的附加 GitLens+特性。
我们使用 GitLens+的目的是创建一个可持续的模式,使我们能够继续大量投资于 GitLens 的免费和开源核心——实现更高的生产率、安全性、易用性等功能——同时还创建一组专门为团队设计的附加但完全可选的 GitLens+功能。
GitLens+的特性旨在改善协作和可视化,并且仍然完全免费,可用于本地和公共存储库。这些功能只有在与私人回购合作时才成为付费功能。
当前的 GitLens+特性包括可视化文件历史,允许你更好地处理你的代码库是如何发展的,以及允许你同时处理多个分支的工作树。
git lens 12 有什么新功能?
如果您在 2022 年 2 月之前是 GitLens 用户,您可能已经体验过您最喜欢的 VS 代码 Git 扩展的一些最新变化。
GitLens 12 版本带来了大量的产品改进和更新,绝大多数工作集中在 GitLens 内部的主要重构上,以支持虚拟存储库,通过 vscode.dev 和 github.dev 正式将 GitLens 带到 Web 上。
作为重构的一部分,我们专注于性能和效率,从 GitLens 启动体验到 Git 发现、repo 发现、Git 解析、错误生成等等。
此外,利用许多新的 VS 代码 API 特性,大量时间被投入到改进现有的 UX 和增强 GitLens 命令面板中的现有流程中。
最后,我们在比较中添加了自动链接问题和拉请求,并将修订与存储进行比较。
所有这些功能都是 100%免费的。不需要帐户。
git lens 还免费吗?
GitLens 仍然是完全免费的,并将继续永远免费。这包括不需要帐户的未来改进和更新。
如果你对 GitLens+特性不感兴趣,你可以用 GitLens 命令面板中的GitLens+: Hide GitLens+ Features
命令隐藏它们。
GitKraken 认证扩展
让我们从好消息开始:这已经作为一个依赖项被完全移除了,不应该再引起混乱或烦恼。
首先简单解释一下为什么添加它:我们试图将身份验证从 GitLens 的核心中分离出来,遵循已经存在于 GitHub 和微软的 VS 代码中的相同的身份验证扩展模式。
创建单独的身份验证扩展的主要动机有三个:
- GitLens 向 VS 代码提供 GitKraken 身份验证,感觉很奇怪,因为 VS 代码身份验证系统是“全局”的。
- 我们认为,如果将来需要的话,允许其他扩展使用 GitKraken 身份验证可能是有价值的,而将 GitLens 作为依赖是没有意义的。
- 我们想避免用额外的代码使 GitLens 变得更大。
但是,由于这一添加在社区中引起了混乱和一些骚动,我们立即采取措施,以尽可能最小的破坏性方式将其删除。
git lens 的未来投资
GitLens 的未来如何?我们将继续投资,使 Git 的难以使用但功能强大的特性在 VS Code 中更易于访问,例如合并冲突解决和比较分支之间的差异,而用户目前只能在 GitLens 中以树视图的形式可视化这些功能。
我们计划为 GitLens 带来强大的可视化功能,如 GitKraken 客户端提交历史图表。该图将帮助 GitLens 用户验证最近在回购上的 Git 操作,并显示谁在何时进行了哪些代码更改。这也是加入 GitKraken 将有助于推动 GitLens 创新的另一个原因:GitKraken 团队在构建 GitKraken 客户端的 6 年多时间里积累了如此多的知识和经验,GitKraken 的人们真正了解 Git 工具。
随着 GitLens 现在成为 GitKraken 工具家族的一部分,我们将能够以前所未有的速度发展 GitLens。未来对 GitLens 的投资将惠及所有用户,无论是免费的还是付费的,无论你有没有账户。所以,请继续关注并继续使用 GitLens 来增强 VS 代码中的 Git!
GitLens+解锁额外的可视化和团队协作功能,而且是免费的!
11 个 GitLens 技巧|了解如何在 VS 代码中使用 GitLens
GitLens 是 VS 代码的头号 Git 扩展,帮助超过 1400 万开发人员在他们最喜欢的编辑器中释放 Git 的力量!以下是 11 条专家建议,告诉你如何充分利用 GitLens!
https://www.youtube.com/embed/9Gr-tp9ucOk?feature=oembed
视频
立即使用 VS 代码优化您的 Git 体验——安装 GitLens,享受更好的项目历史可视化和洞察力!
1.定制您的 GitLens 体验
GitLens 可定制性极强。虽然您可以定制许多 VS 代码扩展,但 GitLens 为您提供了非常细粒度的控制,以微调用户体验。
打开 GitLens 侧边栏菜单的首页部分,在Get Started
下寻找Interactive settings editor
,就可以打开交互设置编辑器。您也可以通过搜索GitLens: Open Settings
从命令面板打开交互式设置编辑器。
这将打开一个新视图,让您通过单击复选框来打开或关闭所有功能。您还可以通过同一视图上的设置子菜单来更改几乎任何功能的行为。
2.GitLens 责备多处注释
GitLens 最出名的可能是通过突出显示逐行责备注释来暴露您的 Git 历史。但是您知道吗,将鼠标悬停在注释上可以提供一个更丰富的视图,其中包含可点击的链接,允许您与 Git 引用、 pull request 进行交互,或者发布并发现有关该提交的更多信息。我们鼓励您亲自尝试。
你还可以在窗口下方的 VS 代码状态栏看到 GitLens 的怪注释。将鼠标悬停在此部分还会显示更多信息和链接。
3.3 GitLens 文件注释
GitLens 为您提供了三种不同的方式来帮助您了解项目中任何文件的历史。在 VS 代码中打开任何文件时,您可以在右上角找到一个 GitLens 图标,它将允许您切换文件注释。点击该图标将显示三个不同的选项:
- 切换文件责备
- 切换文件热图
- 切换文件更改
文件错误显示最后修改文件每一行的提交者和作者。这使您可以快速了解文件是如何达到其当前状态的。
文件热图显示了相对于文件中的所有其他更改,行最近的更改情况。蓝色表示有一段时间没有变化,红色表示最近有变化。
文件更改突出显示任何本地的、未发布的更改或由最近提交更改的行。
文件更改突出显示任何本地的、未发布的更改或由最近提交更改的行。
4.按住 Alt 键并单击打开对任何先前修订的更改
GitLens 允许用户通过右上角的Open Changes with Revisions
菜单选项快速比较版本。单击指向左侧的小箭头图标←将一次向后导航一个版本,向您显示该提交与当前版本之间的所有更改。
如果你想查看许多次提交前的修订,你可以一次后退一个修订,或者你可以通过“alt-click”跳回到任何修订。当你在 Mac 上按住alt
键/ option
键,然后点击向左的箭头,你会看到一个修改该文件的所有提交的列表。现在你可以简单地选择哪一个来比较你的作品。
5.重新排列侧边栏视图
VS 代码是一个非常可定制的应用程序,GitLens 建立在这种可定制性之上。如果你想改变 GitLens 侧边栏的顺序,你可以通过点击并拖动它到你想要的位置来移动它。
你甚至可以在其他侧边栏菜单之间拖动侧边栏项目。例如,如果你想获取 Stashes 侧边栏项目,并将其放入源代码控制侧边栏,你可以轻松地做到这一点。您甚至可以将项目拖放到主边栏菜单中,以便更快地访问您最常用的工具。
5.重新排列侧边栏视图
6.有许多键盘快捷键
GitLens 自带了很多开箱即用的键盘快捷键。一种发现可用快捷方式完整列表的简单方法是打开Interactive settings editor
并找到Keyboard Shortcuts
。如果你想节省一些滚动,在设置页面的右侧Jump To
菜单中有一个快捷方式。
这一段 GitLens 设置会给你几个选项,并给你提供了在 VS 代码下搜索 GitLens 的选项“快捷方式”视图。搜索“GitLens”将会弹出许多现有的键盘快捷键,以及所有可以分配给快捷键的命令。没错,你可以为 GitLens 特性创建自己的键盘快捷键!
6.有许多键盘快捷键
7.持续搜索并在重新启动之间比较结果
您可以快速搜索和比较您的作品的任何先前版本与任何其他版本,包括您当前的标题。这和搜索提交散列一样简单,
Git 提交消息,作者,文件,具体变更,或者标签。这将显示修订前后的所有提交,让您更好地了解项目是如何随时间变化的。
如果你要经常搜索或比较某些修订,你可以点击搜索结果上的图钉图标,将结果保存在 GitLens 侧边栏菜单中。结果将保持不变,即使你重启 VS 代码(或者你的整个机器!).
您可以快速搜索和比较您的作品的任何先前版本与任何其他版本,包括您当前的标题。这和搜索提交散列一样简单,
8.GitLens 和 Git 命令的命令面板
GitLens 用户可能已经知道可以使用 VS 代码命令面板来快速访问任何 GitLens 特性。GitLens 还为常见的 Git 命令提供了命令调色板帮助!
用一个ctl
/ cmd+shift+P
打开命令面板,输入GitLens: Git
,VS 代码会提示 Git 命令,比如 Git branch ,reset,merge 和 Git rebase ,等等。选择其中一个自动完成选项将引导您完成完成 Git 操作所需的步骤。
GitLens 用户可能已经知道可以使用 VS 代码命令面板来快速访问任何 GitLens 特性。GitLens 还为常见的 Git 命令提供了命令调色板帮助!
9.GitLens 使集成的 VS 代码终端具有交互性
问任何一个开发人员他们为什么喜欢 VS 代码,许多人会告诉你他们喜欢布局和集成的终端。在您处理代码时,让终端在您的指尖是一个不可或缺的工具。
GitLens 使您对 VS 代码终端的体验更好,它将终端中显示的所有 Git refs 变成了可点击的链接,这些链接提供了一系列选项,用于如何与那个 Git commit 、branch 或 tag 进行交互!
10.自动链接的问题
使用 GitLens 中的搜索和比较功能时,通常可以在侧边栏菜单的底部找到,您会发现一个名为“自动链接的问题和拉式请求”的部分。这一部分揭示了所有的 GitHub pull 请求和与修订相关的问题,让您更好地了解不同版本之间解决了哪些功能和缺陷。
问任何一个开发人员他们为什么喜欢 VS 代码,许多人会告诉你他们喜欢布局和集成的终端。在您处理代码时,让终端在您的指尖是一个不可或缺的工具。
11.可视化文件历史显示了更改的范围
GitLens+ 用户可以访问可视化的文件历史,让你看到一个文件的演变。这显示了何时由谁进行了更改,还显示了这些更改的大小,较大的提交在网格视图中显示为较大的条目。
要访问该视图,要么打开集成终端面板,点击该视图顶部的GitLens
,要么从命令面板中搜索:GitLens: Visual History Timeline
。
使用 gittens 做更多事情
这些只是几个例子,展示了如何将 GitLens 用于 VS 代码,以及如何使用 Git 提高效率。随着您继续使用这个流行的 Git 扩展,您会发现有许多方法可以在 VS 代码中释放 Git 的真正力量。我们希望听到您如何在工作中使用 GitLens,并看到您最喜欢的提示和技巧。请在社交媒体上为我们呐喊,并提及 @GitLens 以及您的有用提示!
当然,如果你还没有使用 GitLens,那么在你的工作流程中利用这些令人敬畏的技巧的第一步就是为 VS 代码安装 GitLens。它是免费使用的你现在就可以开始使用!
11.可视化文件历史显示了更改的范围
GitLens+ 用户可以访问可视化的文件历史,让你看到一个文件的演变。这显示了何时由谁进行了更改,还显示了这些更改的大小,较大的提交在网格视图中显示为较大的条目。
要访问该视图,要么打开集成终端面板,点击该视图顶部的GitLens
,要么从命令面板中搜索:GitLens: Visual History Timeline
。
使用 gittens 做更多事情
这些只是几个例子,展示了如何将 GitLens 用于 VS 代码,以及如何使用 Git 提高效率。随着您继续使用这个流行的 Git 扩展,您会发现有许多方法可以在 VS 代码中释放 Git 的真正力量。我们希望听到您如何在工作中使用 GitLens,并看到您最喜欢的提示和技巧。请在社交媒体上为我们呐喊,并提及 @GitLens 以及您的有用提示!
当然,如果你还没有使用 GitLens,那么在你的工作流程中利用这些令人敬畏的技巧的第一步就是为 VS 代码安装 GitLens。它是免费使用的你现在就可以开始使用!
Do More with GitLens
These are just a few examples of how to use GitLens for VS Code and become more productive using Git. As you continue to use this popular Git extension, you will find there are numerous ways to unleash the true power of Git in VS Code. We would love to hear how you use GitLens in your work and see your favorite tips and tricks. Please give us a shout on social media and mention @GitLens with your helpful hints!
Of course, if you’re not already using GitLens, the first step to leveraging these awesome tips in your workflow is to install GitLens for VS Code. It’s free to use and you can get started right now!
Git | Axosoft 中重置基础的黄金法则
原文:https://www.gitkraken.com/blog/golden-rule-of-rebasing-in-git
使用 Git 时,重定基础是一个经常出现的话题。很多时候,重定基导致不得不进行强制推送,这使得一些人对重定基持谨慎态度。没必要担心!一旦你理解了为什么强制推进是必要的,以及如何负责任地调整基数,你会感觉更舒服。
那么,什么是重定基,在 Git 中如何重定基呢?重定基础就是简单地获取在其他地方进行的变更,将它们合并到您的分支中,然后在新的基础上重新执行您的所有变更。
重定基础的黄金法则是:“当你在公共部门工作时,千万不要重定基础。”
事实上,你在改变提交历史,医生告诉我们这会带来灾难性的后果。(尤其是碰到未来的自己。)
所以,让我们放点休易·路易斯,听听 repeat 上的爱情的力量,深入一个以回到未来为特色的例子。如果你甚至在考虑使用 CLI…我们要去的地方,我们不需要命令行!
时间线
我在 GitKraken 做了一个新的 repo,一个跨平台的 Git GUI ,特色是一些从回到未来的主要情节点。首先,马蒂被送回 1985 年。您将看到我创建了一个新的时间线分支,其中有几个提交,代表随后的事件。然后,我把时间线分支推上了 GitHub。
马蒂被送回过去,在那里他经历了一些起起落落。
马蒂被送回过去,在那里他经历了一些高潮和低谷。
这条时间线分支最终引导马蒂成功回到了未来,并以恶霸毕夫给马蒂爸爸的宝马打蜡而愉快地结束;另外马蒂有一辆全新的丰田 4×4。耶!每个人都喜欢幸福的结局!
然而,回到master
,还有另一个变化,格雷斯运动年鉴被添加到图片中。(啊哦…毕夫要把世界变成一个非常丑陋的地方……)
如果我在master
的顶部重设时间线,(通过拖动左边的timeline
标签,在master
标签的顶部,并选择rebase timeline into master
) GitKraken 将重放我所有的提交,在master
的最后一次提交之上,以同样的顺序。
你可能知道,这一行动影响了未来,比夫成为一个玩弄女性的亿万富翁赌场老板,并娶了马蒂的妈妈。(与现任总统候选人的任何相似之处纯属巧合,但我跑题了。)
比夫有机会接管这个世界……而且确实如此。
比夫有机会接管这个世界……而且确实如此。
回到我的远程timeline
分支,你会看到我仍然拥有快乐时间线中发生的所有事情,但是在本地我们有不同的提交历史。
因此,GitKraken 不会允许简单的推动。Git 只允许推送新的提交,不能将其他提交插入到 Git 历史中,这就是为什么我必须进行强制推送。force push 实际上是用我们本地的分支取代了远程分支。
现在,这就是一些麻烦出现的地方。如果我用本地的分支替换我的远程分支,这就有能力覆盖其他更改,这也是为什么很多人不愿意使用 rebase 的原因。
“妈妈给比萨饼补水!”已添加。
“妈妈给比萨饼补水!”已添加。
假设对我的远程分支进行了其他更改,但我没有在本地进行。因此,在远程timeline
分支上,Doc 又提交了一个名为“妈妈水合了一个比萨饼!”,这在我当地的timeline
分公司是不存在的。
现在,如果我进行强制推送,任何不在本地分支上的提交都将丢失,我们也不会得到含水的比萨饼。在这种情况下,我可以将任何新的提交挑选到我的本地timeline
中,然后进行强制推送。
我知道,我知道,这让我们陷入了反乌托邦的时间线,也毁了马蒂的幸福生活…
重置基础的黄金法则
重定基础的黄金法则是:“当你在一个公共分支机构时,永远不要重定基础。”通过这种方式,没有其他人会推动其他更改,并且没有不在本地 repo 中的提交会存在于远程分支上。所以当你推送的时候,没有删除数据的可能。
如果我的计算是正确的,当这个宝贝达到 88 英里的时速,你会看到一些严重的饭桶!!
重定基础的黄金法则是:“当你在一个公共分支机构时,永远不要重定基础。”通过这种方式,没有其他人会推动其他更改,并且没有不在本地 repo 中的提交会存在于远程分支上。所以当你推送的时候,没有删除数据的可能。
如果我的计算是正确的,当这个宝贝达到 88 英里的时速,你会看到一些严重的饭桶!!
学习 Git | Axosoft 最难的事情
原文:https://www.gitkraken.com/blog/hardest-things-learning-git
面对现实吧,理解 Git 很难。这很不公平,真的。到目前为止,您已经学习了各种不同的编码语言,您已经跟上了前沿的发展,然后您发现 Git 有自己的一堆术语和单词!
Git 最难学的是什么?
所以,我们问你们,我们的 Twitter 社区,“关于 Git,最难学的是什么?”以下是我们对收到的一些回复的回答。
拥有一个远程存储库和一个本地存储库是怎么回事?
不知道最难的是什么,但最重要的是探索本地存储库的概念。 #LearnGit
—尤里·戈尔茨坦(@ urig)2016 年 8 月 18 日
window.addEventListener('DOMContentLoaded', function() {
Repos 是项目中的文件,以及这些文件的历史记录。您的回购历史由提交组成,即您的回购文件在离散时间点的状态快照。
你可以在你的机器上有一个本地的回购,基本上在特定的时间点保存你的变更的历史,所以如果你需要的话你可以恢复。但当你同时拥有本地和远程版本的回购协议时,事情就变得更加复杂了。
在 GitHub 这样的远程服务上托管回购协议意味着所有开发人员都可以参与到同一个回购协议中,处理本地回购协议,然后在远程服务上反映这些变化。从中提取远程回购将更新您的本地回购,因此它与远程回购保持同步。将推至远程回购将整合您的本地变更,以便其他人可以将它们拉至本地回购。
这意味着不是签出文件,处理它们,然后再签入它们(还记得我们用 Dreamweaver 做的吗,非千禧一代?)团队成员可以同时处理相同的文件,并通过遥控器将更改合并在一起。
一旦你掌握了这个想法,它就会成为你的第二天性。只要记住:“先拉后推。”
#2 为什么有的复位软,有的复位硬?
是啊,关于那个… 叹。让我们深入研究一下:用soft
、mixed
和hard
重置 git 的区别基本如下:soft
让你的工作目录 和 的索引保持不变。hard
重置你所有的工作。
@GitKraken 合并冲突,重置概念。 #LearnGit
—Alex maday(@ Alex maday)2016 年 8 月 18 日
这意味着您已暂存/未暂存的任何内容都将保留在原来的位置,并且您之前签出的提交和重置为提交之间的所有更改都将放入暂存。保持您的工作目录不变,但是将您的索引重置为该提交。
基本上,它会将您重置为该提交,然后取消暂存所有内容,而不管您暂存了什么。
hard
重置一切。您在工作目录中的任何工作都会被吹走。明确地说,这意味着当前分支上所有未被另一个提交保存在历史中的提交,无论是远程的还是本地的,都将丢失(除非使用一些 Git reflog 巫术)。
对于初学者来说,soft
和hard
的区别是最重要的区别。
我如何理解这种重新建立基础和合并的想法?HALP!
@GitKraken 改变基础的概念可能很难
—约什·梅德斯基(@ joshmedeski)2016 年 8 月 18 日
这最好用视觉来解释。看看这个解释这一切的超级短视频。GitKraken Dev 特邀嘉宾 Chris Bargren 将带您了解这一过程。
https://www.youtube.com/embed/a_msiOrYLgM?feature=oembed
视频
处理合并冲突让我觉得自己处在一段艰难的关系中。有没有不包括分手的建议?
让我们在个案的基础上处理这个问题。是的,大多数时候你可以通过谈话解决问题。有时候,可悲的是,你不得不说再见,从头开始。是的,我说的是你和 Git 的关系。
处理合并冲突# learn git@ git kraken
—布兰登(@ Brandon script)2016 年 8 月 18 日
当您试图合并同一文件同一行上的两个分支时,会发生合并冲突。例如,文件“A”在一个区域发生了更改,在另一个区域也发生了更改。如果变化存在于两条不同的线上,那就没什么大不了的。然而,如果更改在同一行上,我们就有问题了,现在由用户来决定做什么。
幸运的是,有一些工具可以在不同的方面帮助你(夫妻治疗的简称)。当有冲突时,大多数 Git 客户端和 CLI 会告诉您,专用的合并工具会帮助您编辑这些更改。
但是,GitKraken 的界面会以非常直观的方式向您显示冲突在哪里,并询问您希望如何合并。在 GitKraken Pro 中,您不仅可以优雅地合并,还可以选择受影响的行并进行编辑,而无需退出工具。今天没有痛苦的分手,我的朋友!
我是一个命令行纯粹主义者。我永远不会离开 it,但是我对我必须学习的新东西的数量感到沮丧。有什么诀窍吗?
我明白了。你喜欢命令行界面。你可以看到所有的命令在引擎盖下工作,或封面,或任何你想用的隐喻。你说你只是天生如此。好吧,那很酷。除了时间和训练,没有什么可以加速学习的过程。在 GitKraken,我们这样做是为了让你不必看到正在发生的命令。
你没听错。为了完成工作,你不需要知道每个命令,我在这里告诉你,这不是逃避。你还是个开发员。现在,去照照镜子告诉你自己。
@ Git kraken# Git# learn Git没有一个像样的 Linux git Gui 来支持命令行学习。 #GoGoGitKraken
—乔纳森·斯托里(@ jonistorey)2016 年 8 月 18 日
GitKraken 的目标是让你不需要知道“引擎盖下”发生的一切。你不需要在大脑中记住你正在运行 Git rebase branch A 和 branch B,你不需要记住收回你不小心做出的最后一次提交的命令是git reset --soft HEAD~1
。您只需右键单击提交和Reset -> Soft
。你不必挖掘git reflog
的输出来撤销那个意外的git reset --hard
。这是一个简单的点击撤消按钮。
所以,如果你开始认为可能有更好的方法;CLI 可能不是最重要的;也许有一个特殊的图形用户界面会把你从命令行界面拉出来。我们想告诉你:没事的!想要快速高效地完成工作,把一些记忆技能留给聚会游戏,这没什么。你会发现在 GitKraken 工作实际上更容易(拜托,谁不想这样呢?)
其他 Git 图形用户界面可能在过去让你焦头烂额,因为是的,虽然它们确实让工作更简单,但不一定更快。我们谅你也不敢给 GitKraken 一个机会,看看它是不是那个!
Git |更差更好和 Git 生态系统的历史
https://www.youtube.com/embed/AhJmv1paL_w?feature=oembed
视频
2005 年 4 月,Linus Torvalds 给了我们一千行 C 代码,其中点缀着 TODOs 和关于设计决策的评论。这些代码是“信息经理”的基础,帮助他开发 Linux 内核。
Git 是主要的版本控制系统。如果有版本控制之战,Git 赢了。但是为什么 Git 会变得如此流行,Git 的历史是怎样的?根据 Lisp 的创造者 Richard Gabriel 的说法,这是因为“越差越好”当被问及为什么 C 语言和 Unix 操作系统会“赢”Lisp 时,他半开玩笑地回答了这个问题。他后来继续将“越差越好”定义为一种被广泛接受的整体哲学。
软件哲学
为了符合“越差越好”的理念,一项技术需要满足四个条件:
1.简单
2.正确性
3.一致性
4.完全
“越差越好”是一种哲学,与另一种被称为“正确的事情”或有时被称为麻省理工学院哲学的思维方式形成对比。“正确的事情”哲学同样具有简单、正确、一致和完整的首要原则。
这两种哲学有什么不同?让我们先来看看“正确的事情”哲学。
‘Worse is better’ is a philosophy that sits in contrast to another way of thinking called ‘the right thing’ or sometimes referred to as the MIT philosophy. ‘The right thing’ philosophy has the same overarching tenets of simplicity, correctness, consistency, and completeness.
How do these two philosophies differ? Let’s look first at ‘the right thing’ philosophy.
在“正确的事情”哲学中,当你看一个系统的设计时,你首先看它的简单性。设计和代码必须简单,无论是在实现方面还是在接口方面。一定要用起来简单。事实上,最后一个,简单易用的 UI,是最重要的租户,取代了实现的简单性。
下一个租户说软件必须正确。不正确是不允许的,所以你最好有一个没有错误的程序。
软件也必须始终如一地适合‘正确的事情’。事实上,一致性甚至比界面简单性更重要。只要软件保持一致,你可以在简单性方面走一些捷径。
最后,软件必须完整。它必须是可用的,并且做用户期望它做的所有事情。
这些听起来都是大房客。
In ‘the right thing’ philosophy, when you look at the design of a system, you look first at its simplicity. The design and code must be simple, both in terms of its implementation and its interface. It must be simple to use. In fact, that last one, the simple to use UI, is the most important tenant, superseding the simplicity of implementation.
The next tenant says software must be correct. Incorrectness is not allowed, so you should ideally have a bug-free program.
Software must also consistently fit into ‘the right thing’. In fact, consistency is even more important than interface simplicity. You can cut a few corners in the simplicity area as long as the software remains consistent.
“越差越好”与“正确的事情”
“正确的事情”与“越差越好”的哲学相比如何?
在“越差越好”的方法中,简单也是第一点,但是有一点扭曲。与其关注用户界面的简单,不如关注实现的简单。代码必须易于理解和扩展。这比简单易用更重要。“越差越好”方法中的正确性要求软件在所有可观察到的方面都应该是正确的,但实际上简单比正确要好得多。简单的实现胜过完全正确,尤其是在早期版本中。
“越差越好”下的设计需要一致,但实际上最好是去掉设计中处理不太常见情况的部分,而不是在应用程序中引入复杂性或不一致性,因此,实现的简单性再次胜出。
最后,“越差越好”中的完整性是重要的,但是当实现的简单性受到危害时,它可能会被牺牲掉。“越差越好”的核心是构建简单的可扩展代码,而不一定是好用、一致或完整的代码。诚然,这有点像稻草人的观点,但正如 Richard Gabriel 逐渐意识到的,坚持“越差越好”哲学的软件比信奉“正确的事情”世界观的软件有更好的存活率。这也是 C 和 Unix 最终战胜 Lisp 的原因。
How does ‘the right thing’ compare with the ‘worse is better’ philosophy?
Linux 和 Git 以及“越差越好”
有一个人比其他任何软件工程师都更坚持“最坏就是最好”的哲学,他就是 Linus Torvalds。Linus 构建了 Linux 内核和 Git,这是世界上最流行的版本控制系统。这是实践“最坏就是最好”哲学的两个极好的例子。
Linux and Git and ‘Worse is Better’
There’s one person who stands out as adhering to the ‘worst is better’ philosophy better than any other software engineer: Linus Torvalds. Linus built the Linux kernel and also Git, the world’s most popular version control system. Those are two excellent examples of the ‘worst is better’ philosophy in practice.
第一次有人听说 Linux 操作系统要追溯到 1991 年,当时一个名叫 Linus 的年轻学生在 Minix 邮件列表上发帖。Minix 是 80 年代后期的一个类似 Unix 的操作系统。Linus 有一台 386 计算机,他试图学习如何在很深的底层对它编程,以便在 386 芯片组上构建一个操作系统。在早期的声明中,Linus 指出 Linux“永远不会成为一个专业的操作系统”。然而,Linux 内核非常受欢迎。它发展得非常快,满足了许多计算机程序员的需求。人们在他的 Linux 内核和大量“用户空间”代码(如 shells)的基础上构建发行版,以与系统(如 Bash 、Zsh 或 Tcsh)进行交互。
像麻省理工学院和自由软件基金会的 Gnu/Hurd 项目这样的竞争架构从来没有像 Linux 发行版那样真正成为完整的系统。这是因为他们太专注于架构和获得“恰到好处”的东西,以至于他们从来没有真正把代码拿出来。Linux 以其“越差越好”的方式胜出,因为它发布得早,用户可以立即在它的基础上进行构建。Linus 刚刚宣布了他正在构建的东西,尽管当时它几乎无法运行,然后全世界都在看着它发展成为一个健壮而强大的操作系统。经过近 30 年的时间,经过深思熟虑和精心设计的 Gnu/Hurd 内核仍然没有发布 1.0 版本。
The first time anybody heard of the Linux operating system was way back in 1991 when a young student named Linus posted on a Minix mailing list. Minix was a Unix-like OS from the late 80s. Linus had a 386 computer and was trying to learn how to program it at a very deep, low level to build an operating system on the 386 chip set.
In his early announcement, Linus noted that Linux will “never be a professional operating system”. However, the Linux kernel was incredibly popular. It took off really fast and filled a need that a lot of computer programmers had. People built distributions on top of his Linux kernel and a lot of the “user space” code, such as shells, to interact with the system like Bash, Zsh, or Tcsh.
Git 前的协作
Linux 内核是作为一个开源项目合作开发的;可以说是世界上有史以来最成功的开源项目。合作者的工作方式是通过邮件列表,很像 Linus 用来宣布他最初想法的那个。人们交换补丁,在本地机器上编写代码,运行 diff,然后将输出发送到邮件列表。如果特定内核子系统的维护者对这一变化感兴趣,他们会在邮件列表中讨论这一变化,并最终将这一变化应用到下一个发行版中。从根本上说,这就是 2002 年 Linux 内核的变化。没有真正的版本控制系统。有项目维护者版本的源代码,仅此而已。不过,这个协作系统很快就达到了一个扩展点,在这个点上,手动操作太多了。他们需要一个系统来帮助,这就是 BitKeeper 的用武之地。
Collaboration before Git
从 BitKeeper 到 Git
BitKeeper 是第一个分布式版本控制系统。它在邮件列表系统之上增加了严密性,使得协作更加容易。BitKeeper 的问题在于它的许可证。这在当时是一种相当新颖的许可模式,BitKeeper 对其专有软件的商业使用收费,但给 Linux 内核开发者一个免费的“开源”许可。他们可以免费使用它,但他们没有源代码,而且许可证禁止逆向工程 BitKeeper。它还指出,用户不能试图建立一个竞争的版本控制系统。这导致了一些 Linux 内核开发者和 BitKeeper 背后的团队之间的紧张关系。最终,Linux 社区决定他们应该寻找其他的选择。
From BitKeeper to Git
然后是水银
在采用 BitKeeper 和寻找替代方案之间的时间里,有许多其他人在研究分布式版本控制问题。值得注意的是,2005 年 Matt MacKall 在 Linux 内核邮件列表上发布了 Mercurial v 0.1——一个最小的可扩展分布式 SCM。
Then Came Mercurial
In the time between adopting BitKeeper and looking for alternatives, there were a number of other folks working on the distributed version control problem. Of note, in 2005 Matt MacKall posted on the Linux kernel mailing list announcing Mercurial v0.1 – a minimal scalable distributed SCM.
虽然 Mercurial 还处于早期的概念验证阶段,但它已经表现得令人惊讶地好,并赢得了粉丝。在 Matt 的第一封邮件中,他提到了 Mercurial 仍需做的一些事情,包括各种清理、打包、文档和测试。这是一个“越差越好”方法的完美例子。有趣的是,在 Linux 内核邮件列表上,他得到的唯一回应是有人告诉他,这是太了,“越差越好。”
有一种普遍的观点认为,如果一个工具很难使用,格式不好,或者文档不好,那么不管它有多棒,人们都不会使用它。这与“越差越好”的哲学正好相反。事实上,只要代码简单,我们就可以把用户界面的简单性放在一边。Mercurial 的代码非常出色,这也是它如此受欢迎的原因。
同样在 2005 年 4 月,Linus 在 Linux 内核邮件列表上发布了一个公告,用的是他最初发布 Linux 时同样低调的方式。他宣布他正在编写一些脚本来帮助他管理 Linux 内核邮件列表上的补丁。他说,他的脚本不会是一个源代码控制管理系统或版本控制系统,只是一些特定于他的用例。Git 最初只是 Linus 为帮助他的用例而编写的一些脚本,但是他在开发的早期发布了这些脚本,以防其他贡献者会发现它们很有帮助。
管理 Git(和 Linux)开发
Linus 在 2005 年 4 月宣布的是 Git 的第一个版本。如果您在 Git 源代码镜像库上运行一个 Git 日志,您可以看到这个项目看起来如何,以及它是如何随着时间的推移而增长的。这些第一批 Git 日志消息是 Git 被“自托管”的第一次引用,这意味着 Git 项目正在使用 Git 来管理 Git。
自 Linus 在 2005 年发表第一篇文章以来,我们已经走过了漫长的道路。令人惊讶的是,Git 的统治地位是如此有影响力和持久,尤其是当你想到它最初只是少数几个文件,只有 1250 多行代码。它是不完整的,你几乎不能用它做任何事情。在其最初的形式中,Git 充其量只是一种分布式文件系统的机制。
正如 Linus 所说,它不是版本控制系统,也不是 SCM。它既不一致,也不真正正确,尤其是在缓存方面。这当然不简单,因为你必须是 Linus Torvalds 才能知道如何使用它。这绝对不是你今天看到的那个饭桶。
尽管存在这些问题,人们还是开始使用它。具体来说,Linux 内核黑客开始使用它,因为它简化了他们的生活,就像它简化了 Linus 的生活一样。
黑客的目标是创建补丁让 Linus 接受,而 Linus 的目标是管理和接受这些补丁。这正是这个系统所做的。
最初,没有服务器端组件。这非常符合“越差越好”的哲学:当 Gmail 这样的服务可以为你做的时候,为什么要建立自己的服务器呢?其核心是通过电子邮件打补丁,它把实际的硬件部分——运行保存补丁的服务器——卸载给已经编写了工作版本的其他人。
莱纳斯的目标实现了吗?是的。它出现了并被使用。人们开始使用它而不仅仅是 Linux 内核开发,并且开始使用 g it 来管理 Git 开发!有人可以修复 Git 中的一个 bug,并向邮件列表发送一个补丁。
Originally, there was no server-side component. This very much fits into the ‘worst is better’ philosophy: why build your own server when a service like Gmail can do it for you? At its core, it was about patches over email and it offloaded the actual hard bits—running a server that held the patches—to somebody else who already wrote a working version.
Was Linus’ goal satisfied? Yes. It got out there and got used. People started using it beyond just Linux kernel development and started using Git to manage Git development! Somebody could fix a bug in Git and send in a patch to the mailing list.
Git 的接口并不简单,但它的代码很简单,这也是它能够被扩展的原因。正如 GitHub 的联合创始人汤姆·普雷斯顿-沃纳所说,“Git 让协作成为可能,但并没有让协作变得容易。”它使一种非常特殊的合作形式成为可能,一种非常分布式的、拥抱开源哲学的合作形式。
开放开源
如果很难合作,只有某些人掌握着源代码的钥匙,那么开源就不是非常开放的。汤姆和他的朋友克里斯·万斯特拉斯和 PJ·凯悦决定解决这个问题,于是想出了 GitHub.com。
GitHub 具有托管公共存储库的能力,使得来回发送更改和讨论这些更改变得非常容易。不需要邮寄补丁和等待,你可以通过推你的代码突然打开一个 Git pull 请求。您可以派生一个存储库,并与分支机构合作开发任何类型的开源项目。它真的降低了合作的障碍。这是革命性的。
Git 的数据结构很简单,代码也非常简单。即使您不了解图论,在阅读 Git 的格式文档后,您也会对数据结构的简单性印象深刻。简单的数据结构允许人们在 Git 之上构建其他东西,比如 Heroku 中的 Git 端点。Git 还允许简单的部署;运行 Git 推送即可。
GitHub came with the ability to host public repositories, making it really easy to send changes back and forth and discuss those changes. Instead of mailing a patch and waiting, you could suddenly open a Git pull request by just pushing your code up. You could fork a repository and work with branches to collaborate on any type of open source project. It really lowered the barriers to collaboration. It was revolutionary.
进入 Git 客户端
Git 很快从“另一个”版本控制系统变成了全球范围内占主导地位的版本控制系统。随着 Git 越来越受欢迎,人们开始构建命令行客户端和 Git GUI 客户端,以使其更易于使用。
有一个图表有助于可视化的变化和分支。能够看到 Git 差异也非常有帮助,这使得审查变更或决定 Git rebase 或 Git merge 是否对某些提交更有意义变得更容易。自从上市以来,开发这些工具的开发人员已经推动用户界面变得越来越直观,满足了“越差越好”和“正确的事情”这两个“简单”的理念。多年来,Git 客户端已经从像 gitk 这样的初级工具发展到 TortoiseGit 的点击和指向,并最终发展到 GitKraken Git 客户端提供的拖放和漂亮的提交图形,它包括一个 GUI 和 CLI 。
Git 给了我们一个版本控制更容易使用和理解的世界。在这个世界里,我们拥有使协作和代码部署更容易的平台。由于这种“越差越好”的方法,Git 工具形成了一个非常活跃的生态系统。
Git quickly went from just ‘another’ version control system, to the dominant version control system worldwide. As Git’s popularity grew, people started building both command line clients and Git GUI clients to make it easier to use.
GitKraken 是 Git 工具的一个完美例子,它已经发展到可以应对新的挑战,具有交互式拉请求管理、合并冲突检测和解决、深度链接等高级功能。
从‘Git’到 Git
我们也已经从 Git 仅仅是 Linus 最初编写并由 Junio Himano 维护了多年的命令行应用程序,发展到 Git 作为一套 SCM 协议,允许您管理 Git 库。像 libgit2 、 Jit 、 NodeGit 和 pygit2 这样的库不需要调用 shell 命令来运行git
并解析输出。他们可以直接针对文件系统执行任何 Git 命令,比如 Git Commit 、 Git Branch 或 Diff,以各自的编程语言生成输出。这就是 Git 服务和工具真正可以扩展的方式。
From git
to Git
赢家是 Git(还有你)
Git 赢了,因为它信奉“越差越好”的哲学。它不担心是否完整或是否一定正确,至少一开始是这样。Linus 构建了一个最小可行的产品,就像他们在开源世界中说的那样“挠自己的痒”。他构建了一个简单且易于实现的小型工具集。他向全世界发布了它们,现在很难低估 Git 对我们软件开发所有领域的影响。
尽管 Git 取得了胜利,但 Git 仍有一些可以改进的地方。点击这里查看 Edward 演讲的最后部分,了解这些领域以及 Git 如何继续发展。另外,你可以看到 2021 年 GitKon Git 大会的现场 Q & A。
充分利用 Linus、Edward 和所有 Git 贡献者在最流行的版本控制系统中所做的工作,以及 GitKraken 团队所做的工作,通过可视化和更好的 UI 使 Git 更加可用今天下载 GitKraken Git 客户端,包括 GUI 和 CLI !
The Winner is Git (and You)
Git won because it embraced the ‘worse is better’ philosophy. It didn’t worry about being complete or being necessarily correct, at least at first. Linus built a minimum viable product, ‘scratching his own itch’ as they say in the open source world. He built a small set of tools that were simple and easily implemented. He released them to the world and it’s now hard to underestimate the impact that Git has had on all areas of our software development.
Despite the fact that Git has won, there are still some areas where Git can be improved. Click here to check out the final section of Edward’s talk to hear about these areas and how Git can continue to evolve. Plus, you can see a live Q&A from the 2021 GitKon Git conference.
Take advantage now of all the work that Linus, Edward, and all the Git contributors have put into the most popular version control system and all the work the GitKraken team has done to make Git more usable through visualizations and a better UI by downloading the GitKraken Git client today, including a GUI and CLI!
如何举办学生黑客马拉松
举办学生黑客马拉松有很多原因,无论你是学生、教师还是社区倡导者,这些活动都有助于刺激技术发展、探索、合作和创造力。
但是计划和执行一次黑客马拉松并不是一项简单的任务。这些事件通常会持续数天,涉及许多移动部件,并需要大量的技术工具和专业知识。你需要一个强大的团队和合适的设备来为与会者创造宝贵的体验。
在这篇文章中,我们不仅会推荐成功举办学生黑客马拉松的软件工具和路线图,我们还会包括来自我们在大联盟黑客活动的合作伙伴的内部提示,以及来自 GitKraken 大使的专业人士,他们已经成功举办了许多黑客马拉松(并且活了下来!).
在这篇文章中,你会发现:
在整个活动中,你将要求参与者完成一个软件开发项目,他们需要合适的工具来完成这项工作。
GitHub 与 Axosoft 等公司合作,不仅为学生免费提供开源托管平台,还通过 GitHub 学生开发包免费提供其他领先的工具,如 GitKraken Git GUI、GitKraken Boards、Digital Ocean、Atom、AWS 等。
保护提示:选择与会者不会被要求付费的工具是很重要的,所以寻找免费选项,或者提供免费试用的工具。市场上的许多开发工具都提供 7-30 天的免费试用。
1️⃣ GitKraken 董事会
GitKraken Boards 是一款专门为开发者设计的跟踪任务和问题的工具。用户可以创建彩色看板,通过分栏或日历视图查看工作流中的任务。
最棒的是 GitKraken 板让团队合作变得非常容易。您可以创建任务卡并将其分配给团队成员,并查看每个人在项目中的进度。
GitKraken Boards 是一个完全免费的工具,你的参与者可以在黑客马拉松之后继续使用它来帮助组织其他课程或家庭项目的任务。时间管理和组织对于工作场所来说是至关重要的技能,许多学生开发人员在学校时没有花时间练习。此外,如果你加入一个使用 GitHub GitKraken 板的组织,你会从这个工具中获得更多的实时 GitHub 问题同步。
2】走的时候,走的 GUI
GitKraken Boards 直接与我们下一个推荐的工具集成,Git kraken Git GUI(T1),减少了上下文切换,并防止您的与会者不得不创建另一个帐户。
学生可以通过 GitHub 学生开发者包免费获得 GitKraken Pro 套件许可证。这允许您的与会者访问高级功能,如应用内代码编辑器和合并冲突工具,只要他们注册,就可以免费使用该工具。
黑客马拉松的参与者可以使用这个工具来创建、管理和跟踪对他们的项目所做的变更。它让合作开发项目成为一个梦想。无论您是 Git 新手还是高级用户,GitKraken 都提供了整个项目的可视化路线图,包括谁对哪个部分做了哪些更改。
很难鼓励与会者之间的互动,因为软件开发人员并不以公开外向著称。作为一名黑客马拉松组织者,你必须深思熟虑地鼓励人们一起工作,像 GitKraken Git GUI 和 GitKraken Boards 这样的工具在创造合作机会方面是完美的。
– GitKraken Ambassador Kevin Wittek from NRW, Germany
GitKraken 漂亮的用户界面、直观的拖放功能和强大的搜索功能是该工具适合各种体验水平的部分因素。
3️⃣大联盟黑客
决定你想在你的黑客马拉松上展示哪些内容至少是成功的一半。大联盟黑客(MLH)让这个过程变得如此简单!
虽然 MLH 与北美的合作伙伴一起帮助促进学生黑客马拉松,但他们也有一个庞大的交钥匙、现成的研讨会库,涵盖各种各样的开发主题。
在 MLH 的网站上,有希望的黑客马拉松组织者可以通过他们的 MLH 本地主机项目注册成为研讨会组织者。
MLH 本地主机库包括关于 Slack、Microsoft Azure、Google、Docker 等主题和工具的研讨会。
4️⃣其他装备
您还需要一些基本设备来确保活动成功:
- 投影仪
- WiFi 足够强大,可确保所有与会者的高质量连接(您甚至可能需要带额外的路由器)
- 电源板
- 额外的电缆、电线、适配器和 USB 驱动器
一般来说,黑客马拉松的参与者需要携带自己的个人电脑。这一点要在活动推广中沟通清楚。
策划一次成功的学生黑客马拉松
既然你已经准备好了工具带,是时候召集一个团队,开始计划活动后勤了。
1️⃣打造团队
最重要的是:让你的小队集合起来!如果你正在读这篇文章,很可能你是一个天生的领导者。我们明白了。但是,即使是最好的领导人也需要帮助,对于这种规模的事件,你不能独自完成。你需要一个团队。
你会希望志愿者不仅可以帮助你计划活动和保护赞助商,而且还可以在必要时在现场提供帮助(准备食物、登记与会者、指引人们去哪里等)。此外,你会希望找到一些志愿者导师,他们可以在黑客马拉松的整个过程中提供建议。
建议:在你的预算中为志愿者的感谢留些空间,无论是一份小礼物,还是请他们参加披萨派对或欢乐时光。这将会持续下去,尤其是如果你计划在未来举办更多的黑客马拉松。
MLH 团队在他们的黑客马拉松组织者指南中分享了更多关于建立杀手级领导团队的专家建议,这是你在整个规划过程中可以参考的丰富知识。
2️⃣选择场地
在你能做很多其他事情之前,你需要找到一个场地。为黑客马拉松选择场地要比为研讨会或网络活动寻找场地困难得多。
您将需要空间让一大群人聚集在一起进行开幕和闭幕活动,您还需要区域让团队进行分组讨论并连续工作几个小时。此外,你将需要全天提供食物和饮料的空间。
除了物理空间,你还需要座位。每个与会者都应该有一个座位,最好有一个桌面来放置他们的笔记本电脑。
并不是所有的黑客马拉松都包含过夜选择,但有些是针对多日活动的。如果这是你正在考虑的事情,你也需要找一个安静、黑暗的地方让与会者休息。
3️⃣决定你的黑客马拉松的形式和时间表
MLH 黑客马拉松组织者指南在 9 个月的时间内出色地概述了整个规划过程,详细说明了你应该在过程中的哪个点完成特定的任务。请参考该资源,确保您在活动开始前一切顺利。
一些学生黑客马拉松组织者选择设定一个主题来鼓励某些类型的项目,例如关注环境或社会变化的应用程序。虽然你不一定需要一个主题,但你需要在开幕式上给你的与会者提供一个很好的方向,然后再把他们放入工作组。
考虑在全球范围内参加其他黑客马拉松,将它安排在当地黑客日,这是 MLH 倡导的一项倡议。
– GitKraken Ambassador Omar Jair Purata Funes from León, Mexico
传统上,黑客马拉松的时间线应该是这样的:
第一天(半天)
- **欢迎与会者。**黑客马拉松组织者介绍活动,分享合作伙伴和赞助商的信息,并涵盖任何日常事务(洗手间在哪里,在哪里买咖啡等)。
现在正是回顾活动行为准则和任何其他相关规则的大好时机。作为组织者,你有责任确保所有与会者在整个活动中感到安全和舒适。
– GitKraken Ambassador Manbir Singh Marwah from New Delhi, India
开放球场。 Hackathon 的参与者被邀请向更大的群体提出一个应用想法。然后对这些想法进行投票,选出最受欢迎的想法,这些想法最终将在接下来两天的黑客马拉松中由工作组构建。
分成工作组。通常情况下,与会者会被邀请决定他们想要实施的想法。每个组中的角色是根据需求和专业知识确定的。无论是谁,只要有了最初的项目想法,自然会担当领导角色,并根据他们的愿景进行委派。
工作开始了!现在,各小组将开始他们的项目工作。你可以考虑提供一顿饭来结束这个夜晚,或者提供建议,告诉与会者在哪里可以找到食物选择。你还应该让他们知道他们可以在什么时间进入场馆的工作区。
第 2 天(全天)
- **演示软件工具。**第 2 天的开始通常是复习学生可以使用的工具以及如何使用它们的好时机。为了尽量减少信息过载,建议进行 5-10 分钟的演示。
- 工作,工作,工作。与会者应在第二天完成大部分项目,为最后一天的评审做准备。
第三天(半天)
- **期末项目触及&导师签到。**在第三天开始时,与会者通常有一两个小时的时间来完成他们的项目,也欢迎他们在导师志愿者面前练习他们的演讲。
- **最终音高。**团队向更大的团队和评委小组展示他们的提案。
- **宣布获奖者&闭幕庆典。**在评委们讨论之后,黑客马拉松组织者将宣布前 3 名获胜者。以一个闭幕庆典来结束这次活动是一个不错的选择。
ProTip:考虑为获胜者提供奖品,比如现金或机票;这将激励优质项目和活动的参与。
两件事将帮助你决定你能支持多少人参加你的学生黑客马拉松:场地和预算。
如果你幸运的话,你可以找到一个场地赞助商,他们会以实物形式提供场地(免费换取赞助利益)。否则,这将可能是最大的开支。根据你希望接待多少人和你的活动时间长短,场地费从几百美元到 10,000 美元不等。关键是你要留意与场地租赁相关的隐藏费用,如人工、清洁、影音费用等。
食品和饮料将会是下一个花费你大部分预算的项目,这就是实物赞助可以派上用场的地方。即使你希望与会者自己在场外寻找食物,你也会想要很多小吃,最重要的是,咖啡因,让你的与会者在整个活动过程中保持精力充沛。
ProTip:为本地餐厅添加一个赞助级别,赞助餐食、小吃、咖啡或其他饮料,以换取品牌推广机会。这不仅是一个降低成本和支持当地社区的好方法,也将通过独特的食物选择增强与会者的体验。
最后,赞助商是为前 3 名获奖者提供奖品的好方法。无论是现金、奖品、礼品卡等,奖品都有助于提高您在黑客马拉松中完成的工作质量,并将吸引更多学生参加。
5️⃣挑选评委
除非你的黑客马拉松有一个需要特定专业知识的主题,否则你会希望选择一个拥有技术知识的多元化评委小组,他们可以为保护投资者提供建议。在许多情况下,评委本身就是投资者(谁知道呢,他们可能会在你的活动中找到下一笔投资!).
在《MLH 黑客马拉松组织者指南》中获得更多关于预约黑客马拉松评委的提示,比如从哪里获得他们以及如何最好地提问。
你的评委将是你活动的一个关键因素,所以当你要求他们参与时,一定要尽可能提前通知。毕竟专业人士的日程经常很忙!你也要给他们非常明确的指示,告诉他们第三天需要在哪里和什么时候进行评判。
在你有了所有的计划之后,或者甚至在此之前,你会想要开始在整个学校推广你的活动。瞄准学生群体,如软件开发者协会、计算机科学班或其他基于技术的组织,是一个很好的开始。你也可以考虑邀请当地的科技训练营或者附近的学校。
让你的团队、赞助商和合作伙伴接触他们的个人关系网,把消息传得更远。ProTip:当提出这样的请求时,如果你向他们提供预先起草的电子邮件和社交媒体信息,他们分享的可能性会更高。通过创建和使用一个事件标签,尽早开始制造轰动效应。
在参与者注册你的黑客马拉松后,他们对期望有一个全面的理解是非常重要的:他们需要带一台电脑,他们必须参加所有三天的活动,并且出席所有的活动,等等。
最后,应该会很好玩
我们的最后一条建议来自来自肯尼亚纳库鲁的 GitKraken 大使 Gatare Libère:“让它变得有趣!”
在一天结束的时候,你的黑客马拉松对你、参与者、评委、导师和志愿者都应该是一次有趣的经历。考虑把工作时间和短时间的活动混在一起,比如伸展运动、集体游戏、上色休息——发挥创造力!
现在,去黑吧!
举办虚拟研讨会
2020 年的全球健康危机改变了技术专家分享专业知识的方式。以前在当地集会和大型面对面会议上教授技术研讨会的社区领袖被迫寻找新的方式与观众联系。
但是科技行业是灵活的,适应性强的,创新者和教育工作者不会让距离阻止他们传播知识。一个数字化事件的新世界已经诞生。
虚拟事件创意
举办虚拟活动可以有多种形式。自从疫情以来,我们已经看到了从虚拟快乐时光到全天在线会议的一切;我们甚至有几个属于自己的虚拟游戏之夜。已经知道您想要主持一个虚拟 Git 研讨会?跳下来的⬇️
虚拟快乐时光
这种类型的活动非常适合更轻松的聚会。
如果只有很少的人,你也许可以“即兴发挥”,但如果你有超过 10 个与会者,你可以考虑建立一个非正式的议程,比如以一个有趣的事实开始,这样每个人都有机会发言。
GitKraken 大使虚拟快乐时光
虚拟会议
把在虚拟空间主持会议看作是积极的一面;你有更多的机会与你的客户和同事进行创造性的交流。
我使用的一种方法是用桌面模拟器拼出一个谜题,同时讨论我的客户的项目是如何工作的,同时我发现他们对 Git 了解多少。我会让这个人完成这个难题,这样我就能更好地了解他们是如何思考和解决问题的。这有助于推荐最佳解决方案。
– Josey Howarth, Love Sudo
虚拟会议
虽然主持虚拟会议看起来是一项不可完成的任务,但不要让你的焦虑阻止你向大量数字观众提供全面的虚拟体验。
伟大的在线活动利用媒体的能力,而不是试图复制确切的体验。一些简单的事情,如休息时的音乐,会议之间的创造性插曲,以及人们聊天的地方,都有助于捕捉现场活动的魔力。
– Dylan Schiemann, CEO at Living Spec and organizer, Halfstack
虚拟车间
向特定受众教授特定主题?即使你的演示通常涉及动手指导,这并不意味着你不能有效地教育。我们已经收集了一些工具、提示和技巧,用于促进引人入胜的虚拟研讨会。
虚拟车间工具
1。视频会议:要事第一。你需要一个视频会议平台来主持你的数字研讨会。
我们的首选: Zoom (免费-20 美元/月):最常用的视频通信工具之一,Zoom 专业且易于使用,并允许您直接与您的与会者互动。您可能需要一个付费计划,这取决于活动的长度和人数。ProTip: Zoom 包括一个非语言反馈功能,允许与会者以举手✋(如果他们有问题)、绿色支票✅(确认他们已经完成了一步)或❌(如果他们遇到了障碍)的形式提交反馈。学习如何启用非语言反馈。
但是,变焦并不适合所有人。例如,特别是如果您正在进行实时编码项目,您可能想要寻找另一个平台。
尝试使用本地工具或非常容易使用的工具进行流式传输,如 Streamyard 。这让你可以直接在脸书、YouTube 和其他平台上观看视频。
– GitKraken Ambassador, Gustavo Cevallos
2。耳机:为了在整个活动中减少你的注意力分散,戴上专门用来屏蔽外部噪音的耳机。如果耳机有内置麦克风,这将节省你购买下一个项目列出的奖金。
我们的首选:ATH 音频技术公司-M50x (零售价约 150 美元)虽然有点投资,但这些耳机提供了我们发现的最佳音质。多花 30 美元,你就可以购买带麦克风的蓝牙版本。
3。麦克风:使用麦克风确保你的与会者能清楚地听到你的声音。另外,你可以用它来播放播客,甚至是在线会议。
我们的首选: Antlion ModMic Uni (零售价~$50)你最好只购买带麦克风的耳机,但如果你没有,Antlion 的 ModMic 是一个很好的选择,可以轻松连接到你的耳机上。
4。摄像头:如果你的电脑没有内置网络摄像头,如果你想让你的与会者看到你的脸,你需要购买一个。
我们的首选: 任何亚马逊的 1080p 网络摄像头都可以。(零售价约 50 美元)但实际上,大多数现代网络摄像头都非常适合你的需求。
5。创意背景:确保你的背景切题——与会者会看到!你可以选择一个 IRL 背景,比如书架或者艺术墙,或者使用一个虚拟背景,比如一个很酷的图片或者动画视频。让你的背景显示出一点你的个性。
我们的最佳选择: 在 Unsplash 上下载漂亮的免费图片。GitKraken 粉丝?使用我们的免费的克拉肯风格桌面壁纸。
确保你比你的背景更明亮。如果你坐着的时候背后有一扇窗户,可以考虑关上百叶窗,在你的前面加一盏明亮的灯,或者旋转你的桌子。
– Chuck Dries, Software Engineer, GitKraken
加分:使用可与您的视频会议平台配合使用的应用程序,为您的演示增添趣味。虽然仍处于测试阶段,但嗯嗯提供了一个不那么尴尬的体验,并给演讲者更多的自由来创造性地分享他们的内容。
举办虚拟研讨会的技巧
除了为您配备合适的工具,我们还直接从专家那里获得了一些提示和技巧。
招募一名团队成员在整个会议期间担任主持人。他们可以获得技术支持,并可以关注任何与会者的问题。
– Alexa Saunders, Solutions Engineer, GitKraken
通过向提问的与会者提供虚拟礼物或奖品(如软件许可证或礼品卡)来鼓励参与。
– GitKraken Ambassador, Gustavo Lizárraga
当我做演示时,我确保将我的 GitKraken、VS 代码和互联网浏览器视图放大到 125-130%。这使得观众更容易看到和阅读我屏幕上的内容。
– GitKraken Ambassador, Frank Boucher/@fboucheros
举办虚拟 Git 研讨会
如果您有兴趣在 Git 上举办一个数字研讨会,那么您来对地方了。这些统包演示材料将帮助您为技术受众举办无缝研讨会做好准备。
为什么要去?
Git 是一个版本控制系统,帮助软件开发人员组织项目历史,跟踪文件更改,并以较低的风险进行协作。
Git 是版本控制王国公认的王者。 2019 年软件开发状况报告显示,91.22%使用版本控制的开发者选择 Git。
特别是如果你是一名学生,你将会想要学习和理解 Git 的概念来提升你的工作技能。(PS: 学生可以通过 GitHub 学生开发者包获得免费的 GitKraken Pro 套件)。
跟 GitKraken 学 Git!访问我们的初级、中级和高级 Git 教程视频库。
Especially if you’re a student, you’re going to want to learn and understand the concepts of Git to level up your skills for the workforce. (PS: Students can get free GitKraken Pro Suite through the GitHub Student Developer Pack).
Learn Git with GitKraken! Access our library of beginner, intermediate, and advanced Git tutorial videos.
数字 Git 演示文稿
GitKraken 的团队相信 Git 的重要性和价值,并希望世界上有尽可能多的开发人员使用 Git。因此,我们利用这些交钥匙演示材料,让您轻松教授数字 Git 研讨会。
在这次互动中,虚拟研讨会的与会者将学习如何设置 GitHub 帐户,下载跨平台 GitKraken Git GUI,并注册 GitKraken 板,为构建 HTML/CSS 网页做准备。
作为演示者,您将解释常见的 Git 概念,并了解通常如何在命令行中执行操作,然后了解 Git 工作流使用可视化工具(如 GitKraken Git GUI)有多简单。
将 GitKraken 与 GitHub 集成后,您将带领参与者创建一个存储库、克隆 repo、创建一个分支、在 GitKraken 代码编辑器中编辑一个文件、提交更改、将更改推送到 GitHub、提交并合并一个 pull 请求,最后合并更改。
与会者还将使用 GitKraken 板创建一个Starter Kanban Board
来跟踪他们在整个研讨会中的进度。
Attendees will also create a Starter Kanban Board
using GitKraken Boards to track their progress throughout the workshop.
帮助与会者准备虚拟研讨会
数字研讨会带来了独特的挑战,比如无法与与会者面对面交流。你不能走到某人面前,通过指着他们的电脑屏幕来帮助他们,你也不能分发硬拷贝材料。花点时间让你的与会者在活动前做好准备,将有助于他们从体验中获得最大价值。
考虑在活动开始前至少 24 小时给出席者发送一份数字清单。包括在他们需要访问的任何平台上创建帐户的说明。这将节省时间,避免演示过程中分心。
提供一份他们可以期待的议程。包括你们将要讨论的主题和重要事件的时间。例如,也许你想在电话开始时让每位与会者做自我介绍——不要当场让他们大吃一惊!
设定参与期望。让与会者知道他们如何在整个研讨会中提问,无论是通过 Zoom chat、Slack 频道等。
分享其他资源的链接,这些资源将帮助他们为研讨会做准备,或者他们可能想从头到尾参考。
Share links to additional resources that will help them prepare for the workshop, or that they may want to reference throughout.
举办虚拟研讨会
现在,您已经拥有了举办一个成功的、有教育意义的数字 Git 研讨会所需的一切。我们衷心感谢你们,感谢你们致力于在本地和数字社区扩展知识。
Now you have everything you need to host a successful, educational, digital Git workshop. We thank you, from the bottom of our hearts, for your dedication to expanding knowledge in your communities, both local and digital.
Git 是如何工作的?了解 Git 内部是如何工作的
原文:https://www.gitkraken.com/gitkon/how-does-git-work-under-the-hood
https://www.youtube.com/embed/gzJk1ruqSok?feature=oembed
视频
Git 是什么?
Git 由 Linus Torvalds 于 2005 年创建,旨在维护 Linux 内核的开发。Git 建立在完全分布式、速度、简单设计、处理大型项目的能力和对非线性开发的强大支持的基础之上。围绕 Git 的历史和它的创建存在着大量的传说,包括它为什么和如何得到这个奇特的名字,它最初创建的原因,等等。
让我们看看 Git 是如何工作的,以便更好地理解这个强大的版本控制系统(VCS)。我们将介绍什么是 Git 文件夹,它是如何在内部使用的,使用了什么数据结构,在执行常见操作时 Git 中实际发生了什么,以及如何从存储库中可能发生的特定数据丢失中恢复。
Let’s take a look at how Git works under the hood in order to better understand this powerful version control system (VCS). We’ll cover what the Git folder is, how it’s utilized internally, what data structures are used, what really happens in Git when performing common operations, and how to recover from specific data loss that may occur within your repositories.
“@GitKraken 使 Git 中难的或多余的部分变得简单。它没有隐藏 Git 概念。这真是太好了。”–@德州
“@GitKraken makes the hard or redundant parts of Git easy. It doesn’t hide Git concepts. It’s as good as it Gits.” – @texastoland
了解 Git 文件夹
.git
文件夹存在于你机器上的每个本地 Git 库中。它包含多个用来跟踪你的代码库的文件。
Git 挂钩
当您初始化一个新的存储库时,会自动创建 Git hooks 文件夹。Git 挂钩是在事件之后执行的 shell 脚本,比如一个 Git commit 或 push。开发人员使用 Git 挂钩将用户功能注入常见的 Git 操作。有 17 种不同类型的 Git 挂钩可以实现这一功能。
例如,如果您想要使用一个 Git 钩子来帮助您格式化一个提交消息以匹配您的团队所实施的一个标准模式,您将执行以下步骤:
Git Hooks
导航到.git/hooks
目录
移除。commit-msg Git 挂钩示例
通过运行chmod +x prepare-commit-msg
确保准备-提交-消息正常工作
- 索引文件
- 在 Git 中,索引文件定义了临时区域。当您运行
git add
或git rm
时,这一点清晰可见。如果您尝试使用cat
或HEAD
来“抓取”该文件,您将会看到大部分输出是乱码和不清楚的。这是因为存储在索引文件中的信息是用二进制表示的,这使得 Git 和计算机程序更容易阅读,但是人们理解起来有点困难。 - Ensure that the prepare-commit-msg works by running
chmod +x prepare-commit-msg
Git 包含索引中每个文件的元数据,比如文件类型和其他相关信息。然而,Git 的索引不知道如何自己处理空文件夹。这就是为什么你通常要创建一个名为“Git keep”的文件。
头文件
头文件是 Git 文件夹中的另一个文件,是索引文件的附录。头文件跟踪当前签出的内容。
什么是裁判?
一个 Ref 可以是三种不同事物中的一种。
HEAD File
HEAD——对您当前所在分支的象征性引用。包含指向另一个引用的指针。
remote——类似于分支,但是存储在 GitLab、GitHub 等任何云 Git 提供者中。
标签——类似于提交对象,但通常指向提交而不是树。
A Ref can be one of three different things.
提交对象
- 提交对象是在门提交期间创建的。如果您运行
cat-file-p
命令,您可以看到它包含与提交相关的文件树的信息,包括存在什么文件、它跟踪哪个父提交、关于作者提交者的信息以及提交消息。 - 所有提交对象共享一些公共属性;它们各自存在于一个对象的文件夹中,该文件夹存储在
.git
文件夹中,它们的所有路径都是它们的内容之一的阿沙,所有对象都用zlib
压缩。 - 提交对象有四种类型:
tree–存储关于目录树的信息
提交-您的更改的快照
Blob-文件的内容
标记-指向 Git 历史中特定点引用
GitKraken 客户端提供的易于阅读的提交图有助于您可视化所有类型的提交对象,以及分支结构和完整的提交历史,让您对项目有更多的控制和了解。
打包文件
packfile 是一个文件中许多对象的集合。虽然 packfile 本身没有用 zlib 压缩,但是里面存储的对象是压缩的。packfile 有一个扩展名为
.pack
的文件,以及一个扩展名为.idx
的补充索引文件。这个索引文件只是使从 packfile 中解包单个对象的速度更快。如果您访问 Git objects 目录,您可能会发现 packfiles 与对象放在一起。那些不属于该包文件的对象称为松散对象。松散对象可以在以后添加到 packfile 中,这通常是在运行
git gc
时自动完成的。只有在检测到相当大的回购规模并运行git gc
后,才会触发该流程。
当您使用网络操作时,Packfiles 也会发挥作用。当您运行git push
或git pull
时,所有文件都被压缩到一个 packfile 中,以便通过管道传输。抓取克隆也是如此,因为在幕后, Git 克隆利用抓取。在这里你可以看到克隆和获取之间的关系被演示。
配置文件
与提交对象不同,配置文件不是 zlib 压缩的,这意味着您可以以纯文本文件的形式查看它们。配置文件包含存储库设置、关于远程的信息以及关于被跟踪分支的信息。
Packfile
使用日志从错误中恢复
我们都经历过不小心犯了不该犯的错误。假设你刚刚运行了一个git log
,发现你做了一些你不打算做的事情。然后您运行一个git reset hard
来删除该提交,但是意识到该提交还包括一个您仍然需要的重要文件。这些内容会永远消失吗?你又回到起点了吗?😅
幸运的是它不是。这就是我们的日志文件夹发挥作用的地方。每次更新 ref 时,都会更新日志文件夹。也就是说,每次您提交或以某种方式更改引用时,日志文件夹都会存储这些信息。使用日志文件,您仍然能够看到被删除的提交的对象 id。即使重置更新了磁头,它也没有删除本地对象。您现在可以 Git checkout 提交并获取您需要的重要文件。
您还可以使用 Git 的ref log
命令来访问这个日志功能。默认情况下,该命令将显示已检出内容的标题,但是您可以使用该命令选择其他引用,只需提供所需引用的名称。因此,如果您想查看对于另一个分支的引用,哪些提交已经被更改,只需运行git ref log
并指向该引用。
Config File
恢复无法到达的物体
虽然 Git reset 对于更新 ref 来说是一个有益的工具,但是需要注意的是它不会修改本地对象。这意味着即使你正在做一个 Git rebase 或者一个 force push,你仍然能够在对象文件夹中跟踪你的对象。
使用 Git reset 可以使对象不再被 ref 引用。这些对象被称为不可及对象。git gc
默认情况下,两周后删除这些对象,因此有一个短暂的窗口,在此期间数据可能是可恢复的。
您可以使用代表 Git 文件系统检查的git fsck
来找到不可到达的对象。git fsck
不显示在 logs 文件夹中跟踪的不可到达的提交对象,所以您需要在运行该命令之前临时删除该文件夹。这将显示任何未完成的不可到达的对象,并允许您访问它们。
你知道的越多
了解 Git 的来龙去脉会让你成为团队和雇主的宝贵财富。如果您想继续增长您的 Git 知识并添加更多有助于您成功的工具,只需看看现在带有 GUI 和 T2 CLI 的 GitKraken 客户端就可以了。GitKraken 客户端以其漂亮的提交图使编码变得简单和可视化,以其撤销错误的能力变得安全,并以其集成兼容性变得强大。
Recovering Unreachable Objects
While Git reset can be a beneficial tool for updating a ref, it’s important to note that it doesn’t modify local objects. This means that even if you’re doing a Git rebase or a force push, you’re still able to track your objects in the object folder.
Using Git reset makes it so objects are no longer referenced by a ref. Those objects are called unreachable objects. git gc
by default removes these objects after two weeks, so there is a brief window where the data may be recoverable.
You can find unreachable objects using git fsck
which stands for Git file system check. git fsck
does not show unreachable commit objects that are tracked within the logs folder, so you’ll need to temporarily get rid of that folder before running the command. This should reveal any outstanding unreachable objects and allow you to access them.
The More You Know
Knowing the ins and outs of Git makes you a valuable asset to your team and employers. If you want to continue to grow your Git knowledge and add more tools that will help you succeed, look no further than the GitKraken Client, now with a GUI and CLI. The GitKraken Client makes coding easy and visual with its beautiful commit graph, safe with its ability to undo mistakes, and powerful with its integration compatibility.
Git SSH 如何工作| Git 初学者教程
原文:https://www.gitkraken.com/learn/git/tutorials/how-git-ssh-works
初学饭桶教程
https://www.youtube.com/embed/z7jVOenqFYk?feature=oembed
视频
GitKraken 使认证 Git SSH 的过程更加顺利,因此您的整个团队可以安全地为您的项目做贡献。
Git SSH 或 secure shell 是一种网络协议,用于安全加密通过互联网从计算机推送到服务器的任何数据。
观看这个 Git 初学者教程视频,了解 Git SSH 如何安全地登录到远程机器、安全地传输文件以及安全地发出远程 Git 命令。此外,看看 Git SSH 密钥背后的科学以及它们如何加密数据。
您还将在 GitKraken Git GUI 中看到 Git SSH 如何工作的示例,因为 GitKraken 作为 SSH 代理,通过代表您与 SSH 服务器进行通信来提供额外的安全性和便利性。
Git SSH 在 GitKraken 是如何工作的?
您的机器可以使用 SSH 代理与 SSH 服务器进行协商,作为额外的安全层,而不是使用本地机器作为 SSH 客户机。
GitKraken 虽然不是可以被其他应用程序使用的传统 SSH 代理,但它可以代表任何 GitKraken 用户与 SSH 服务器进行协商。
如何设置 Git SSH?
要在 GitKraken 中设置 Git SSH,请导航到 preferences,然后单击 Authentication 来访问您的 Git SSH 设置。
如果您已经有了一对 Git SSH 密钥,那么您可以在这里设置您的公钥和私钥的路径。否则,您可以要求 GitKraken 为您生成一个新的密钥对。
如果您正在使用任何可用的 GitKraken 远程存储库托管集成,如 GitHub 您可以提供现有 GitHub SSH 密钥对的路径,或者让 GitKraken 为您生成 Git SSH 密钥对。
GitKraken 将使用这些 Git SSH 密钥与 SSH 服务器通信。本地存储库和远程存储库之间的所有操作都将通过 SSH 连接安全地传输。
借助传奇的跨平台 GitKraken Git GUI(可免费下载,并连续 5 年被评为 Git 客户端第一名)简化 Git SSH 流程。
如何打造一款盈利的产品
原文:https://www.gitkraken.com/blog/how-to-build-a-profitable-product
Axosoft 创始人 Hamid Shojaee 最近出现在由 Josey Howarth、Patryk Kowalik 和 Chris Sebok 主持的直播播客文档未包括 (DNI)中。该展会涵盖的主题包括 web 开发、流程工作流、企业架构、游戏开发、DevOps 等。
这一集,‘有 App 的想法,???,利润!”Hamid 和主持人讨论构建一个产品和所有必要的东西,从早期采用到 MVP 等等。
我们总结了下面的一些要点,或者您可以观看录音。
观看此快速视频或继续阅读,了解更多信息!
https://www.youtube.com/embed/GjXpQ9xelVw?feature=oembed
视频
项目管理基础
“项目管理在现在的开发中是至关重要的,但却被严重低估了,尤其是游戏开发,”Patryk 指出。"我见过许多公司因为糟糕的项目开发而破产."
“从本质上讲,官僚主义阻碍了工作的进行,”克里斯表示同意。
Hamid 是 Scrum 项目管理软件 Axosoft 的创造者,也是 GitKraken Glo Boards 负责任务跟踪的产品副总裁,他谈到了关注项目管理的基础。
“人们经常把项目管理搞得比实际需要的更复杂,”Hamid 说。
虽然项目管理最简单的形式可能就像任务的书面列表一样简单,但是当您需要在团队成员之间共享这些任务时,它可能会变得更加复杂,尤其是在软件开发方面。
扰乱已建立的市场
主持人向哈米德提出的一个问题是如何判断一个想法的价值。
“想想世界上最成功的公司,比如谷歌,”哈米德说。“没有人知道他们的市场值多少钱;一个都没有。”
已知价值的市场充斥着成熟的玩家。
那么颠覆性技术呢?能够扰乱现有市场的产品。
哈米德解释道:“颠覆性技术之所以具有颠覆性,是因为以前没有人做过。”。“这也很难完成。”
产品不一定要在全球范围内具有破坏性,但它们应该对你的客户群具有破坏性。
为什么这么多想法都失败了?
初创公司的失败率如此之高,有时对初露头角的企业家来说似乎毫无希望。但是哈米德害怕得不行说:
“我们对自己的预测能力有了更高的评价,因为我们似乎预测了太多的失败。但在现实中,你认为一切都会失败,实际上你有 95%的准确率。”
不要让它阻止你。
“如果你要创造东西,你就会失败。“只要学会如何向前失败,”帕特瑞克鼓励道。
产品概念
乔西指出,大多数想法来自对特定工具的需求。哈米德就是这样起步的。他需要一个工具来跟踪谁在做什么。
“我基本上需要分享我的电子表格。谷歌文档和工作表当时还不可用;如果是这样,我可能永远也不会创造 Axosoft。”
洞察如何解决问题是任何产品类别成功的关键。如果你不是用户,你必须有一个用户的例子来了解需要解决的问题是什么。
“在我们生活的世界里,你的想法可能不会是革命性的。你将会有一个竞争对手。”
你的想法是不是更好真的很难判断,你作为创作者或者创始人更难不带偏见的去判断。最终,市场决定一切。
用户采用度
用户采用有多种方式,在许多情况下,可能是比收入更重要的指标,尤其是在软件公司的早期阶段。
那么,你免费赠送你的产品吗?
“如果人们不打算为你的产品买单,你有几个选择,”哈米德说。
你是希望用户免费使用你的产品,并有可能发展成为付费用户(或者推荐一些付费用户),还是希望他们根本不使用你的产品,然后使用竞争对手的产品,而竞争对手反过来获得上述好处?
Would you rather users use your product for free and potentially grow into a paid customer down the line (or refer someone who does), or they don’t use your product at all and then use a competitor, who in turn receives those aforementioned benefits?
支持免费用户的费用
这听起来很好,但是你如何证明付钱给开发者来支持所有这些免费用户是合理的呢?这种资源分配会超过收益吗?
Hamid 指出:“当你免费使用一个产品时,你通常不会期望得到与付费使用该产品时同等水平的支持。
Josey 继续分享她发布产品的经历:
“早期采用者,以及可能的免费用户,将会对你的产品产生最大的影响。他们可以为你提供创造持久、可持续产品所需的信息。”
定价
现在,当您准备好开始向您的用户收费时…
哈米德解释说:“你总是可以提高价格,但降低价格要困难得多。”。
这也有助于鼓励尽早采用。但是要记住,“你涨价总会有人不爽。”
MVP
MVP 或最小可行产品,也被一些人称为 RAT,最危险假设测试,强调产品开发过程中适应的影响。
“从概念上讲,MVP 是个好主意,”哈米德说。“先做风险最高的事情,完成你认为自己能完成的事情。这是打造产品的正确方式。”
然而,他继续指出,MVP 不应该仅仅是可用的东西,它应该是你的客户在所有其他可用选项中能够接受的最低可行产品。这些是需要的附加限定符。
这真的是最低限度的优秀产品。它必须优于市场上现有的产品。
“MVP conceptually is a good idea,” says Hamid. “Doing highest risk things first and accomplishing the things you’re assuming you can accomplish. This is the right way to build a product.”
太空中的哈米德?
现在,重要的是。如果外星人来到地球,要求哈米德重返太空,哈米德会跟他们走吗?“哦,是的……当然是在问了几个资格问题之后。”
感谢乔西、帕特瑞克和克里斯邀请哈米德来 DNI!
Hamid in Space?
Now, the important stuff. Would Hamid go with aliens if they came to Earth and asked him to return to space? “Oh yeah…after asking a few qualifying questions, of course.”
Thank you Josey, Patryk, and Chris for having Hamid on DNI!
如何用 GitKraken 中的 Forks 管理你的 Git 工作流
原文:https://www.gitkraken.com/blog/how-to-manage-git-workflow-forks
从旨在帮助软件开发人员集中精力编写代码的播放列表中进行选择。播放列表包括流行的音乐剧、视频游戏曲目、棕色噪音等等。
如何解决 Git |高级 Git 教程中的合并冲突
原文:https://www.gitkraken.com/learn/git/tutorials/how-to-resolve-merge-conflict-in-git
高级饭桶教程
https://www.youtube.com/embed/MzpW-k66XE8?feature=oembed
视频
GitKraken 的应用内合并冲突工具将允许您执行更高级的 Git 操作,而没有相关的风险-您的解决方案只需点击几下鼠标。
Git 合并冲突
观看这个高级 Git 教程视频,了解更多关于 Git 中的合并冲突以及它们何时发生的信息。
当 Git 无法自动解决两次提交之间的代码差异时,因为对同一行代码有冲突的更改,合并冲突就发生了。当合并 Git 分支、重定分支或挑选提交时,Git 中的合并冲突可能发生。
了解如何与 Git 沟通以解决合并冲突,并继续进行您的 Git 合并、 Git rebase 或 Git cherry pick 。
什么是 Git 合并冲突?
当在 Git 中工作时,用户可以通过一个称为合并的操作来合并来自两个不同分支的提交。除非有冲突的变更集,否则文件会自动合并(即提交以不同的方式更新同一行代码)。
当 Git 无法自动解决两次提交之间的代码差异时,就会发生合并冲突。
当代码中的所有更改发生在不同的行或不同的文件中时,Git 将在没有您的帮助下成功合并提交。
然而,当同一行上有冲突的变更时,就会发生“合并冲突”,因为 Git 不知道保留哪些代码,丢弃哪些代码。
什么时候会发生 Git 合并冲突?
当合并分支、重定分支或挑选提交时,可能会发生合并冲突。
如果 Git 检测到冲突,它会突出显示冲突区域,并询问您希望保留哪个代码。
一旦您告诉 Git 您想要的代码,您就可以保存文件,并继续进行合并、rebase 或 cherry pick。
无论您的合并冲突是发生在合并、重定基础还是挑选过程中,GitKraken 都会引导您快速轻松地解决冲突。
如何用 GitKraken 解决 Git 中的合并冲突?
虽然命令行中的合并冲突可能会令人生畏,但使用 GitKraken Git GUI 却是小菜一碟。
假设我们有两个分支修改了同一个文件中的同一行。当您拖放执行合并时,GitKraken 会检测到合并冲突,并通知您它需要您的帮助。
单击查看冲突以查看冲突文件的列表。然后,当您单击一个文件时,它将打开合并工具,向您显示两个分支之间的冲突更改,并在底部显示输出视图。您可以选中您希望保留的每一行代码的复选框,或者一次选择一行代码。
您甚至可以在输出框中键入内容,进一步微调您的代码。一旦您对更改感到满意,点击保存退出合并工具,并继续下一个冲突的文件。解决所有冲突文件后,您可以继续进行合并。
准备好在 Git 中更容易地解决合并冲突了吗?跨平台 GitKraken Git GUI 拥有您在项目和组织中安全扩展 Git 所需的健壮特性。
如何使用 Git 钩子| GitKon 2022 | DJ Schleen,Yahoo!
原文:https://www.gitkraken.com/gitkon/how-to-use-git-hooks-dj-schleen-yahoo
https://www.youtube.com/embed/JI1WYKfjG1I?feature=oembed
视频
在 DevOps 中讨论反馈循环时,经常使用术语“左移”。本质上,这意味着如果一个人能够以更快的方式向软件工程师提供反馈,他们将有能力更快地做出反应。一般来说,工程师需要了解的信息是质量问题、构建中断、部署问题,更常见的是安全漏洞。
大多数反馈都是在代码被签入到远程 Git 库之后产生的;通常在一个拉动请求或发布工作流。工程师很少在提交代码之前被告知他们的代码有问题,除非是通过 IDE 插件在他们编码时提供指导和检查,就像 GitLens for VS Code 。虽然这些扩展可以帮助工程师在编写代码时学习和修复代码,但它们不提供更复杂的检查和操作。这就是使用 Git 钩子可以有所帮助的地方。
Git 挂钩是一个脚本集合
Git 挂钩只是工程师与 Git 可执行文件交互时调用的脚本的集合。当使用 Git 提交、合并、推送或管理代码时,本地代码存储库中保存的脚本就会运行。这方面的一个例子是在代码提交到存储库之前运行 lint 函数。
当用户在他们的本地机器上创建一个 Git 库时,会创建一个名为.git/hooks
、的隐藏文件夹,其中包含工程师可以修改的示例脚本。这些样本的命名约定是*hooktype
-样本*。
将一个示例重命名为它的钩子类型会让 Git 知道应该运行这个脚本。任何东西都可以放入这些文件;可能性是无限的。不幸的是,这里有一个主要问题。文件夹.git
永远不会提交到存储库中,所以对文件夹.git/hooks
内容的任何更改都将保留在本地。
管理 Git 挂钩
为了使 Git 挂钩的管理更容易,并允许定制功能的可移植性,工程师可以利用 DevOps Kung Fu Mafia 的一个名为“Hookz”的工具。
Hookz 是一个应用程序,它允许工程师在一个简单的 yaml 文件中为 Git 调用的任何钩子类型定义将要执行的操作。这个 yaml 文件可以提交给存储库,并与其他存储库用户共享。开发人员可以添加自定义脚本、调用可执行文件,甚至可以引入在钩子执行期间可以使用的应用程序。
一旦在本地存储库的根目录下创建了这个.hookz.yaml
文件并配置了功能,工程师就运行hookz
可执行文件,该文件在本地.git/hooks
文件夹中构建所有需要的脚本。
使用 Git 挂钩添加功能
Git 挂钩为工程师向 Git 可执行生命周期添加功能提供了无限可能。可以在提交代码之前为pre-commit
钩子类型定义一些功能的例子:
- 从远程存储库中提取,以确保没有遗漏任何上游更改。
- 将所有代码依赖项升级到最新版本,以便可以测试升级并解决不兼容问题——这有助于减轻技术债务的积累。
- 运行安全工具,即软件组成分析(SAC)工具,可以通知开发人员其依赖关系中的漏洞。
- 执行测试用例并生成测试覆盖度量。
- 确定代码的圈复杂度、林挺,并提供其他质量检查。
- 生成软件物料清单。
- 自动更新 markdown 文档(例如:使用 terraform-docs)或其他文件。
- 在推送到远程设备之前,将预提交阶段更改或添加的任何内容提交回提交阶段。
如果任何任务失败,Hookz 会输出一个非零的返回代码,提交将会停止。这允许开发人员在被推到远程存储库之前解决问题。
Git 挂钩提供了一种强大的方式来收紧反馈循环,比等待工具在远程存储库上运行更快地将信息传递给工程师。这导致了更干净的代码、更快的修复和改进的代码质量。
如果您正在寻找一种工具,使使用 Git 和 Git 挂钩更容易、更安全、更强大,那么 GitKraken Client 是最好的选择,它是世界上最受开发人员和团队欢迎的 Git 客户端。
如何在 Glo 板中使用团队和组织
原文:https://www.gitkraken.com/blog/how-to-use-glo-boards-teams-organizations
GitKraken Glo Boards 是一个看板风格的问题跟踪系统,帮助开发人员和团队协作跟踪任务。Glo 板与 GitKraken Git 客户端 无缝集成,可以通过点击主工具栏右上角的板图标轻松访问。Glo 也可以从网络浏览器、我们的 Android 和 iOS 应用程序以及 Visual Studio 代码或 Atom 内部访问。
自从将 Glo 板引入我们的 GitKraken 产品线以来,我们一直努力不断改进和增强功能。我们今年已经完成了很多,包括引入团队和组织。这一功能使公司能够更好地控制 Glo 板。
查看新的组织和团队功能,并免费使用 GitKraken Glo 板# GitGloing!
https://www.youtube.com/embed/BKbk3ny0Rzs?feature=oembed
视频
组织
依赖 GitKraken Glo 板的公司通常在他们的账户中有几十甚至几百块板——每块板由不同的用户管理。在引入组织功能之前,帐户管理员必须手动向每个板添加新的团队成员,并手动从与他们相关联的每个单板中删除离开的团队成员。
现在,从组织中删除成员会自动将其从与其关联的所有董事会中删除。
当某个板属于某个组织时,只有该组织的用户才能访问该板,这提供了一个新的安全层。作为多个组织的成员在一个帐户中管理所有这些板没有问题,但是如果你不是帐户所有者,你必须被邀请到一个组织。
团队
是时候召集你的小队了!
在一个组织内,现在可以通过将个人分组来创建团队,如“开发”、“QA”、“销售”、“营销”等。
创建团队并选择要包括的用户后,您可以将团队与讨论板相关联。这允许多个用户同时被添加到(或从)板上删除!
更好的是,在欢迎一名新员工后,您可以通过将他们添加到 Glo 中的一个团队来轻松地将他们同时添加到多个董事会。这将使他们能够立即访问与他们的团队相关的每一个板块,这样他们就可以直接进入。
如果你有一个公司董事会,你可以很容易地设置一个默认团队,每个新成员都会自动加入。
#小队目标,检查!
团队和组织是 GitKraken Pro 独有的功能。立即升级以获得这些功能以及 GitKraken Git 客户端的高级功能!
#SquadGoals, check!
董事会管理
为了进一步改善 Glo 中的组织,我们的团队引入了董事会管理,允许用户为选定的 Glo 董事会指定组。
这可以很容易地通过将电路板拖放到一个组中来完成,并且您可以直接从 Glo UI 中编辑组的详细信息。
https://www.youtube.com/embed/MoGGGaazuFg?feature=oembed
视频
Glo Webhooks
Webhooks 允许用户创建订阅 Glo Board 事件的应用程序。当 Glo 中发生任务分配或卡片删除等事件时,Glo 中的数据会被发送到 webhook 的 URL,从而触发一个动作,例如在 Slack 等另一个应用程序中发出通知。
一个完美的例子是,如果您创建了一个应用程序,它利用 Glo Webhook 在每次从电路板上删除或添加卡片时发布一条 Slack 消息。
所有者和管理员可以在 Glo 中将 Webhooks 添加到特定的板上。一个 GitKraken Pro 账号可以将多个 webhooks 添加到一个单板上。
Glo Webhooks
Glo API 市场
在 webhooks 发布后,我们邀请开发人员提交集成,作为我们 Glo API 竞赛的一部分,我们有机会获得高达 10,000 美元的现金奖励。我们收到了一些令人难以置信的提交材料,并很高兴地推出了 Glo Marketplace ,其中充满了免费应用,以增强您的 Glo 板体验。
Glo Marketplace 具有 Chrome 扩展、截图工具、物联网集成、时间跟踪工具、语音助手集成、Slack 扩展、CI/CD 集成等功能。
Glo API Marketplace
After the release of webhooks, we invited developers to submit integrations for a chance to claim up to $10,000 in cash prizes as part of our Glo API Contest. We had some incredible submissions and were thrilled to unveil the Glo Marketplace, which is filled with free applications to enhance your Glo Boards experience.
The Glo Marketplace features Chrome extensions, screenshot tools, IoT integrations, time-tracking tools, voice assistant integrations, Slack extensions, CI/CD integrations, and more.
如何使用 Husky 和 Git 挂钩来自动化操作
Git 挂钩是一个适合的解决方案,适用于寻求在团队中实现一致的策略和过程的组织。首先,它们使团队能够根据特定的 Git 操作运行定制脚本。将自动化构建到您的 Git 客户端中有助于消除人为错误的可能性,并且不费吹灰之力就能改进工作流程。
这里我们将探索 Husky 如何在 JS 项目中使用 Git 钩子。首先,让我们从基础开始:
什么是 Git 挂钩?
Git 挂钩是开发人员可以设置的脚本,当 Git 生命周期中发生某些事件时运行。有一些流行的方法可以利用 Git 挂钩来通过自动化来简化工作流。
对于开发人员来说,在自动化的帮助下运行定制代码任务的脚本并执行标准可能是有用的,因为它简化了操作。提交的某些阶段,比如之前和之后,是开始使用 Git 挂钩的好方法。
对于开发人员来说,在自动化的帮助下运行定制代码任务的脚本并执行标准可能是有用的,因为它简化了操作。提交的某些阶段,比如之前和之后,是开始使用 Git 挂钩的好方法。
GitKraken 客户端支持许多流行的 Git 挂钩,包括提交、检验、合并、重置等挂钩。
什么是哈士奇?
许多使用 Git 挂钩的开发人员也使用 Husky 来帮助管理脚本。Husky 是一个工具,帮助开发人员更有效地使用 Git 挂钩工作,并运行各个阶段需要工作的所有脚本。
通过简化设置 Git 挂钩的过程,开发人员可以更快地创建有效的解决方案。Husky 在 package.json 文件中工作,包括一个对象,该对象配置 Husky 运行某些脚本,然后 Husky 在 Git 生命周期的特定点管理脚本。
安装 Husky
如果您想使用 Git 挂钩以这种方式优化您的项目,您需要从安装 Husky 开始。您可以通过输入以下命令来完成此操作:
$ npm install husky --save-dev
在 Husky 完成安装后,运行一个允许启用 Git 挂钩的命令:
$ npx husky install
接下来,您将需要调整 package.json 文件。最后一个命令在安装过程结束后运行:
// package.json
{
"scripts": {
"prepare": "husky install"
}
}
如果您在 GUI 中收到错误响应,您必须添加并设置环境路径。
根据您选择的环境,位置会有所不同。在这种情况下,我们将使用 asdf-nodejs,因此我们的 environment.plist 文件将如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PATH</key>
<string>/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/Users/brunobrito/.asdf/shims</string>
</dict>
</plist>
现在,是时候保存文件了。为此,重启 Git 客户端,并返回到命令行来创建一个钩子。
创建 Git 挂钩
虽然 Git 挂钩可以用来创建许多自动化,但是有几个挂钩在开发人员中一直很受欢迎。让我们进一步了解如何验证分支名称、林挺提交消息、林挺代码、压缩分段映像,以及使用 Husky 和 Git 挂钩运行测试。
现在,是时候保存文件了。为此,重启 Git 客户端,并返回到命令行来创建一个钩子。
用 Git 挂钩验证分支名称
这对于确保每个分支遵循特定的模式尤其方便。Validate-branch-name 是一个 npm 包。如果您了解 regex,这个包带有可以定制的预设默认值。
使用以下命令开始安装此软件包:
$ npm install validate-branch-name --save-dev
接下来,您可以利用预提交挂钩将它添加到 Husky:
$ npx husky add .husky/pre-commit "npx validate-branch-name"
使用以下命令开始安装此软件包:
用 Git 钩子压缩图像
一些框架比其他框架更好地呈现图像,并且每次都很难记住运行 ImageOptim。幸运的是,开发人员可以使用一个脚本来自动压缩您添加到项目中的图像。此示例将用于 ImageOptim-CLI。
您将使用以下命令开始安装过程:
$ npm install -g imageoptim-cli
接下来,将 imageoptim 命令添加到 lint-stage,因为您只想压缩暂存文件。
// package.json
{
"scripts": {
"prepare": "husky install"
},
"lint-staged": {
"**/*.js": "prettier --write --ignore-unknown",
"**/*": "imageoptim"
},
...
}
带 Git 挂钩的林挺代码
要用 Git 挂钩链接代码,开发人员需要使用两个节点包:lint-staged 和 appearlier。
Lint-staged 非常适合跨暂存文件运行检查。后来,漂亮的负责林挺代码。
首先使用以下命令安装这两个软件包:
$ npm install lint-staged prettier --save-dev
$ npx husky add .husky/pre-commit "npx lint-staged"
接下来,在 package.json 文件中设置 lint-staged:
// package.json
{
"scripts": {
"prepare": "husky install"
},
"lint-staged": {
"**/*.js": "prettier --write --ignore-unknown"
},
...
}
用 Git 挂钩运行测试
您可以使用 Husky 和 Git 挂钩添加的另一个简单的自动化功能是运行测试,这会让您的生活更加轻松。对于这个例子,我们将安装 Jest,这是一个经常被质量控制工程师用于运行测试的工具:
$ npm install --save-dev jest
然后,向 package.json 文件添加一个测试脚本:
// package.json
{
"scripts": {
"prepare": "husky install",
"test": "jest"
},
"lint-staged": {
"**/*.js": "prettier --write --ignore-unknown",
"**/*": "imageoptim"
},
...
要使用 Git 挂钩完成自动化设置,您必须使用以下命令将 npm 测试脚本添加到预提交挂钩:
$ npx husky add .husky/pre-commit "npm test"
跳过 Git 挂钩
自动化对于 Git 开发人员来说非常重要,原因有几个。首先,内置的自动化功能有助于保护您的环境免受入侵。自动化使团队能够轻松地跟踪提交,并确保在存储库中只进行允许的更改,防止恶意代码被注入到项目中。
虽然开发人员不太可能跳过 Git 钩子,但是当代码需要一点人类的 TLC 时,跳过钩子是绕过这些自动化的一种方式。
您可以使用以下命令绕过 Git 挂钩:
$ git commit -m "skipping hooks" --no-verify
现在,您可以手动执行任务,而无需脚本自动运行。
Git Hooks 和 Husky 入门
开始使用 Husky 和 Git 挂钩是一个简单的过程,可以节省开发人员不必要的击键和大量时间。
Git 挂钩可以被配置为创建许多自动化功能,以改进工作流并在开发人员之间强制执行代码标准。这是在使用 Git 时,开始使用 Git 钩子和 Husky 自动化常见任务的五种方法。
您可以使用以下命令绕过 Git 挂钩:
您可以使用 GitKraken 客户端通过内置的终端开始使用 Husky 和 Git 挂钩。今天就自己试试吧。
现在,您可以手动执行任务,而无需脚本自动运行。
Git Hooks 和 Husky 入门
开始使用 Husky 和 Git 挂钩是一个简单的过程,可以节省开发人员不必要的击键和大量时间。
Git 挂钩可以被配置为创建许多自动化功能,以改进工作流并在开发人员之间强制执行代码标准。这是在使用 Git 时,开始使用 Git 钩子和 Husky 自动化常见任务的五种方法。
您可以使用 GitKraken 客户端通过内置的终端开始使用 Husky 和 Git 挂钩。今天就自己试试吧。
用 GitKraken 提高你的 DevOps
原文:https://www.gitkraken.com/blog/improving-devops-gitkraken
我在 DevOps 中遇到的问题
我叫詹姆斯·奎励杰,是 Axosoft 的 IT 主管。在 Axosoft,我实施了集中式日志记录基础架构,改进了我们的 Jenkins 构建以提高效率和并行化阶段,在内部实施了更严格的安全要求,利用多阶段 Docker 构建来缩小我们的映像大小,在 Redis 中设置了 auth token 缓存,等等。
可以想象,我在这个过程中遇到了各种各样的问题,并找到了一些有用的解决方案。所以,让我们深入研究一下吧!
配置作为代码的重要性
在空白即服务的世界里(用基础设施、功能等来填充空白。),您的整个系统的状态不仅仅是存储在您的高级开发人员头脑中的机构知识。它可以被编码和重用,以准确地重新创建您的系统。这意味着您可以将您的所有配置存储在一个版本控制系统(VCS)中,比如 Git,这样您就可以恢复到过去的任何一点,并跟踪您配置的整个历史。
我几乎立刻就发现了对 VCS 的需求;在 AWS CloudFormation、Docker 和 Docker-Compose、Jenkins 和 Ansible 之间,快速跳转到一个文件并找到一个配置的能力,而不是试图将它从我的脑海中拉出,是非常有价值的。当您考虑到该文件的价值可被其他团队成员共享或发现,以便他们也知道配置并可以在源代码控制中自由地进行更改时,这种重要性就更大了。
上下文切换
另一件我在开始 DevOps 之旅时绝对低估的事情是,有多少工具存在,以及从一端到另一端,您可能使用多少工具来完成一项任务。在几分钟的时间里,我可能会用到:代码编辑器、源代码控制、 Jenkins 来检查我的构建、AWS 来检查基础设施、Kibana 来检查日志、 Slack 来检查警报和通信,等等。
我有时会开始一项任务,发现一些新的东西,最后却掉进一个完全不同的兔子洞。有时候,这并不是一件坏事,因为我会发现错误或我们可以改进的东西,但其他时候,这是一个巨大的干扰,大大减慢了我的工作流程。
跟踪需要完成的事情
当我深入兔子洞,发现了一堆其他可以改进的地方时,我会在心里记下回头再来。当我发现的时候,我不记得我发现了什么。
即使我在便利贴上给自己做了一个实际的笔记,有时当我回过头来看时,缺乏上下文会使我非常不清楚前一天我在谈论什么。即“改进 Dockerfile”只能给你这么多的提示。
无论如何,这不是 DevOps 独有的问题,但这绝对是我在 DevOps 角色中遇到的问题,因为我负责处理许多不同的问题。
输入要去的地方
彩虹图美学
GitKraken 是一个跨平台的 Git GUI。在我开始在 Axosoft 工作之前,我个人使用过 GitKraken。当时,我对 Git 还比较陌生,虽然基本的 Git 操作非常简单,但当涉及到合并冲突和其他更复杂的操作时,我不太确定自己是否有能力正确解决问题。
GitKraken 有一个漂亮的 Git 树图,可以可视化你的分支、合并、隐藏,甚至其他远程操作。
让我立刻爱上 GitKraken 的一个东西是应用内合并工具,它可以省去打开其他工具的麻烦。
另外,如果你的团队正在使用 Gitflow ,GitKraken 有一个集成,可以自动为你以正确的顺序合并正确的分支。
电源编辑
此外,在版本 4.0 中,我们添加了摩纳哥代码编辑器,这带来了大量的功能:
在线差分
- 并排视图
- 语法突出显示
- 文件创建/删除
- 文件编辑
- 我发现很多时候,如果我在编辑一个 CloudFormation 模板,Dockerfile,Jenkinsfile 等。实际上,我并不需要做很大的改变,也不需要写完整本书。相反,我只需要对文件做一个快速的单行编辑。或者我在编辑的时候犯了一个错误,当我提交的时候我发现了这一点。现在,不用切换回不同的应用程序,我可以在 GitKraken 中快速进行编辑。
带 Glo 的 EZ 任务跟踪
Glo Boards 帮助我们的开发团队更加高效,因为我们从 GitKraken Git 客户端内部跟踪任务和问题。我喜欢还有 VS 代码和 Atom 的插件,如果我在路上,可以从浏览器或移动应用程序访问它!
Glo 板与 GitHub 问题实时同步,这使得将任务分散到工作流中变得容易,并直观地跟踪项目的完成进度。与大多数任务跟踪工具不同,它实际上是为开发者设计的,所以它支持 markdown 并有大量的键盘快捷键。
Glo Boards help our dev team be more productive because we track tasks and issues from inside the GitKraken Git Client. I love that there are also plugins for VS Code and Atom, and it can be accessed from a browser or the mobile apps if I’m on the go!
使用 GitKraken 的我的 DevOps 流
查阅我的 Glo 待办事项,选择一项任务,转到“进行中”
假设这是一个更长的任务,打开 VS 代码,进行我的修改。如果没有,就用 GitKraken 代码编辑器!
- 打开 GitKraken,在并排比较视图中查看我的更改。
- 使用 GitKraken 代码编辑器修复任何问题。
- 提交、推送、创建公关。
- —切换到 Glo,移动我的卡。
- 解决方案
- 我使用 GitKraken 工具为 DevOps 建立的工作流确实帮助我解决了我前面谈到的一些问题。
查看 GitKraken 工具套件在 DevOps 生命周期中的位置。
有了 Glo 板,我真的可以很快地添加足够上下文的卡片,这样我就知道当我回头再看它们时该做什么。
一旦我开始处理一个特定的任务,我就可以在同一个应用程序中处理基本的文件编辑、审阅、源代码控制和任务跟踪;所以我不需要太多的上下文切换。
GitKraken 显然不会强制您将配置作为代码使用,但它可以增强您在 repos 之间快速切换、查看配置、进行编辑以及将更改存储在 Git 中的能力——提高您的整体工作质量。
- With Glo Boards, I can really quickly add cards with enough context so I know what to do when I come back to them later.
- Once I’ve gotten to work on a specific task, I can handle basic file editing, reviewing, source control, and task tracking all within the same app; so I don’t have to context switch quite as much.
- GitKraken obviously isn’t going to enforce that you use configuration as code, but it can enhance your ability to quickly switch between repos, look at that configuration, make edits, and store changes in Git—improving your quality of work overall.
哦,我的奢华|采访创作者简·德·多贝莱
原文:https://www.gitkraken.com/blog/interview-with-oh-my-posh-creator
简单来说,Oh My Posh 可以定制你的终端,让它看起来更赏心悦目。根据官方的 Oh My Posh 文档,“Oh My Posh 是一个定制的提示引擎,适用于任何能够用函数或变量调整提示字符串的 shell”。凭借 275k GitHub 下载、1.2k forks 和 6.8k stars 上的 Oh My Posh GitHub Repo ,来自世界各地的开发者使用 Oh My Posh 来提升他们的终端并改善他们的工作流程。
我们也很自豪有机会强调该项目的创造者,简·德·多贝莱。Jan 是一名值得骄傲的开源贡献者、微软 MVP、GitHub Star 和 GitKraken 大使。当他不写代码的时候,Jan 大部分时间都在跑步、滑旱冰和享受户外活动。
我们有幸与 Jan 坐在一起讨论了“我的奢华”是如何开始的,它是如何发展的,开源爱好者如何做出贡献,GitKraken Client 在“我的奢华”开发中扮演的角色,等等!
https://www.youtube.com/embed/GTznyYzV_LU?feature=oembed
视频
了解简对以下“哦,我的时髦”话题的看法
我的奢华背后的灵感
当 Jan 开始开发 Oh My Posh 时,他不知道什么是开源,当然也没有想到 Oh My Posh 会成为数百名开发人员日常使用的工具。当时,与 Jan 一起工作的许多开发人员都是 Linux 用户,他们的终端在视觉上优于 Jan 的 Windows 终端。Jan 开始创建 Oh My Posh,目的是向他自己和其他人证明,使用 Windows 和 PowerShell 可以获得良好的开发体验。
最终,Jan 创建了一个工具,使他能够在使用 Windows 和 PowerShell 的设备上利用视觉上令人愉悦的 CLI 优先开发体验。简回忆说,有一次他为自己准备了一份《哦,我的奢华》的工作副本,人们在 Twitter 和其他在线平台上联系他,请他分享。随着开发人员对 Oh My Posh 越来越感兴趣,一个社区开始形成,Jan 意识到他想与尽可能多的人分享他的工作,并开始开发 Oh My Posh 的跨外壳版本。
哦,我的奢华——不仅仅是为了 PowerShell
让 Oh My Posh 在更多的 Shell 上可用,而不仅仅是 PowerShell,需要 Jan 投入大量的时间和精力,也需要开源社区的大力支持。这些努力被证明是值得的,因为,正如简所描述的,“那是我的时髦度真正飙升的时刻”。
虽然许多开发人员目前利用了 Oh My Posh 提供的跨 Shell 兼容性,但 Jan 提到,他仍然希望更多的人知道 Oh My Posh 可以用于 PowerShell 之外的各种 shell。开发者目前可以在 Oh My Posh 中使用的 shell 有: fish 、 ZSH 、 Bash 、 CMD 、 nushell 。
哦,我的奢华主题
Oh My Posh 主题的大量选择是该工具受欢迎的主要原因之一。在一些简单的配置之后,有超过 100 个我的奢华主题可供选择。Oh My Posh 向您展示的第一个主题是默认的jandedobbeleer
。
您可以通过以下简单的步骤,根据自己的喜好定制一个“哦,我的奢华”主题的终端:
导航到 Oh My Posh 的官方文档的主题部分,找到最符合您的 shell*首选外观的主题
- 从左侧导航菜单中选择
🚀 Get started > 💅 Customize
打开定制部分 - 从
Get inspiration
部分选择您的 shell,查看更改主题所需的语法示例 - 通过选择示例右侧的
Copy
图标,复制为您的 shell 提供的代码行 - 你复制到终端的那行代码
- 将文本
jandedobbeleer
替换为您想要的主题名称,然后点击Enter
- 将文本
jandedobbeleer
替换为您想要的主题名称,然后点击Enter
*快速提示:一些“哦,我的奢华”主题需要特定的书呆子字体才能正常工作。标题中带有minimal
的主题不需要书呆子字体,但所有其他选项都需要。
*快速提示:一些“哦,我的奢华”主题需要特定的书呆子字体才能正常工作。标题中带有minimal
的主题不需要书呆子字体,但所有其他选项都需要。
我的奢华主题示例
我的奢华主题示例
您需要重新加载您的 shell 来查看您选择的 Oh My Posh 主题的实现。要重新加载您的 shell,请按照您选择的 shell 的 Oh My Posh 文档的定制部分的说明进行操作。
如果您遇到任何问题,请参见 哦,我的时髦常见问题部分 以获得进一步帮助。
如果您遇到任何问题,请参见 哦,我的时髦常见问题部分 以获得进一步帮助。
如何为“我的奢华”做贡献
在采访中,Jan 解释说,“作为一个开源维护者的挑战之一是,所有的事情都是在下班后和下班之间完成的”。他继续解释说,仍然需要来自开源社区的贡献,以继续满足对 Oh My Posh 的需求。
任何经验水平的开发人员都有机会为 Oh My Posh 做贡献。如果您渴望提供帮助,但编程知识有限,您可以从纠正项目文档中的拼写错误开始。错别字修复和文档更新是简单但必要的贡献,对未来的用户和贡献者都有帮助。要以这种方式开始投稿,请执行以下操作:
- 选择项目中的
.md
文件,并检查打字错误/语法错误 - 选择项目中的
.md
文件,并检查打字错误/语法错误
如果您发现文档中有一部分需要修改或编辑
通过选择 GitHub 右上方工具栏中的Fork
图标来分叉回购
- 在本地进行必要的更改,并提交一个 GitHub pull 请求
- 在本地进行必要的更改,并提交一个 GitHub pull 请求
更有经验的开发人员也有机会为 Oh My Posh 做出功能性贡献。如果你有一个新的“哦,我的豪华”功能的想法,鼓励你分叉回购,做出你的改变,并提交一个 Git pull 请求。如果你想知道可以对这个项目做哪些改进,或者想了解我的奢华功能,请访问 GitHub repo 上的创意版块。
开源社区是极其独特的;大部分的贡献代表了个人贡献的时间,试图为他人创造新的或更好的东西。哦,我的豪华是一个伟大的项目,有助于接触开源世界。
开源社区是极其独特的;大部分的贡献代表了个人贡献的时间,试图为他人创造新的或更好的东西。哦,我的豪华是一个伟大的项目,有助于接触开源世界。
哦,我的时髦和 GitKraken 客户
哦,我高贵的创造者,Jan 自 2021 年 5 月以来一直是 GitKraken 大使,更长时间以来一直是 GitKraken 客户端用户。
当被问及为什么喜爱和推荐 GitKraken Client 时,Jan 解释说“GitKraken Client 允许用户以非常直接的方式完成真正复杂的任务”。免费试用 GitKraken 客户端,看看它能让传统上复杂的 Git 命令和操作变得多么简单,比如 Git rebase 、 Git revert commit 、 Git merge 等等!
简使用 GitKraken 客户端来帮助他建立哦,我的豪华。事实上,如果你看一下 GitHub 上的 Oh My Posh README.md 文件,你会看到下面的注释,“这个回购是用 GitKraken 用爱做的。”
简使用 GitKraken 客户端来帮助他建立哦,我的豪华。事实上,如果你看一下 GitHub 上的 Oh My Posh README.md 文件,你会看到下面的注释,“这个回购是用 GitKraken 用爱做的。”
Jan 继续使用 GitKraken 客户端来支持他的日常工作流程,并添加到 Oh My Posh。作为 GitKraken 大使,他旨在帮助其他开发人员使用 GitKraken Client 将他们的工作流提升到一个新的水平。
Jan 继续使用 GitKraken 客户端来支持他的日常工作流程,并添加到 Oh My Posh。作为 GitKraken 大使,他旨在帮助其他开发人员使用 GitKraken Client 将他们的工作流提升到一个新的水平。
Jan De Dobbeleer 使用 GitKraken 客户端来构建我的奢华生活。下载 GitKraken 客户端,看看你能创造什么!
Jan De Dobbeleer 使用 GitKraken 客户端来构建我的奢华生活。下载 GitKraken 客户端,看看你能创造什么!
加入 Oh My Posh 和 GitKraken 社区
Oh My Posh 和 GitKraken Client 都有活跃的社区供您分享您对工具的喜爱,提出问题,与志同道合的人联系,等等!
加入社区是了解最新相关新闻、与同行联系以及从事重大项目的好方法。所以,走出去,认识新的人,并开始做出贡献;你会对你能创造的东西感到惊讶!
加入社区是了解最新相关新闻、与同行联系以及从事重大项目的好方法。所以,走出去,认识新的人,并开始做出贡献;你会对你能创造的东西感到惊讶!
介绍 GitKraken 大使
原文:https://www.gitkraken.com/blog/introducing-gitkraken-ambassadors
在 Axosoft,我们的主要目标之一是让全世界的开发人员了解使用 Git 和 GitKraken 的强大功能。不过,我们不可能一直无处不在,我们也不像你们那样了解你们当地的技术社区。因此,我们最近启动了 GitKraken 大使计划,以便与全球的专业和学生开发人员更紧密地合作,教导开发人员如何使用我们的工具提高工作效率。
在仔细评估了来自 60 多个国家的数百份申请后,我们自豪地欢迎来自 31 个国家的第一批 71 名大使,包括:澳大利亚、比利时、巴西、加拿大、哥伦比亚、塞浦路斯、丹麦、厄瓜多尔、英国、法国、德国、印度、意大利、日本、肯尼亚、拉脱维亚、马来西亚、墨西哥、荷兰、尼日利亚、波兰、俄罗斯、苏格兰、新加坡、西班牙、南非、瑞士、土耳其、泰国、美国和赞比亚。
这些人热衷于学习、教学和参与当地的技术社区。来认识几个吧!🤝
想成为 GitKraken 大使?
布鲁诺·热尔曼诺
地点:巴西圣保罗
推特: @egermano
在美丽的巴西,Bruno 从早期就开始使用 GitKraken。他在布鲁诺·热尔曼诺的 YouTube 频道上最为活跃,该频道拥有 57000 名用户。
布鲁诺用葡萄牙语创作内容,专注于开发,包括必备的开发工具如 GitKraken、比特币、人工智能和其他与技术相关的主题。
约瑟·豪沃思
地点:英国利兹
推特: @JoseyHowarth
有趣的事实:乔西是一个狂热(和快速)的读者;她在过去的 12 个月里读了 600 本书!
乔西是 GitKraken 的长期用户和支持者,对我们的北海巨妖吉祥物 Keif 有着特殊的感情。我们甚至以著名的女性计算机科学家阿达·洛芙莱斯为原型,为她创造了凯法·洛夫莱斯!
GitKraken 是一个非常可视化的工具。我指导、构建工作流的每个人——尤其是那些刚开始接触 Git 的人——发现通过 GUI 更容易理解所有这些是如何相互关联的。
乔西是帮助品牌讲述自己故事的数字机构 Love Sudo 的总监,也是 Twitch 上关于软件开发的直播和播客 DNI (不包括文档)的共同主持人。
P.S .查看这一集 DNI, 有 App 想法,???,盈利! ,由 GitKraken 自己的产品副总裁 Hamid Shojaee 出演!
自由猫
地点:肯尼亚纳库鲁
推特: @LibereGatare
Gatare 是一个天生的领导者和教师,他主动与社区中的许多其他人分享他的发展知识。作为 Kabarak 大学的一名学生,Gatare 非常乐于与同龄人分享 GitKraken 的学生资源。
我最喜欢软件开发的一点是,总是有新的工具出现,让我的工作流程变得更容易。
Gatare 是一名计算机科学本科生,专业是 UX/UI 设计,是 Kabarak 大学的开发者学生俱乐部(DSC)的共同负责人,业余时间喜欢打排球和篮球。
Gatare is a natural born leader and teacher, taking it upon himself to share his knowledge of development with many others in his community. As a student at Kabarak University, Gatare is great about sharing GitKraken student resources with his peers.
马尔西·哈克斯基
地点:波兰普卢斯科
推特【】
有趣的事实:Marcin 以前是一名半职业篮球运动员。🏀空中接力。
Marcin 对开源充满热情,在他的本地开发者社区和其他地方非常活跃。他经常分享他的专业知识,无论是在活动上发言,亲自指导和培训,还是在 YouTube 频道上。
我最喜欢软件开发的一点是我们可以用它实现的无限可能性。
Marcin 不仅擅长开发,还经常分享他对社交媒体营销的见解。在他的 Instagram 上赢得了 4000 多名粉丝,Marcin 在他即将出版的新书《忙碌的程序员社交媒体指南中分享了关于增加你的 Instagram 受众和掌握社交媒体的技巧
Marcin 也是 Umbraco 的 MVP,她非常清楚作为一名品牌大使意味着什么。我们期待着我们的 GitKraken 教程被翻译成波兰语!敬请关注…
The thing I love most about software development is the infinite possibilities of what we can achieve with it.
纳伊克
地点:南非乌姆兰加
推特: @ErrorNaik
有趣的事实:在 DJI 的一次无人机实验中,Pivendren 曾经穿着香蕉服装进行了一次图像识别,以识别真正的香蕉和穿着香蕉服装的人。
Pivendren 经常在世界各地的会议上发言,他热衷于与其他开发人员和技术人员分享他的知识。他还是微软的 MVP,教授学生关于开发和 Git — 的知识,当然是使用 GitKraken 作为首选客户端!
对我来说,每一个被我激励从事科技职业的人都是一个胜利。
我们期待看到更多 Pivendren 环游世界时摇摆 GitKraken swag 的照片!
保罗·奥布莱恩
地点:英国诺福克
推特:@保罗鲍林尼
Paul 白天是一名 IT 主管,在 Twitter 上拥有超过 34,000 名粉丝,令人印象深刻。他对移动、云计算和 Linux 充满热情,相信可以弥合技术和人类之间的鸿沟。
保罗经常在他的博客上写关于各种技术产品的文章。我们很欣赏他对 UX 的关注,这是我们在 GitKraken 非常重视的一个因素*。*
Location: Norfolk, England
本杰明·米钦森
地点:美国爱荷华州
推特: @115bwm
有趣的事实:Ben 在爱荷华大学帮助创建了 Computer Comfort,在那里,100 多名学生通过向老年人传授当今的技术,共同承担着缩小代际数字鸿沟的使命。
Ben 目前是爱荷华大学的一名工程系学生,他已经喜欢回馈其他开发者了。
成为这么多学生未来职业基础的一小部分是我经历过的最有意义的经历之一,我希望鼓励其他人也这样做!
作为学校 CS 俱乐部、Computer Comfort 的主席和 HackIowa 的导师主席,Ben 喜欢与热衷于软件开发和游戏的人交流。
Fun Fact: Ben helped created Computer Comfort at the University of Iowa, where over 100 students share the mission of shrinking the digital divide between generations by educating older adults on today’s technology.
加入 GitKraken 大使
你是使用 Git 进行版本控制的专业人士还是学生?你喜欢使用 GitKraken Git 客户端和 Glo 板来提高你的生产力吗?你对学习、创造和分享技术内容和专业知识有热情吗?你是社区导向型的,喜欢和其他技术人员交流吗?
听起来你是加入我们不断壮大的 GitKraken 大使和 GUI 倡导者社区的最佳人选!了解有关该计划的更多信息以及如何申请。
加入该计划的好处包括免费的 GitKraken Pro 许可证、独家内容、访问我们的产品团队、赠品等!
Join the GitKraken Ambassadors
Are you a professional or student using Git for version control? Do you love using the GitKraken Git Client and Glo Boards to increase your productivity? Are you passionate about learning, creating, and sharing technical content and expertise? Are you community-oriented and enjoy interacting with other techies?
You sound like the perfect fit to join our growing community of GitKraken Ambassadors and GUI advocates! Learn more about the program and how to apply.
Benefits of joining the program include a free GitKraken Pro license, exclusive content, access to our Product Team, swag, and more!
隆重推出 GitKraken Pro - Launch 筹款活动| Axosoft
作为一名产品人员(也是 Axosoft 的官方产品副总裁),当我们推出新产品时,我总是非常兴奋。今天,我有几个激动人心的消息要宣布。让我们直接进入主题,然后我会给大家介绍一下每个公告的背景。
- *首先,*我们将推出 GitKraken Pro ,一款付费版 GitKraken,拥有增强的功能集。虽然 GitKraken 将继续免费,但 GitKraken Pro 将有助于抵消 GitKraken 的一些开发成本,以确保它继续成为世界上最好的 Git 客户端。
- *第二,*我们与 Scott Hanselman 合作,帮助提高人们对糖尿病的认识并筹集资金,与night scout Foundation合作。它的使命是创建开源技术项目,改善 1 型糖尿病患者的生活。为此,从现在起到 8 月 28 日,我们将把 GitKraken 第一个月的收入 100%捐给 Nightscout 基金会。在社交媒体上寻找标签为# WeAreNotWaiting 和#GitKrakenPro 的更新。
Axosoft 正在与 Nightscout 基金会合作,帮助为一个开源糖尿病项目筹集资金。
吉塔拉克和吉塔拉克为
大约两年前,Axosoft 开始开发 Git 客户端,这将改变开发人员与 Git 的交互方式。虽然 Git 命令行界面(CLI)提供了一种与 Git 存储库交互的强大方法,但它也是一个错综复杂、冗长的命令迷宫,很难记住并且极易出错,这使得很难利用 Git 的强大功能。
我在 Axosoft 的几个同事认为,有一种更好、更直观的方式来与 Git 交互并查看交互历史。结果是大约一年前推出了 GitKraken。
GitKraken 很快成为一个巨大的成功,在全球范围内拥有超过 100,000 名软件开发人员。
Axosoft 在 GitKraken 上下了很大的赌注,投资了数百万美元用于开发,我们决心要让 GitKraken 成为世界上第一大 Git 客户端。根据用户反应和我们得到的反馈,我们正在朝着这个目标努力:
试用 @GitKraken ,印象深刻。事实上,这个东西可以让你做任何你可以从命令行界面做的事情。
—大卫·鲍姆戈尔德(@ singingwolfboy)2016 年 6 月 21 日
有史以来最好的 Git 客户端。# AXO soft@ GitKraken而且是# cross platformhttps://t.co/9HStVkpv7zpic.twitter.com/4yBAEP4sQi
—以利亚·达菲(@ endev 15)2016 年 6 月 22 日
@GitKraken 第一个我觉得可以信任的 git UI。优雅、反应灵敏、跨平台。让我离开控制台需要很多…但是这个哇
—史蒂文(@ stvndall)2016 年 5 月 28 日
@GitKraken 给了我信心,让我可以使用一种受 GUI 支持而非阻碍的方法来导航和学习 Git。#饭桶#牛逼
—乔纳森·斯托里(@ jonistorey)2016 年 6 月 26 日
真心喜欢 @GitKraken !Sourcetree 从中可以学到一些东西。早期的日子仍然,但看起来我可能有一个新的最爱。
—马修斯·吉马良斯(@ mdefineg)2016 年 2 月 13 日
我使用 GUI 进行 git 操作的事实实际上是非同寻常的…做得太好了,你说服了我😉 #GKDevLife
—贾斯汀·勒尤尼(@ djouuuuh)2016 年 6 月 28 日
🔞
爱 @GitKraken 和████你 #CLI ,就████你!—mⓐt(@ matsxm)2016 年 3 月 29 日
@ starbuckbake@ git kraken哦我的黑暗之神下面有合并冲突解决的 UI。光是用就觉得脏。多么淫秽的软件!
—Tristen Unrau(@ starbuckbeak)2016 年 5 月 13 日
我一直在教一个设计师和开发人员团队使用 @GitKraken 进行协作。我从未如此为我的团队骄傲过! #GKDevLife
—迈克尔·杨布拉德(@ aliendev 2)2016 年 6 月 28 日
我想分享我对 GitKraken 的热爱…这不仅仅是因为头足类动物很棒https://t.co/GqViuOYG7G
—贝尔口袋妖怪供应商(@ belghast)2016 年 6 月 29 日
@GitKraken 我< 3 GK!😀最后 UI 匹配直觉。我正在教 Git through GK,(大部分)离开 CLI,并让附近的每个团队都加入进来!
—扬·范·布鲁根(@ JanCVanB)2016 年 7 月 6 日
但是我们从用户那里听到的第一个问题是,“你打算如何支付 GitKraken 的开发费用?”幸运的是,Axosoft 已经足够成功,到目前为止已经投资了 GitKraken 开发,并且在可预见的未来将继续这样做。
但为了真正确保 GitKraken 能够自立门户,享受应有的关注和资源,我们推出了 GitKraken Pro,这是 GitKraken 的付费版本,面向专业开发人员。
我们已经为 GitKraken 和 GitKraken Pro 计划了许多令人兴奋的事情,但现在,这里有一个方便的比较图表,可以看到产品目前的差异:
糖尿病和夜行基金会
Axosoft 长期以来一直认为,企业有帮助改善世界的社会义务。随着 GitKraken Pro 的推出,我们看到了帮助受 1 型糖尿病影响的人和家庭的重要非营利组织筹集资金和提高知名度的机会。
这种伙伴关系最令人兴奋的方面是这种推广可以在软件开发社区中创造意识。
*为什么是糖尿病?*因为我最喜欢的软件开发人员之一,也是我的朋友,Scott Hanselman 一生都患有 1 型糖尿病。如果你还不知道他,Scott 是开发社区的杰出成员,一个出色的演讲者,一个全面的伟人。斯科特的演示是我见过的最好的演示之一,因为它们不仅具有很高的教育意义,而且非常有趣——就像单口喜剧演员一样有趣!
我找到斯科特,询问我们应该帮助支持哪个糖尿病非营利组织,他毫不犹豫地推荐了 Nightscout 基金会。
Nightscout 基金会正在帮助支持开源糖尿病管理系统的创建和分发,这些系统正在给人们的生活带来真正的改变。通过这次推广,我们希望加快 Nightscout 基金会对糖尿病患者生活的影响。
Nightscout 基金会旨在鼓励和支持开源技术项目的创建,从而改善 1 型糖尿病患者的生活。
Axosoft 将通过 GitKraken Pro 第一个月的收入向 Nightscout 基金会捐赠多少钱没有上限。
然而,我们已经决定做出至少 5000 美元的最低承诺!
这种伙伴关系最令人兴奋的方面是这种推广可以在软件开发社区中创造意识。因为 Nightscout 基金会的大部分工作是为糖尿病社区构建开源工具,所以一些 GitKraken 用户可能非常适合帮助构建这些工具。
介绍 GitKraken 步入式商店
原文:https://www.gitkraken.com/blog/introducing-gitkraken-stores
我们只是在开玩笑!
我们当然是!但是这绝对不是开玩笑,我们仍然提供 GitKraken 作为一个方便的下载你不需要 50 张软盘来安装。
我们非常兴奋地宣布,从 2018 年 Q1 奥运会开始,我们将提供一种全新的方式来获得 GitKraken:通过在实际的无预约商店购买的应用程序的实体版本!
近两年来,我们一直在提供 Git GUI(Git kraken ),我们一直在不断更新和改进,因为我们决心为您提供可以想象的最豪华的 Git 客户端。这种奢侈一直与 UX 有关。哪些基本的用户界面特征可以转化为实际的物理动作,进而为最终用户带来更高效、简化和健壮的体验?
除了应用程序本身的开发之外,我们觉得我们向用户提供 GitKraken 的方式还缺少一些东西。
到目前为止,我们的流程是:
- 去 GitKraken 网站
- 下载时间
- 安装 gitkraken
- 使用 GitKraken
听起来熟悉吗?当然有关系。几乎每个软件公司都让你这么做。很标准,很平庸。它崇尚所谓的“效率”而非奢华体验。但是用户实际上想要什么呢?
我们需要一些可靠的数据来帮助我们制定战略。我们抽样调查了 5 名 80 岁以上的公众,问了他们 4 个简单的问题:
互联网安全对你来说重要吗,还是说它是你生活中最重要的事情?
- 您更愿意在线获取并安装 Git GUI 客户端还是面对面获取并安装?
- 制表符还是空格?
- 如果您要在 Linux 发行版上安装和配置 Git GUI,您需要专家的帮助吗?
- If you were to install and configure a Git GUI on your Linux distribution, would you need expert help?
结果相当确凿:
我们召开了一次战略会议,所有利益相关者几乎一致认为,GitKraken 的营销组合中缺少某种实体存在,一次不经意的提及实体店很快升级为热烈的讨论。
我们还观察了其他一些公司,它们将提供切实的体验作为营销和购买漏斗的一部分。当然,苹果是第一个想到的公司,产品副总裁 Hamid Shojaee 负责相应地修改 GitKraken 的路线图。没过多久,他就起草了一些令人信服的论点,令人印象深刻地阐述道:
我们很快就达成了一致的计划,包括建筑专家,他们将帮助我们设计 GitKraken 商店,不仅要看起来很棒,还要刺激浏览商店的 Git 用户之间的对话。
2018 年 Q1 开幕的第一家 GitKraken 商店的艺术家模型。玻璃门之间可以看到入口。在商店的后面是一个大型显示器来显示视觉项目,耳机可以用来听 iPods 上的音乐。
Artist mockup of the first GitKraken store, opening Q1 2018. The entrance can be seen between the glass doors. At the back of the store is a large monitor to display visual items, and headphones are available to listen to music on iPods.
这个项目的目的是为你购买 GitKraken 提供一个真正的一站式商店(如果你愿意,也可以在店内安装)。该应用程序的方便和高度便携的磁盘格式将意味着你可以将 GitKraken 带到任何地方,即使没有 wifi。
也许你正在加州州立公园露营。有了应用程序的盒装版本,您距离安装 GitKraken 只有一步之遥。在酒店度假。你可以在任何一台装有 5.25 微硬盘的酒店电脑上安装 GitKraken。真的就这么简单。
为下一次激动人心的冒险干杯!
Here’s to the next exciting adventure!
介绍 gitkraken 时间轴免费在线时间轴制造商
原文:https://www.gitkraken.com/blog/introducing-gitkraken-timelines
无论你是产品负责人、项目经理还是公司的首席执行官,了解你的团队如何计划和实现项目里程碑,对于实现长期和可持续的成功至关重要。
像 GitKraken 的看板问题板这样的工具对于确保每个人都知道谁在做什么非常有用,但是当您的团队正在查看需要完成的数百项任务时,可能很难确定哪些行动项目是最重要的,并且最终会影响里程碑目标。此外,在跨部门或与您的执行团队共享这些工具时,经常会出现脱节,这样他们就可以知道下一步会发生什么。
这些挑战是我们创建 GitKraken 时间轴的原因。
了解更多关于 GitKraken 时间表的信息,并开始规划项目里程碑和目标。
https://www.youtube.com/embed/3jTuGXzhd5Y?feature=oembed
视频
突出项目里程碑
GitKraken 时间表旨在用连续的线条表示时间,以显示主要的项目里程碑。每个里程碑标志突出显示主要目标以及里程碑计划发生的时间。
GitKraken 团队现在使用时间表来计划我们所有产品的发布,因此我们可以快速计划并清楚地传达发布时间表。
合并项目时间表以避免冲突
我最喜欢的功能之一是能够在同一视图中将时间线重叠在彼此之上;因此您可以将一个产品版本与另一个产品版本进行比较,以避免冲突和重叠。由于每条时间线都有独特的颜色,因此您可以很容易地将它们区分开来。
GitKraken 团队甚至将我们的产品发布时间表与我们营销团队的时间表结合起来,以确保所有部门都在同一页面上,并有足够的带宽来完成与公司里程碑相关的所有方面,如发布文章和促销图片。
您可以创建时间表,并与组织中的任何人共享。
与公共时间表合作
GitKraken 时间线可以通过在应用程序中搜索同伴用户或通过共享公共 URL 供任何人查看您的时间线来轻松共享,以便进行直接协作。或者,您可以通过简单地复制和粘贴一些代码,将创建的时间线嵌入到公共网页中。
此外,GitKraken 时间轴包括演示功能;当你把你的在线时间表润色得尽善尽美时,只需点击顶部工具栏上的幻灯片图标。
随着新里程碑的增加,时间线也随之更新
我和我在 GitKraken 的软件工程师团队非常了解项目时间表会因为不可预见的问题而频繁更新。生活就是这样,对吗?
GitKraken 制作的时间线会随着新里程碑的创建和添加而自动更新。
随着里程碑开始一个接一个地堆积,您可以调整视图来放大时间线的压缩部分。
向项目里程碑添加链接和子项
更多的背景导致更大的可见性,在 GitKraken,我们相信信息越多越好。对于 GitKraken Timelines 中创建的每个里程碑,用户可以关联一个 URL,可能是 Glo 卡或 pull 请求,用于附加上下文。
您还可以向里程碑添加任意数量的子项,并且能够在每个子项中包含 URL。这使得时间线有可能成为在高层次上共享信息的渠道,在必要时通过链接和子项目提供详细的细节。
使用 GitKraken Glo 查看看板板作为时间线
如果你是 GitKraken 问题跟踪板的当前用户,你已经可以访问 GitKraken 时间表了!
单击 Glo 板右上角的时间线图标,查看您的卡片填充到线性时间线上。您可以选择查看所有分配了到期日期的卡片,或者只查看与 Glo 中的某个里程碑相关联的卡片。
与 GitKraken 一起创造历史
在项目管理的历史上,从来没有一个工具可以如此容易地交流项目目标和里程碑。
用 GitKraken 创造历史,今天就创建你的第一条时间线——完全免费。无论是为了一项重要的工作任务,你的个人爱好项目,或者可能根本与项目无关——看看我们 Glo 开发者之一创建的这个令人惊叹的火箭时间线历史——尽情享受吧!
介绍 Glo Marketplace
原文:https://www.gitkraken.com/blog/introducing-glo-marketplace
我们最近宣布为 GitKraken Glo 板引入公共 APIs 为了帮助我们庆祝,我们邀请了极具才华和创造力的软件工程师社区来开发应用程序集成,作为我们的 Glo API 竞赛的一部分。
有希望的 API 开发者提交他们的集成,有机会获得高达 10,000 美元的现金奖励!竞赛类别包括:导入/导出/同步工具、Slack 集成、Chrome 扩展、截图工具、时间跟踪、语音助手集成、物联网集成、CI/CD 集成、IDE 集成和 Freestyle。我们非常激动地宣布获奖者,并分享他们的数字创作细节。
Glo Marketplace 发布
新的 Glo Marketplace 以下面列出的免费应用为特色,并且随着开发者提交 Glo API 应用而不断发展。因此,请继续查看,将 Glo 问题跟踪器与其他应用程序结合使用,找到能够进一步提高您工作效率的应用程序。
Chrome 扩展,截图工具
多亏了 Glo Web Clipper,用户现在可以避免创建截图、保存到他们的计算机以及单独上传到 Glo 的三步过程。没错!你现在可以在 Glo 中立即添加一个截图到现有的卡片上。
您可以通过此应用程序创建和共享以下 web 片段:
- 可视页面:当前屏幕上所有可见内容的截图。
- 整页:整页的截图,包括所有看不到的内容。
- Selection:允许您在当前可见页面上自由选择要裁剪的矩形。
创建 web 片段后,您可以创建新的 Glo 卡并将文件作为注释附加到该卡上,也可以将文件作为注释添加到现有卡上。
Chrome 扩展,时间追踪,截图工具
Glomium 应用程序是一个多方面的工具,允许在 Glo 和其他网页之间进行通信的各种功能。你可以直接通过 Glomium Chrome 扩展创建卡片、附加文件、发表评论和跟踪你的时间。
Chrome 扩展提供了一个简单的下拉菜单,让用户可以选择:
- 使用+图标创建卡片。你可以选择张贴卡片的位置,添加名称和描述,附加文件,并使用 Glomium 的一键式工具添加网页的 URL。
- 使用扩展的下拉菜单向现有卡片发表评论。
- 使用内置的时间跟踪器功能跟踪花费在特定项目上的时间。在浏览器内部或外部处理项目时,您可以使用时间跟踪器。然后将你的录音时间作为评论张贴到 Glo 中的任何卡片上!
时间追踪
Glo 用户现在可以从 Glo 板内部使用 Toggl 来跟踪工作时间。Kraggl 不仅允许用户使用启动和停止计时器来跟踪时间,它还提供报告功能来评估在特定问题或工作流程步骤上花费的时间。
安装应用程序并提供 GitKraken 帐户的访问权限后,您将能够指定想要跟踪花费时间的列。用户可以通过将现有的 Glo 卡移动到指定的跟踪栏,轻松启动特定项目或任务的计时器。类似地,通过将 Glo 卡从被跟踪的列移动到未标记为时间跟踪的列来停止计时器。
这个应用程序的另一个超级酷的功能是集成的时间摘要,它可以让你快速地看到每张卡上花了多少时间。同样,列时间摘要将显示你在该项目上花费的总时间,通过将列中列出的每张卡片上花费的时间相加。
Another super cool feature of this application is the integrated time summary, which allows you to quickly see how much time has been spent on each card. Similarly, column time summaries will show you the total time spent on the project by adding up the time spent on each card listed in the column.
自由式游戏化
这个应用程序允许用户游戏化他们的 Glo 板。用户可以直接从 Glowify 在 Glo 中发布新的公告板,该公告板将填充在公告板面板中,并不断更新所获得的积分和成就。
Glo 用户将通过添加卡片、完成任务和执行其他动作(在 Glowify 中列为Events
)来参与 Glo 板,从而开始获得积分。
随着用户继续获得积分,他们的排名将会上升——通过将他们的卡移动到右边的下一列来看——并获得特殊成就的标签。可以从 Glowify 应用程序中管理等级标题和相关联的点数要求。
As users continue to earn points, they will move up the ranks—seen by having their card moved to the next column to the right—and receive labels for special achievements. The rank titles and associated point requirements can be managed from within the Glowify application.
松弛集成
绝不错过 Glo 的任何动作!使用 Flo 在 Slack 中接收关于 Glo 板中发生的活动的实时通知——无论您被分配了任务,您正在处理的项目的进度发生了变化,或者团队成员给你留下了评论。
Never miss any action in Glo! Use Flo to receive real-time notifications in Slack about activity happening in Glo Boards—whether you’re assigned a task, a progress change has been made on a project you’re working on, or a team member has left you a comment.
语音助手集成
手疲劳?迷你 Glo 是适合你的应用程序!这是 Alexa 的一项技能,允许你使用亚马逊智能家居设备与 Glo 板交谈。因此,您可以使用语音命令在 Glo 中执行任务。说什么??!!
用户可以从说“Alexa,打开迷你 Glo”开始。然后可以在任何时候问 Alexa 如何执行特定的任务(如创建一个专栏),说:“Alexa,问迷你 Glo 如何做(插入任务)。”
https://www.youtube.com/embed/D2ghWLkUIL4?feature=oembed
视频
正如在视频中看到的,Mini Glo 可以添加列,创建卡片并将其添加到列中,删除电路板,等等。
As seen in the video, Mini Glo can add columns, create cards and add them to columns, delete boards, and more.
物联网集成、时间跟踪、DIY 硬件项目
不像我们的其他提交,这个应用程序带有一个自己动手制作的秒表来跟踪时间!多有趣啊!?谁不想在他们工作的时候砸按钮呢?
使用一个按钮开始和暂停时间,另一个按钮表示任务已经完成。点击按钮完成任务后,你的 Glo 板会自动更新一条评论,注明任务完成和所花的时间。
这个应用程序附带了一个 5-10 分钟的 DIY 教程,使用 ESP-8266、按钮、电线、诺基亚 5110、一个电源库和一个盒子来自己构建工具。
This application comes with a DIY 5-10 minute tutorial to build the tool yourself using an ESP-8266, buttons, wires, Nokia 5110, a power bank, and a box.
向 Glo Marketplace 提交应用
对于 Glo 板的 API 集成,你有什么好主意吗?大量用户正在寻找生产力应用程序来扩展 Glo 板的功能,通过在 Glo 市场中展示您的应用程序,您将获得最大的曝光率。随时提交您的 Glo 应用,我们将对其进行审核,以便将其放入 Glo 市场。继续查看 Glo Marketplace 的新应用程序,以增强您的 Glo Boards 体验。
Do you have a great idea for an API integration for Glo Boards? Tons of users are looking for productivity apps to extend the functionality of Glo Boards, and by having your app featured in the Glo Marketplace, you will get the greatest amount of exposure. Submit your Glo App anytime, and we will review it for placement in the Glo Marketplace. Continue to check the Glo Marketplace for new apps that will enhance your Glo Boards experience.
用 Jamstack & Git 部署快速静态站点
https://www.youtube.com/embed/moZWRGon9fk?feature=oembed
视频
基本上有两种方式将网站交付给用户。通过静态网页或动态网页。
静态网页被交付给用户的浏览器,就像它们被存储在 web 服务器上一样。静态页面以同样的方式向每个访问者提供 HTML 标记的内容、CSS 和 Javascript,确保无论谁访问网站都有统一的体验。
另一方面,网站可以作为动态网页交付,其中一些内容是在请求时在 web 服务器上动态生成的。例如,当用户从 WordPress 网站请求网页时,服务器需要使用模板引擎生成内容,从数据库或第三方 API 提取数据,以创建所需的 HTML 呈现给用户。
GitKraken 包括一个 GUI 和 CLI,让您的 Git 体验更加动态,并提高工作效率,因此您可以真正拥有两个世界的精华。
静态网页的好处
1。速度
静态网页提供了一系列的优势,首先是速度。静态网页加载速度非常快,因为它们传送的文件就像存储在 web 服务器上一样。当发出请求时,不需要生成任何东西。这与许多动态站点采用缓存的原因相同。
2。实惠
静态站点运行起来很便宜,因为底层 web 服务器不需要主动运行任何代码,也不需要任何高级配置。服务器只需要根据其文件系统的需求交付静态资产。也不需要维护昂贵的数据库层。这使得静态站点更容易维护。
3。安全性
静态网站也更安全。构建站点不需要执行任何代码,因此恶意代码注入或跨脚本攻击的可能性要小得多。因为没有运行活动的管理系统,所以不良行为者不能获得管理特权。俗话说:“没有代码比没有代码更安全。”
Static sites are also more secure. No code needs to be executed to build the site, so there is much less chance of malicious code injection or cross-scripting attacks. Because there is no active administration system running, there is no admin privilege a bad actor can gain. As the saying goes: “there’s no code more secure than no code.”
4。可扩展性
很容易扩展静态站点。由于需要更多的容量来满足额外的请求,可以在几秒钟内添加更多的服务器来服务静态映像。这可以由许多系统在运行中完成,而不需要预先提供额外的资源,因为您必须使用动态 web 服务器。
5。稳定性
静态站点也带来了稳定性。没有执行任何代码来为用户生成内容,因此交付过程中出错的风险有限。使用当前的缓存设置,即使某个特定的 web 服务器完全从 Internet 上消失,也很可能有一个站点的副本缓存在某个地方,准备处理传入的请求。
5. Stability
jam stack 的原理
Jamstack 一词指的是一种构建网站和应用程序的方法,这种方法提供了更好的性能、更高的安全性和更好的开发人员体验,同时还降低了维护和扩展的成本。Jamstack 更像是开发人员遵循的一套核心原则,而不是正式的技术栈。
The Principles of Jamstack
1.在构建时生成静态资产。
Jamstack 的第一个原则是静态资产应该尽可能在构建时生成。在提供给浏览器之前,可以构建的静态资产越多越好。理想情况下,整个项目可以由静态网页提供服务。这并不总是可能的,但像 Next.js 这样的工具已经发展到可以帮助开发人员遵守 Jamstack 原则,同时在绝对需要时仍然使用动态生成。
1. **Generate static assets at build time. **
2.将静态资产部署到内容交付网络(CDN)。
Jamstack 的下一个原则是将这些静态资产部署到内容交付网络(CDN)。CDN 是一组地理上分散的服务器,它们将内容复制到世界各地的不同点。某人离 CDN 服务器网络中的一个节点越近,内容就能越快地提供给他们。例如,如果一个静态站点来自阿根廷,但使用全球 CDN 网络,欧盟的某个人将从他们最近的 CDN 节点获取所需的资产,从而避免往返地球的另一端来服务页面。因此,页面加载速度更快。
2. Deploy static assets to a Content Delivery Network (CDN).
3。JavaScript 将用于调用 API 来为动态内容生成资产。
Jamstack 的最后一个首要原则是,如果需要动态内容,将使用 JavaScript 调用 API 来生成这些资产。最初,Jamstack 的名字大写为 JAMstack,前三个字母代表 Javascript、API 和标记。
例如,如果您想在 Jamstack 站点上显示一个 Twitter 提要,您可以使用 JavaScript 调用 Twitter API 来获取所需的 tweet,然后将 tweet 呈现到屏幕上,同样使用 JavaScript。
The final overarching principle of Jamstack is that if dynamic content is needed, JavaScript will be used to call APIs to generate those assets. Originally, the name Jamstack was capitalized as JAMstack, with the first three letters standing for Javascript, APIs, and Markup.
For example, if you would like to display a Twitter feed on a Jamstack site, you would use JavaScript to call the Twitter API to get the needed Tweets, and then render the Tweets to the screen, again using JavaScript.
jam stack 的工具
与所有构建网站和应用程序的方法一样,与 Jamstack 相关的各种工具和平台已经出现,以抽象出一些开发人员的挑战,例如减轻他们对项目的每个元素进行手工编码的负担。这些工具和平台主要属于静态站点生成器、无头 CMS 和无服务器平台领域。
The Tools of Jamstack
静态现场发电机
静态网站生成器(SSG),顾名思义,是一个使用各种数据源和样式模板生成静态网站的软件。基于许多编程语言,有许多选项。几个例子包括使用 Ruby 的 Jekyll 、使用 GoLang 构建的 Hugo 和利用 React 的 Gatsby 。Next.js 可以算作这一类,尽管它也可以处理动态内容生成。所有这些 SSG 程序从指定来源获取数据,并创建将部署到 CDN 的风格化静态资产。
**Static Site Generator **
Jamstack CMS:无头 CMS
Jamstack 开发需要理解的下一项技术是 Headless 内容管理系统(CMS)。一般来说,CMS 是你存储和管理网站内容的地方。你可能已经熟悉了传统的 CMS,比如 WordPress 、 Drupal 和 Joomla 。这些 CMS 不仅存储内容,还负责显示内容,处理作为应用程序一部分的表示层。
无头 CMS 不关心内容最终将如何呈现;这是 SSG 的工作。
在一个无头 CMS 中有多种方法来存储和检索内容,有时也称为解耦 CMS。总的来说,一个好的 headless CMS 将会有一个管理界面,内容编辑可以在那里写他们的副本和修改预设字段中的文本。CMS 管理界面也是开发人员可以在称为“内容建模”的过程中定义各种字段和内容类型的地方。从智能手表到亚马逊的 Alexa,许多应用程序都在利用 headless CMSs 向用户提供内容。传统的 CMSs 可以用来满足 Jamstack 站点的需求,但是已经出现了许多系统,如 Storyblok 和 NetlifyCMS ,它们都是为这个用例定制的。
Headless CMSs are not concerned with how the content will eventually be presented; that is the job of the SSG.
无服务器平台
Jamstack 开发所需的最后一套工具是无服务器平台。这是指构建、集成、部署和托管应用程序的在线服务。每当代码被更改并被推送到一个远程 Git 库,或者一个新的 Git pull 请求被发出,这就触发了一个生成站点所需静态资产的构建过程。相同的服务将获取这些静态资产,并将其部署到 CDN,通常由相同的服务运行。 Netlify 、 Vercel 、 Azure Static Web Apps ,甚至 GitHub Pages 结合 GitHub Actions ,都是无服务器平台。
Serverless Platforms
Jamstack:将所有这些放在一起
构建 Jamstack 站点的典型工作流如下所示:
Jamstack: Pushing it All Together
在您的 headless CMS 中添加内容,例如 Storyblok。
在 SSG 中添加对该内容的引用,例如 Next.js
- 使用类似 TailwindCSS 的东西,用你的 SSG 来设计内容的样式。
- 使用 GitKraken ,将那些提交的代码变更推送到您的在线存储库中。
- 观看构建过程在您的无服务器平台上工作,将最终呈现的站点交付到您的 URL。
- Push those committed code changes to your online repository, using GitKraken.
- Watch the build process work on your serverless platform, delivering the final rendered site to your URL.
点击此处,查看 Facundo 使用 Next.js 作为 SSG,Vercel 作为无服务器平台,Storyblok 作为 headless CMS,向 Jamstack 站点添加内容类型的示例。观看他使用 GitKraken 提交更改并推送到他的遥控器。使用 GitKraken,您可以通过从中心图中拖放一个分支到另一个分支上来快速地推动变更。
无论您正在构建什么,GitKraken 都可以帮助您降低代码管理和协作过程的复杂性。现在就下载 GitKraken Git 客户端 ,它包括一个 GUI 和 CLI ,通过强大的可视化和 Git 增强的终端体验让您的开发人员生活更加轻松,让您专注于交付下一个令人惊叹的项目,而不是努力管理您的代码库。
Click here to see Facundo walk through an example of adding content types to a Jamstack site using Next.js as the SSG, Vercel as the serverless platform, and Storyblok as the headless CMS. Watch as he uses GitKraken to commit changes and push to his remote. With GitKraken, you can quickly push changes by dragging-and-dropping one branch onto another from the central graph.
No matter what you are building, GitKraken can help take the complexity out of code management and the collaboration process. Download the GitKraken Git client today, which includes a GUI and CLI to make your life as a developer easier with powerful visualizations and a Git-enhanced terminal experience, letting you focus on delivering your next awesome project instead of fighting to manage your codebase.
免费网络研讨会:如何使用 Buddy + GitKraken 管理 Jamstack 代码和部署
我们很高兴能与 巴迪 一起举办两场网络研讨会中的第一场,这家公司的目标是让持续集成/交付/部署变得更加容易。虽然 GitKraken 和 Buddy 都专注于开发人员需求的不同领域,但我们都相信更好的可视化会带来更好的结果。
GitKraken 开发者布道者 Dwayne McDaniel 与 Buddy 的 WordPress 大使 Maciek Palmowski 和一位 GitKraken 大使 一起,通过建立一个NextJS站点并将其部署在net lify上进行讨论。 我们将介绍网上研讨会的各个步骤,这样您也可以使用 Buddy 和 GitKraken Git 客户端构建一个 Jamstack 站点并进行部署,可从 免费下载 。T34
与好友 持续集成和持续部署
Maciek 很好地总结了为什么我们看到了 CI/CD 采用率的上升:“如果某些东西是可重复的,那么它就很无聊,我们很可能会犯错误。”
通过尽可能地自动化,我们可以添加更多有用的步骤;如果有的话,这些步骤我们很可能无法用手工正确完成。 你可以自动化的步骤包括:编译代码,删除不用的 CSS,添加各种测试,甚至检查错别字。
大多数 CI/CD 提供商严重依赖单一的、大型的配置文件,通常用编写。这需要精神能量来记住你试图提供的服务的整个模型,同时还需要手动编写非常具体的参数。如果您刚开始使用 CI/CD,配置所有移动部件可能会变得非常快。
Buddy 提供了一种可视化的方式将管道动作堆叠在一起,就像乐高积木一样。每一步都是一个独立的动作,你可以确切地看到管道在做什么。这允许您一次只修改一个步骤。开始使用 CI/CD 要容易得多,因为您可以在继续添加更多步骤之前构建并测试每个操作。
吉拉 Azure DevOps 集成
原文:https://www.gitkraken.com/jira-integrations/jira-azure-devops-integration
将 Azure DevOps 与吉拉集成,对于希望简化开发流程并改善团队间协作的组织来说,可能是一个游戏规则改变者。通过将这两个强大的平台结合在一起,开发人员可以消除在工具之间进行上下文切换的需要,同时项目经理可以更好地了解每个项目的状态。在本文中,我们将进一步了解将 Azure DevOps 与吉拉集成的好处,演示如何使用针对吉拉的 Git Integration 来设置集成,并探索开发团队可以立即开始利用它来显著改善协作和可见性的几种方式。
想把吉拉和你的 GitHub 或者 GitLab repos 整合起来吗?看看这些相关的分步指南:
什么是吉拉?
吉拉是一个在开发者中广泛使用的问题跟踪和项目管理平台。它是敏捷友好的,对于管理任务、错误和分配非常有帮助。吉拉有两个不同的版本,一个是你自己托管的,另一个是云托管的。云托管版本将是本文的重点,但值得一提的是,如果您愿意,您可以选择自托管。吉拉的另一个好处是,如果你的项目碰巧是开源的,那么利用吉拉不会花你一分钱!
什么是 Azure DevOps?
Azure DevOps 允许开发人员管理代码版本、测试、自动化构建和发布项目。与吉拉类似,它因与 Visual Studio 和 Eclipse 等流行的开发环境兼容而被开发人员广泛使用。
什么是 Azure DevOps?
为什么要整合 Azure DevOps 和吉拉?
开发人员和项目经理(更不用说其他非技术利益相关者)都从 Azure DevOps 和吉拉的集成中获得了巨大的价值。实时访问相同的 Git 信息,如提交、分支、拉请求和标记,可以使团队更加协作和高效地工作。另外,你可以避免过多的状态会议和即兴更新。
开发人员的主要优势
改善协作和沟通:通过将 Azure DevOps 与吉拉集成,团队成员可以在一个集中的位置查看和更新工作项信息,这有助于改善团队之间的沟通和协作。
提高效率:通过集成这两个平台,团队成员可以在吉拉和 Azure DevOps 之间无缝移动以完成他们的工作,这有助于减少上下文切换以及管理开发项目所需的时间和精力。
开发人员的主要优势
项目和产品经理的主要优势
涉众对问题的进展和状态有了更好的理解,因为他们可以通过链接的提交、构建和其他工件看到已经完成的工作,并确定仍然需要做什么。
改进的项目规划:集成还可以帮助团队成员更有效地规划和跟踪工作,因为他们可以使用吉拉来创建工作项并确定其优先级,然后使用 Azure DevOps 来填写工作完成时的进度细节。
将 Azure DevOps 与吉拉联系起来
- 要开始将 Azure DevOps 与吉拉集成,你首先需要从 Atlassian marketplace 安装一个 Git 集成应用。对于这个例子,我们将使用 Git Integration for 吉拉——一个拥有超过 10,000 次安装的高评级应用程序,支持云和 Azure DevOps 和吉拉的自托管版本。
- 可以使用 OAuth 或个人访问令牌来执行集成身份验证。对于本例,我们将使用 OAuth 进行身份验证。
从 Atlassian Marketplace 安装 Git Integration for 吉拉应用程序。注意:像所有市场应用程序一样,你需要成为吉拉管理员才能安装该应用程序。
从吉拉顶部的导航栏中,选择应用程序,然后选择 Git 集成:管理集成
选择右上角的添加集成按钮
在 Git 托管服务页面上,为云选择 Azure DevOps Repos 或为自托管选择 Azure DevOps Server。在本例中,我们将选择云。
选择 OAuth,然后从右下角连接 Azure Repos。
遵循 Azure DevOps 流程并选择 Accept 以授权对您的存储库的访问。注意:我们建议创建一个新的 Microsoft 用户,并设置特定权限以使用吉拉云。
选择您希望与吉拉连接的 Azure DevOps 存储库,然后选择“连接存储库”按钮
在 Git 托管服务页面上,为云选择 Azure DevOps Repos 或为自托管选择 Azure DevOps Server。在本例中,我们将选择云。
遵循 Azure DevOps 流程并选择 Accept 以授权对您的存储库的访问。注意:我们建议创建一个新的 Microsoft 用户,并设置特定权限以使用吉拉云。
将 Azure DevOps 与吉拉问题联系起来
既然您已经将 Azure DevOps 存储库与吉拉连接起来,那么您就可以开始将吉拉问题与其相关的开发工作联系起来了。这很容易通过在提交消息中包含吉拉发布密钥来实现。
Git 提交消息示例:GLK-312 - moved the images down the page
在这种情况下,带有关键字GLK-312
的吉拉问题将显示相关的提交信息。
将 Azure DevOps 与吉拉问题联系起来
Git 提交消息示例:GLK-312 - moved the images down the page
在吉拉创建 Azure DevOps 分公司
在吉拉,打开一期,你会看到一个标题为 Git 开发的版块。或者,您也可以从详细信息面板中单击 Open Git Integration。这将打开一个对话框,可以在其中创建分支。
从存储库下拉菜单中,确保选择了所需的 Azure DevOps 存储库。
从源分支下拉菜单中选择所需的源分支。
在分支机构名称下输入分支机构的名称。该值的默认格式在常规设置中配置。确保在标题中保留吉拉问题的关键。
选择“创建分支”按钮以结束流程。
- 从存储库下拉菜单中,确保选择了所需的 Azure DevOps 存储库。
- 注意:默认存储库和分支可以在用户设置页面上更改,也可以通过单击设为默认按钮来更改。
- 在分支机构名称下输入分支机构的名称。该值的默认格式在常规设置中配置。确保在标题中保留吉拉问题的关键。
- 此时,将在您的 Azure DevOps repo 中创建分支,并与选定的吉拉发行相关联。您将能够在 Development 和 Git integration 下的 Details 面板中看到这个分支。
在吉拉创建 Azure DevOps 拉请求
要在吉拉提出拉取请求,您将遵循与创建分支机构相似的流程。打开一个问题,然后选择 Git Development 下的 Create pull request。这将打开一个对话框,您可以在其中发出拉取请求。
从存储库下拉菜单中选择所需的存储库。
从源分支下拉列表中为您的拉取请求选择源分支。
从目标分支下拉列表中选择您希望将分支合并到的位置。
确认或更改您请求的标题。确保标题中有吉拉问题的答案。
- 选择“创建拉式请求”按钮。
- 从源分支下拉列表中为您的拉取请求选择源分支。
- 拉请求将在 Azure DevOps 上创建,并与所选吉拉问题相关联。在 Details 面板中,您将能够看到开发或 Git 集成下的 pull 请求。
- 吉拉蔚蓝 DevOps 网页挂钩
- Webhooks 是保持你的 Azure DevOps 和吉拉数据实时同步的好方法。如果没有启用 webhooks,默认情况下,存储库会以固定的时间间隔重新编制索引。要为 Azure DevOps 存储库设置 webhooks,请完成以下步骤。
在吉拉
从顶部导航栏中选择应用程序,然后选择 Git 集成:管理集成
选择要添加 webhooks 的 Azure DevOps 集成
在左侧选择特性设置
复制索引触发器下的 URL
在蔚蓝的 DevOps
在您的 Azure DevOps 项目中,选择左下方的项目设置
- 在左侧导航窗格中,选择服务挂钩
- 选择创建订阅
- 向下滚动并选择 Web 挂钩,然后单击下一步
- 选择所需的触发器(例如,创建拉式请求)
根据需要对存储库、目标分支或其他选项进行筛选,然后单击下一步。
粘贴你从吉拉复制的网址,然后点击完成。
- 在您的 Azure DevOps 项目中,选择左下方的项目设置
- 这将创建并启用您的 webhook。对其他所需的触发事件重复该过程。
- 选择创建订阅
- 立即集成吉拉和 Azure DevOps
- 整合吉拉和 AzureDevOps 是每个使用这两个工具的组织都应该做的事情。由于 Git 数据(如提交和拉取请求)对所有开发涉众来说都是可见的,因此团队协作得到了极大的改进。此外,开发人员将能够通过在吉拉和 Azure DevOps 之间无缝执行操作来减少上下文切换并提高效率。
- 立即开始吉拉 Azure DevOps 集成,免费试用 Git Integration for 吉拉!
- 粘贴你从吉拉复制的网址,然后点击完成。
这将创建并启用您的 webhook。对其他所需的触发事件重复该过程。
立即集成吉拉和 Azure DevOps
整合吉拉和 AzureDevOps 是每个使用这两个工具的组织都应该做的事情。由于 Git 数据(如提交和拉取请求)对所有开发涉众来说都是可见的,因此团队协作得到了极大的改进。此外,开发人员将能够通过在吉拉和 Azure DevOps 之间无缝执行操作来减少上下文切换并提高效率。
立即开始吉拉 Azure DevOps 集成,免费试用 Git Integration for 吉拉!
吉拉开发工具|吉拉 CI/CD
GitKraken 的团队很兴奋地宣布一个全新的免费扩展,用于吉拉的 Git 集成,这是 Atlassian Marketplace 上用于吉拉的顶级工具。现在,用户可以直接在吉拉云中使用构建和部署数据来增强他们的吉拉 DevOps 工作流。
吉拉的 CI/CD 扩展将允许团队无缝连接来自 CI/CD 管道的数据和吉拉云。如果您熟悉使用 Git Integration for 吉拉在吉拉查看提交、分支和拉请求,那么对于构建和部署数据的体验将是相似的。
安装和设置非常简单,只需将吉拉的 CI/CD 扩展添加到您的吉拉 Git Integration 帐户中。不需要额外连接到您的 Git 仓库;您在吉拉通过 Git Integration 连接的任何回购协议将自动与吉拉的 CI/CD 配合使用。
安装针对吉拉的 CI/CD 扩展,以提高协同工作但依赖不同系统中的数据的团队之间的开发运维可见性。
提高吉拉 DevOps 的知名度
已实施开发运维工作流的组织面临的一个常见挑战是缺乏对来自不同系统、位置和团队的数据的可见性。如果运营团队不能洞察来自工程团队的信息,他们就不能为潜在的冲突做好准备。类似地,如果产品团队不能看到客户反馈到支持团队,他们就不能最好地满足用户需求。
虽然持续集成和交付旨在减少人工工作,但相关的状态数据通常只能在许多团队成员无法访问的系统中找到,这通常会使沟通变得复杂。
通过确保所有 CI/CD 数据与吉拉的一个问题相关联,吉拉 CI/CD 通过提供更好的可见性和跟踪大多数团队成员已经在寻找的地方,最大限度地发挥团队作用:吉拉。
https://www.youtube.com/embed/tTOsHmPay40?feature=oembed
视频
减少上下文切换和错误
可见性的提高和沟通的改善与更少的错误、更多的责任和更大的组织透明度直接相关。每个人都可以看到吉拉问题何时更新,工作何时部署到不同的环境。
吉拉的 CI/CD 为您提供了建立早期预警系统的工具,以提醒团队成员任务过期和潜在的交付延迟。
使用针对吉拉的 CI/CD 来标记与构建相关联的吉拉问题,使得团队能够使用 DevOps 数据来自动化发行说明。
在多个系统中工作需要不断的上下文切换,导致错误和时间损失。利用针对吉拉的 Git 集成和针对吉拉扩展的免费 CI/CD,改进您团队的吉拉 DevOps 工作流。
查看吉拉的构建和部署数据
吉拉的 CI/CD 将从吉拉问题的右侧面板直接在吉拉显示构建和部署数据。与 Git Integration for 吉拉显示提交、分支和拉请求的数据的方式相同,用户可以通过 CI/CD for 吉拉扩展查看任何吉拉问题的相关构建和部署的状态。
吉拉的 CI/CD 提供了有价值的构建和部署数据,同时还为用户提供了挖掘更多细节的选项。从吉拉问题面板中,您可以展开 Git Integration 部分,以显示由开发人员组织的所有文件更改和提交的摘要。
直接查看有关吉拉问题的构建和部署信息,可以让团队知道流程中的后续步骤正在按计划进行,即构建已经创建并准备好部署到不同的环境中。
这让团队中的每个人更加确信重要的项目已经完成。另一方面,缺乏关于吉拉问题的构建和部署数据可能表明该问题可能无法在交付时及时解决。
吉拉数据的 CI/CD 通常位于许多团队成员无法访问的系统中,并且通常与吉拉问题没有关联。这个免费的扩展简化了跨团队的可见性。
吉拉触发器的自动化
众所周知,自动化可以节省时间,减少重复性任务可以改善工作流程体验。吉拉的 CI/CD 允许您为与构建和部署相关的任务设置吉拉触发器的自动化。
众所周知,自动化可以节省时间,减少重复性任务可以改善工作流程体验。吉拉的 CI/CD 允许您为与构建和部署相关的任务设置吉拉触发器的自动化。
每当构建或部署发生、成功或失败时,自动发送电子邮件、更新吉拉问题等。例如,您可以创建一个规则,当某个版本部署到生产环境时,该规则会向吉拉问题的受理人发送电子邮件,并将吉拉问题的状态更新为“完成”。
每当构建或部署发生、成功或失败时,自动发送电子邮件、更新吉拉问题等。例如,您可以创建一个规则,当某个版本部署到生产环境时,该规则会向吉拉问题的受理人发送电子邮件,并将吉拉问题的状态更新为“完成”。
吉拉 JQL 建筑和部署
借助吉拉的 CI/CD,您可以使用特定于构建和部署的吉拉·JQL 查询,根据部署状态和状况搜索和过滤吉拉问题。
使用吉拉 JQL 查询:deploymentState ~
按部署状态进行搜索或过滤
使用吉拉 JQL 查询:deploymentEnvironmentType ~
按部署状态进行搜索或过滤
吉拉部署视图
只需安装针对吉拉的 CI/CD 即可解锁吉拉部署视图,以便跨时间线查看不同环境中的部署。
吉拉部署视图
将吉拉的 CI/CD 与流行的 Git 托管服务连接起来
吉拉的 CI/CD 与最流行的 Git 托管服务连接,包括:
GitLab Cloud 和 GitLab 自托管
GitHub 云和 GitHub 自托管
天蓝色的云(即将到来
云的碎片
- 吉拉定价的 CI/CD
- 对吉拉来说 CI/CD 最好的部分是什么?免费的!没错,这个吉拉 DevOps 工具对任何拥有吉拉 Git 集成账户的人来说都是完全免费的。
- 为了享受 CI/CD 为吉拉提供的好处,您将需要 Git Integration for 吉拉,并且可以在任何时候开始免费试用,看看这两个工具如何增强您团队的开发工作流并改善跨部门的体验。
- 为了享受 CI/CD 为吉拉提供的好处,您将需要 Git Integration for 吉拉,并且可以在任何时候开始免费试用,看看这两个工具如何增强您团队的开发工作流并改善跨部门的体验。
在多个系统中工作并迫使你的团队进行上下文切换会导致错误和时间损失。这种免费扩展将节省您的时间和金钱。🤯
吉拉定价的 CI/CD
对吉拉来说 CI/CD 最好的部分是什么?免费的!没错,这个吉拉 DevOps 工具对任何拥有吉拉 Git 集成账户的人来说都是完全免费的。
为了享受 CI/CD 为吉拉提供的好处,您将需要 Git Integration for 吉拉,并且可以在任何时候开始免费试用,看看这两个工具如何增强您团队的开发工作流并改善跨部门的体验。
You will need Git Integration for Jira in order to enjoy the benefits offered by CI/CD for Jira, and can start a free trial at any time to see how both tools can enhance your team’s development workflow and improve experience across departments.
在多个系统中工作并迫使你的团队进行上下文切换会导致错误和时间损失。这种免费扩展将节省您的时间和金钱。🤯
Working out of multiple systems and forcing your team to context switch leads to errors and time lost. This free extension will save you time and money.🤯
用 Git 驱动吉拉| Adam Wride -吉拉 Git 集成
https://www.youtube.com/embed/omigX57wMM4?feature=oembed
视频
先说会议。会议效率低是出了名的。他们打断你的一天,打断你的工作。最糟糕的是,会议经常被用来做错误的事情:检查项目状态。
吉拉和许多生产力和协作工具都有这样的抱怨:
"如果我花时间更新吉拉,为什么我们需要有这么多的状态会议?"
问得好。
如果你在开状态会议,那你就错了。会议是为了解决棘手的问题和进行讨论,而不是为了更新团队的进展。这就是吉拉的意义所在。
但通常,如果在相关的吉拉问题上没有取得进展,吉拉就不是最新的。这通常意味着项目经理需要抓住懈怠或者对这个问题发表评论。最坏的情况,他们会召开一个状态会议。
没人想开更多的会。问题是,我们的会议比以往任何时候都多,而且自疫情会议以来,情况变得更糟。突然转向远程工作让人们感到不知所措;人们报告说,他们花更多的时间开会,花更多的时间相互协调,并说他们现在花更多的时间向客户和经理汇报。
高效协作从未如此重要。生产率的圣杯是少开会,少被打扰。对于开发人员来说,解决方案的一部分是使用开发人员已经采取的步骤,例如 Git 中的日常操作,尽可能多地自动化吉拉状态更新。
什么是吉拉?
Atlassian 的吉拉是项目管理软件的巨头。83%的财富 500 强企业都在使用 Atlassian 产品,目前有超过 100,000 家企业在使用 atlassian 产品,其采用率每年增长 30%。吉拉无处不在;如果您以前没有使用过它,您可能会在某个时候使用它。
大约一半的吉拉用户将它用于软件开发项目,但其中一半是非技术用户。团队中的每个人都在使用吉拉来完成他们的工作。团队使用吉拉是因为它的灵活性和众所周知的不同团队之间的良好协调。
About half of Jira users are using it for software development projects, but half of them are non-technical users. Everyone on the team is using Jira to get their jobs done. Teams use Jira because it’s flexible and is well known for good coordination between various groups.
用 Git 驾驶吉拉
对于吉拉的快速定位,吉拉问题是吉拉内部有组织工作的原子位。每个吉拉问题都属于吉拉项目,每个项目都有一个关键字。随着吉拉问题的产生,它们被赋予了一个编号;项目密钥和发行号的组合就是吉拉发行密钥。
For a quick orientation of Jira, the Jira issue is the atomic bit of organized work inside of Jira. Every Jira issue belongs in the Jira project, and each project has a key. As Jira issues are created, they’re given a number; a combination of the project key and the issue number is the Jira issue key.
吉拉问题密钥是用于吉拉的 Git 集成工具如何将 Git 提交、 Git 分支和 Git 拉请求与吉拉问题相关联。在吉拉中查看时,提交显示在问题的上下文中。
回到手头的问题:你能更新吉拉吗?开发人员不能直接跳到吉拉来更新状态、添加评论或到处更新自定义字段吗?嗯,开发人员经常觉得吉拉增加了太多的流程,花时间更新吉拉不是他们工作的一部分。
但更重要的是,在 Git 中工作的开发人员,也许有理由认为他们在 Git 中的更改包含了每个人都在寻找的状态更新。而另一方面,客户、经理、领导和其他关心开发项目进展的人希望查看吉拉,并快速了解他们的项目与计划相比的情况,以及是否有任何新的风险。他们经常在高层次上审查吉拉的进展,因此吉拉提供的结构化状态数据必须是最新的,这一点非常重要。
那么开发者和领导者之间的中间地带是什么呢?
So what’s the middle ground between developers and leadership?
使用 Git 自动更新吉拉
让我们谈谈自动更新吉拉。为什么要使用 Git 自动化吉拉呢?因为,自动化可以带来三个显著提高生产力的结果:
流动
一致性
- 时间
- 流量
- 心流是动机、清晰、专注和知识神奇地结合在一起的状态。这是我们效率最高的地方。但是,这可能是一种短暂的状态,通常不需要太多就能让我们脱离心流。
基于对 10,000 个记录的编程会话的分析和对 414 名开发人员的调查,佐治亚理工学院的研究项目发现,开发人员在从中断中恢复工作后,需要 10-15 分钟才能开始编辑代码。当在方法编辑期间被中断时,开发人员只有 10%的机会在不到一分钟的时间内恢复工作。该研究还发现,开发人员在一个完整的工作日中很可能只有一次不受干扰的 2 小时会议。
会议、延期通知和许多其他事情都会打断开发人员的工作流程。开发人员通常管理他们的 IDE 构建工具、Git 工作流和其他工具,为他们的生产力提供最符合人体工程学的设置。理想情况下,这种设置通过减少上下文切换来增加流量。吉拉作为一个可以被个性化以增加流量的工具,常常是难以捉摸的。增加流量的一个方法是自动化。
一致性
吉拉经常被贬低为微观管理和过多过程的工具,但是没有任何过程的团队缺乏一致性。这使得新开发人员很难加入,并增加了出错、额外工作以及无法满足安全性和性能等要求的风险。
建立一致性就是在团队内部建立信任,让他们相信他们正在为同一个目标而共同努力。在团队中建立信任的一个重要方法是持续更新吉拉,但是你需要在不创建繁重流程的情况下建立一致性。繁重的流程需要很多步骤,很多切换,团队成员必须将流程记在脑子里。
建立一致性的关键是自动化。
时间
虽然你实际上不能创造新的时间,但是你可以避免浪费时间更新团队中的其他人,并且可以更有效地利用你的时间。
自动更新吉拉系统节省时间的一个重要原因是它是一个异步过程;你在工作的时候更新它。状态会议对生产力如此不利的原因是,从本质上讲,会议是一个同步的过程。每个参与的人都必须同时参与。这些会议是干扰,他们打破了流动。
如果吉拉已经更新,团队成员可以在自己的时间内简单地检查状态。随着团队开发工作流程的自动化,您将会节省时间。如果自动化让你不用转到吉拉,你就节省了一分钟;但是,如果自动更新吉拉意味着你可以取消电话或会议,你可能也只是为自己节省了一个小时,一整年下来,这是很多时间。
自动化吉拉与吉拉的 Git 集成& Gitkraken
现在让我们看看如何使用 GitKraken Git 客户端进行编辑,使用 Git 集成吉拉在吉拉创建分支并查看提交,从而实现吉拉的自动化。
首先,让我们回顾一下智能提交。智能提交是一种语法,您可以在 Git 提交消息中使用它来指示吉拉做一些事情。您可以记录花费在某个问题上的时间,为该问题添加注释,并使用转换名称在吉拉转换问题状态。例如,您可以将问题从In Progress
移动到Resolved
。
#Time
#Comment
#[Transition]
智能提交的一个很大的好处是它们很简单,几乎可以在吉拉普遍使用,不需要任何设置。缺点是您可以采取的行动有限,并且您需要记住语法和问题转换名称。
以下是使用所有三个命令的智能提交消息的示例:
ABC-123
#comment resolving bug found by Sarah
#time 1h
#resolve
使用智能提交通过 Git 驱动吉拉
首先,你要做的第一件事是在吉拉创建一个分支机构。您应该注意到,吉拉会自动提出一个问题键,这对关联分支很重要,默认情况下,吉拉还会添加摘要。
创建分支后,您应该注意到 UI 右侧分支旁边有一个 GitKraken 图标。点击图标打开 GitKraken 中的相关存储库并签出 Git 分支。
在这里,您可以根据需要进行任何编辑,暂存文件,并添加提交消息。因为这是一个聪明的提交,所以您要做的第一件事就是添加吉拉问题密钥;这就是将提交与吉拉问题联系起来的原因。您还需要添加一些智能提交语法、花费的时间,并标记状态。
接下来,提交您的更改并推送到您的远程存储库。如果你回头看看吉拉,你现在应该会看到这一明智决策的证据。您应该查看提交消息,看看提交是否已经正确关联。
#comment resolving bug found by Sarah
#time 1h
观看此视频剪辑了解如何为吉拉和 GitKraken 创建集成 Git 的智能提交的分步演示。
Using Smart Commits to Drive Jira with Git
To get started, the first thing you’re going to do is create a branch in Jira. You should notice that Jira automatically brings up an issue key, which is important for associating the branch, and by default, Jira also adds the summary.
After you have created the branch, you should notice a GitKraken icon next to the branch on the right side of the UI. Click on the icon to open the related repository in GitKraken and checkout the Git branch.
From here, you can make any edits you wish, stage the file, and add the commit message. Because this is a smart commit, the first thing you’re going to do is add that Jira issue key; this is what’s going to associate the commit with the Jira issue. You will also want to add some of the smart commit syntax, how long it took you, and mark the status.
Next, commit your changes and push to your remote repository. If you look back in Jira, you should now see evidence of that smart commit. You should look at the commit message to see that the commit has been associated correctly.
吉拉自动化
吉拉自动化是捆绑在吉拉云中的一个应用程序,在您的数据中心和服务器上作为一个单独的应用程序提供。根据您的吉拉权限,您应该有权创建和更新您的自动化规则。
触发器是启动规则的原因。条件和分支允许您对规则设置一些限制,而动作是您选择对触发器做的事情。您甚至可以向单个规则添加多个操作。
吉拉自动化支持提交、分支和拉请求来触发自动化规则。吉拉自动化和智能提交之间的一个很大区别是您可以配置的操作数量。有超过 30 种不同的操作,比如转移一个问题,发送一个 web 请求或 Slack 消息,甚至发送一封电子邮件。
自动化对于吉拉规则来说是极其强大的。您只需对它们进行一次配置,就可以采取许多措施将它们连接在一起。一旦配置完成,开发人员就不必记住吉拉问题处于什么状态,或者转换语法是什么;他们只需要记得添加吉拉问题的关键。
记住这一点很重要:吉拉的自动化确实需要设置,根据您对工作流的要求,这可能需要一些时间。同样,自动化对吉拉的一个重要好处是,它不需要任何特殊的语法和提交消息,只需要包括吉拉问题密钥。
在吉拉设置自动化规则
首先,你将从进入吉拉的Project Settings
→Automation
开始。您将被定向到自动化规则库。从这里,您可以点击右上角的按钮Create rule
,开始在吉拉创建一个新的自动化规则。
观看此视频剪辑了解如何在吉拉建立自动化规则的分步演示。
如果您真的想利用吉拉自动化的力量,智能值允许您在检查特定字段后设置自动化规则的运行条件。例如,如果提交了与develop
分支相关的拉请求,您可以运行一个规则。
吉拉自动化与 Git 集成
如果您的提交、分支和拉请求还没有在吉拉,请将它们连接到吉拉,以便快速取胜,并在此基础上进行构建。当您的团队使用 Git 自动更新吉拉时,您将发现更大的流量和一致性,并且您将收回您的时间。而且,你可以避免被要求更新吉拉。💯
It’s important to keep in mind: automation for Jira does require setup, and depending on how thorough you want the workflows, this can take some time. Again, an important benefit of automation for Jira is that it doesn’t require any special syntax and commit messages other than including the Jira issue key.
关于 Adam Wride,BigBrassBand 的联合创始人
早在 2009 年,Adam Wride 就与人共同创立了 BigBrassBand,2012 年,该公司在 Atlassian Marketplace 上发布了第一个版本的 Git Integration for 吉拉工具。他现在是 GitKraken 的规划解决方案总经理,致力于构建一套基于 Git 的生产力工具。
Watch this video clip to see a step-by-step demo on how to set up an automation rule in Jira.
If you really want to tap into the power of automation for Jira, smart values allow you to condition an automation rule to run after checking specific fields. For example, you could run a rule if a pull request is submitted related to the develop
branch.
Automation with Git Integration for Jira
If your commits, branches, and pull requests aren’t in Jira yet, connect them to Jira for a quick win and build on it. When your team is updating Jira automatically using Git, you will find greater capacity for flow, consistency, and you will reclaim your time. And, you can avoid being asked to update Jira. 💯
About Adam Wride, Co-Founder of BigBrassBand
Adam Wride co-founded BigBrassBand back in 2009, and in 2012, the company released the first version of the Git Integration for Jira tool on the Atlassian Marketplace. He is now the General Manager of Planning Solutions at GitKraken working to build a suite of Git-based productivity tools.
吉拉 Git 提示|吉拉 Git 集成
您可以使用针对吉拉的 Git 集成来集成 Git 和吉拉。吉拉 Git Integration 是一款允许用户使用 Git 驾驶吉拉的应用程序。这个吉拉 Git 集成工具允许你花更少的时间在吉拉和 Git 之间切换上下文,而花更多的时间编写和交付优秀的代码。
许多开发团队在他们的常规开发过程中使用 Git 和吉拉来帮助和跟踪项目的进展。Git 主要由团队的技术成员用来为项目贡献代码。另一方面,吉拉通常被技术和非技术用户用来查看和交流项目的状态。
在本文中,我们将介绍使用 Git 和吉拉的各种技巧,这些技巧可以帮助您增强团队对项目的可见性,节省时间,并提高生产率。
本文涵盖的吉拉 Git 技巧
*虽然本文关注的是如何将 Git 用于吉拉云,但本文中提到的许多特性也适用于吉拉服务器和吉拉数据中心。访问 Git Integration for 吉拉官方文档,找到关于吉拉服务器和吉拉数据中心的资源。
https://www.youtube.com/embed/9gizWzapCeI?feature=oembed
视频
如何设置吉拉 Git 集成
创建吉拉 Git 集成的第一步是为吉拉安装 Git 集成。如果您想在购买订阅之前预览该工具,可以选择开始 30 天的免费试用。
一旦安装了针对吉拉的 Git Integration,您就可以通过从您首选的 Git 托管服务连接您的远程存储库来将 Git 连接到吉拉。吉拉的 Git 集成支持所有的 Git 服务器,这意味着你可以集成 GitHub、GitLab、Bitbucket 等等!下面的例子详细说明了如何使用吉拉 GitHub 集成从 GitHub 连接远程存储库。
- 从吉拉的顶部工具栏中,选择
Apps
- 从出现的下拉菜单中选择
Git Integration: Manage integrations
- 点击屏幕中央附近的
Add integration
按钮 - 选择
Git service integration (Recommended)
- 选择
GitHub.com - OAth
或GitHub.com - Personal Access Token
- 点击
Connect GitHub.com
按钮 - 输入您的 GitHub 帐户信息,然后选择
Sign in
以上操作会将您带到一个页面,在该页面中,您可以通过简单地选中所需存储库名称旁边的复选框,将一个或多个存储库连接到 Git Integration for 吉拉。
就这么简单!您现在已经学习了如何将 Git 与吉拉集成,以及如何使用吉拉添加 Git 存储库。
从吉拉票证创建 Git 分支
针对吉拉的 Git 集成允许您直接从吉拉发行创建 Git 分支。你也可能听到人们把吉拉问题称为吉拉问题。虽然吉拉问题是官方术语,但票和问题可以互换使用,意思相同。从吉拉创建 Git 分支是一个过程,可以通过两种不同的方式启动,这取决于您的偏好。
您可以通过使用问题中心的Git Development
面板正下方的Create branch
按钮开始创建 Git 分支的过程。或者,您可以通过选择Details
面板底部的Open Git Integration
按钮,然后选择Create branch
,开始从吉拉创建 Git 分支。无论您使用哪个过程来开始分支创建过程,下面的选项都是相同的,用于从吉拉完成 Git 分支的创建。
- 从
Repository
下拉菜单中,选择您想要在其中创建分支的 Git 库 - 从
Source branch
下拉菜单中选择一个分支 - 吉拉的 Git Integration 会在
Branch name
字段中自动填充一个建议的分支名称。对分支名称进行任何所需的调整 - 点击 C
reate branch
按钮
您可以通过导航到Details
面板,将鼠标悬停在# branch
上,并选择随后出现的Open branch
图标来确认 Git 分支已经成功创建。这将把您带到 Git 托管服务上最近创建的 Git 分支。为了在本地与新创建的分支进行交互,您需要执行一个 Git fetch 或 Git pull 。
禁用从吉拉创建 Git 分支的功能
一些吉拉管理员更喜欢禁用从吉拉创建 Git 分支的功能,以避免非技术用户可能遇到的麻烦。例如,想象一下,如果您团队中的非技术用户无意中创建了 10 个随机的 Git 分支,那么存储库会变得多么混乱。
虽然类似上面场景的错误肯定不是标准,但是如果您不希望用户能够从吉拉创建 Git 分支,您可以很容易地禁用这个特性。要禁用Create branch
选项,遵循以下步骤:
- 从顶部工具栏选择
Apps
- 从下拉菜单中选择
Git Integration: Manage integrations
- 从左侧面板中,选择
General settings
- 向下滚动到
Git Integration Options
标题,取消选择Enable create/delete branch
- 滚动到
General settings
选项的底部,选择蓝色的Update
按钮
从吉拉创建拉式请求
准备好提交您的作品供项目经理审阅了吗?您可以直接从吉拉机票发起拉取请求!
要创建吉拉拉动请求,您可以点击问题中心Git Development panel
的Create pull request
按钮,或者点击Details
面板底部的Open Git Integration
按钮。从那里,选择Create pull request
。就像从吉拉创建 Git 分支的过程一样,您选择哪条路径来发起 pull 请求并不重要,因为后续步骤是相同的。
从Repository
下拉菜单中选择您想要开始提取请求的存储库
从Source branch
下拉菜单中,选择包含您想要合并的变更的分支
- 从
Target branch
下拉菜单中,选择您想要将更改合并到的分支 - 吉拉的 Git Integration 自动使用以下格式填充
Title
字段:将密钥合并<源分支>发布到<目标分支>。如有必要,对提取请求标题进行调整 - 点击
Create pull request
按钮 - 吉拉的 Git Integration 自动使用以下格式填充
Title
字段:将密钥合并<源分支>发布到<目标分支>。如有必要,对提取请求标题进行调整 - 为了验证您已经从吉拉创建了一个拉取请求,导航到
Details
面板,将鼠标悬停在# pull request
上,并选择随后出现的Open pull request
图标。这将允许您在 Git 托管服务上查看 pull 请求。
针对吉拉的 Git 集成允许团队查看与吉拉问题相关的所有 pull 请求的列表,帮助他们保持有组织和按部就班。
禁用从吉拉创建拉式请求的选项
Install Git Integration for Jira
正如一些吉拉管理员可能禁用从吉拉创建 Git 分支的选项一样,他们也可能选择禁用从吉拉创建 pull 请求的选项,以保护存储库免受非技术团队成员的意外更改。通过几个简单的步骤,您可以禁用从吉拉创建拉式请求:
从顶部工具栏中,选择Apps
从下拉菜单中选择Git Integration: Manage integrations
- 从左侧面板中选择
General settings
- 向下滚动到
Git Integration Options
标题,取消选择Enable create pull/merge request
- 导航到
General settings
选项的底部,点击Update
按钮 - 如何建立一个吉拉网钩
- 吉拉每隔 8 分钟就会自动对连接的 Git 库进行重新索引或检查更新。但是,您可以配置吉拉 webhooks,也称为索引触发器,以更频繁地更新吉拉。吉拉 webhooks 可以被设置为当某些 Git 动作发生时自动重新索引存储库,例如 Git 提交或 Git 推送。要在吉拉云中配置吉拉 webhooks,请遵循以下步骤:
从吉拉的顶部工具栏中,选择Apps
从下拉菜单中选择Git Integration: Manage integrations
从左侧栏中选择Indexing triggers
确保通过切换Indexing triggers settings
下方的按钮启用步进触发器
导航到您的 Git 托管服务并选择您想要添加索引触发器的存储库
从顶部工具栏中选择 repo Settings
- 从左侧栏中选择
Webhooks
- 点击右上角的
Add webhook
按钮 - 导航回吉拉
- 复制吉拉网页挂钩的网址
- 在你的 Git 托管服务上,将吉拉的 webhook URL 粘贴到
Payload URL field
- 点击
Content type
,从下拉菜单中选择application/json
- 回到吉拉,复制标题下的密钥
- 导航到您的 Git 托管服务,并将密钥粘贴到
Secret
字段中 - 选择您想要触发吉拉 webhook 的事件,如提交、推送、拉取请求等。
- 点击
Add webhook
按钮 - 在你的 Git 托管服务上,将吉拉的 webhook URL 粘贴到
Payload URL field
- 现在,当您选择的事件(如 Git 提交)发生时,您的存储库将自动重新索引,这要感谢您的吉拉 webhooks。
- 回到吉拉,复制标题下的密钥
- 通过 Git 集成为吉拉节省时间
- 在本文中,我们展示了如何使用吉拉 Git 集成创建吉拉 Git 集成。每次你从吉拉创建一个 Git 分支,从吉拉创建一个 pull 请求,或者创建一个吉拉 webhook,你都在节省宝贵的时间。虽然这可能不会对一天产生巨大的影响,但是这些节省下来的时间会变成几个小时,在你意识到之前,你已经大大提高了你的整体效率。通过为吉拉安装 Git 集成,从今天开始节省时间。
- 点击
Add webhook
按钮
现在,当您选择的事件(如 Git 提交)发生时,您的存储库将自动重新索引,这要感谢您的吉拉 webhooks。
通过 Git 集成为吉拉节省时间
在本文中,我们展示了如何使用吉拉 Git 集成创建吉拉 Git 集成。每次你从吉拉创建一个 Git 分支,从吉拉创建一个 pull 请求,或者创建一个吉拉 webhook,你都在节省宝贵的时间。虽然这可能不会对一天产生巨大的影响,但是这些节省下来的时间会变成几个小时,在你意识到之前,你已经大大提高了你的整体效率。通过为吉拉安装 Git 集成,从今天开始节省时间。
吉拉 GitHub 集成| GitHub+吉拉使用技巧
您可以通过针对吉拉的的 Git 集成来创建吉拉 GitHub 集成。这个工具将允许你使用智能提交,创建分支,直接从吉拉的 GitHub 库上拉请求,用 webhooks 索引库,等等!
由 Atlassian 于 2002 年开发的吉拉是一个项目管理工具,旨在帮助软件开发团队有效地跟踪他们的项目。凭借专为敏捷开发设计的特性,如 scrum、看板、问题跟踪等等,吉拉已经成为许多开发团队技术堆栈中的流行工具。
GitHub 是一个被广泛使用的存储库托管服务,允许开发者在项目上合作。通过在 GitHub 上托管一个远程存储库,团队成员可以在本地对存储库进行更改,将他们的更改推送到 GitHub 上的远程存储库,以及拉取他们的队友添加的更改。
因为同时使用吉拉和 GitHub 可以增加项目的可见性,使团队更容易协同工作,并极大地提高生产力,许多人选择在他们的工作流程中利用这两种工具。在本文中,我们将介绍如何使用 Git Integration for 吉拉来结合吉拉和 GitHub 的力量,并将您的工作流程提升到一个新的水平。
创建吉拉 GitHub 集成
连接吉拉+ GitHub
要开始您的吉拉 GitHub 集成,您需要从 Atlassian market place安装吉拉 Git 集成。如果你以前没有使用过吉拉的 Git 集成,你可以选择开始 30 天的免费试用。一旦安装了 Git Integration for 吉拉,就可以开始将 GitHub 库连接到吉拉实例。要开始连接您的 GitHub 库,您需要使用以下步骤设置 GitHub 集成:
从您的吉拉实例中,选择顶部导航栏中的Apps
- 从随后的下拉菜单中,选择
Git Integration: Manage integrations
- 从页面中央选择
Add integration
按钮 - 选择
Git service integration (Recommended)
- 根据您喜欢的连接方式,选择
GitHub.com - OAth
或GitHub.com - Personal Access Token
- 在
Connect Git service
标题下方,选择蓝色的Connect GitHub.com
按钮 - 输入您的 GitHub 帐户信息,然后选择
Sign in
- 输入您的 GitHub 帐户信息,然后选择
Sign in
您的吉拉 GitHub 集成现在应该完成了。现在,您可以通过选择每个 repo 名称旁边的复选框来连接您的 GitHub 存储库。如果你想把你所有的 GitHub 库连接到吉拉,只需选择你的 GitHub 用户名左边的复选框。
您的吉拉 GitHub 集成现在应该完成了。现在,您可以通过选择每个 repo 名称旁边的复选框来连接您的 GitHub 存储库。如果你想把你所有的 GitHub 库连接到吉拉,只需选择你的 GitHub 用户名左边的复选框。
将 GitHub 库连接到吉拉 Git 集成是安全、快速和直观的!您可以通过一个集成连接一个或多个存储库。
吉拉 GitHub 智能提交
Start Free Trial of Git Integration for Jira
通过利用智能提交,您可以进一步集成吉拉和 GitHub repos。智能提交允许您使用提交消息中的特定语法对吉拉问题执行各种操作。这种针对吉拉的 Git 集成特性有助于开发人员避免在他们的开发工具和吉拉之间进行上下文切换,并为他们提供更多的时间来编写代码。使用智能提交可以对吉拉问题采取的一些操作包括:
添加评论
记录时间跟踪
- 转换到特定的工作流状态
- 将问题分配给团队成员
- 还有更多!
- 只要 Git 配置中的电子邮件与用于吉拉配置文件的电子邮件相匹配,就可以开始对任何连接的存储库使用智能提交。
- 要创建智能提交,请以关联的吉拉问题密钥开始您的提交消息,后跟一个
#
,然后是您要对该问题采取的操作的命令。这里有几个智能提交的例子,您可以立即开始利用:
添加评论
ISSUE_KEY #comment
要创建智能提交,请以关联的吉拉问题密钥开始您的提交消息,后跟一个#
,然后是您要对该问题采取的操作的命令。这里有几个智能提交的例子,您可以立即开始利用:
记录时间跟踪信息
ISSUE_KEY #time [Some amount in Jira time syntax]
*吉拉管理员必须启用此功能,此操作才能生效
记录时间跟踪信息
过渡问题
ISSUE_KEY #
*要使此操作生效,您必须拥有必要的吉拉权限来转换问题
过渡问题
访问 Git Integration for 吉拉的官方文档,了解智能提交可用的更多高级操作。
*要使此操作生效,您必须拥有必要的吉拉权限来转换问题
访问 Git Integration for 吉拉的官方文档,了解智能提交可用的更多高级操作。
您可以从问题的Details
面板查看与吉拉问题相关的所有 Git 提交的列表。您可以在 GitHub 中直接从问题中打开任何相关的提交,这使得快速评估项目状态和审查代码变得容易。
吉拉 GitHub Create 分公司
吉拉 GitHub 集成还允许您创建与吉拉问题相关的分支。要从吉拉发行创建分支,请执行以下操作:
选择一个吉拉问题
点击问题右上角的Show Git development panel
按钮
从Git Development
面板中选择Create branch
按钮
从Repository
下拉菜单中,选择想要创建分支的 GitHub 存储库
从Source branch
下拉菜单中选择一个分支
对
Branch name
字段进行任何所需的更改。您会注意到,吉拉 GitHub 集成会根据问题密钥和摘要自动填充一个分支名称。选择右下角的蓝色
Create branch
按钮从
Git Development
面板中选择Create branch
按钮从
Source branch
下拉菜单中选择一个分支这将在您的 GitHub 存储库中创建一个新的分支,与您从中创建分支的吉拉问题相关联。要从本地项目中处理新创建的分支,只需执行一个
Git pull
。与智能提交类似,您可以在该问题的Details
面板上看到与吉拉问题相关的分支列表。选择右下角的蓝色
Create branch
按钮
吉拉 GitHub 集成:拉请求
使用吉拉 GitHub 集成,您还可以直接从吉拉创建拉请求。按照以下步骤从吉拉问题创建拉式请求:
选择一个吉拉问题
点击问题右上角的Show Git development panel
按钮
从Git Development
面板中选择Create pull request
按钮
从Repository
下拉菜单中,选择想要启动拉请求的 GitHub 存储库
从Source branch
下拉菜单中选择您想要合并的分支
从
Target branch
下拉菜单中选择您想要合并的分支对拉动请求
Title
字段进行所需的调整。吉拉的 Git Integration 自动使用以下格式填充该字段issue key merge to
选择右下角的蓝色
Create pull request
按钮从
Repository
下拉菜单中,选择想要启动拉请求的 GitHub 存储库从
Target branch
下拉菜单中选择您想要合并的分支**恭喜恭喜!**您现在已经直接从吉拉创建了一个拉式请求。您可以通过转到相关的吉拉问题并导航到右侧的
Details
面板来查看您的拉动式请求。在这里,您可以看到有多少个拉取请求与问题相关联,以及每个拉取请求的状态。吉拉 GitHub Webhooks
如果你使用的是吉拉云或者吉拉服务器,你也可以创建 webhooks 或者索引触发器,从远程快速重新索引你的存储库。您可以配置您的 webhooks,以便在执行某些操作(比如 Git commit)时重新索引您连接的存储库。要将 webhooks 添加到已连接的 GitHub 存储库中,请完成以下步骤:
吉拉云的吉拉 GitHub Webhooks
在您的吉拉仪表板上,从顶部工具栏中选择Apps
从下拉菜单中选择Git Integration: Manage integrations
从左侧栏选择Indexing triggers
将indexing triggers enabled
标题下的选项切换到enabled
复制Webhook URL
导航到 GitHub 并选择您想要配置 webhooks 的存储库
从顶部工具栏选择settings
- 从左侧栏中,选择
Webhooks
- 选择右上角的
Add webhook
按钮 - 将你从吉拉复制的 Webhook URL 粘贴到
Payload URL
字段 - 从
Content type
下拉菜单中,选择application/json
- 导航回吉拉并复制
Secret key
- 返回 GitHub,将密钥粘贴到
Secret
字段中 - 选择您想要触发 webhook 的事件,如提交、新分支等。
- 选择绿色的
Add webhook
按钮 - 选择右上角的
Add webhook
按钮 - jira github 服务器 web 手册
- 在您的吉拉仪表板上,从顶部工具栏中选择
Git
- 从下拉菜单中选择
Manage repositories
- 从左侧栏选择
Webhooks
- 为 webhooks 选择
enabled
选项 - 复制
Webhook URL
导航到 GitHub 并选择您想要配置 webhooks 的存储库
从顶部工具栏选择settings
- 从左侧栏中,选择
Webhooks
- 选择右上角的
Add webhook
按钮 - 将你从吉拉复制的 Webhook URL 粘贴到
Payload URL
字段 - 从
Content type
下拉菜单中,选择application/json
- 导航回吉拉并复制
Secret key
- 返回 GitHub,将密钥粘贴到
Secret
字段中 - 选择您想要触发 webhook 的事件,如提交、新分支等。
- 选择绿色的
Add webhook
按钮 - 选择右上角的
Add webhook
按钮 - 通过将吉拉和 GitHub 与针对吉拉的 Git 集成进行集成,释放新的生产力水平,节省自己的时间,并增加团队的可见性。
- 从
Content type
下拉菜单中,选择application/json
- GitHub 吉拉集成–立即开始
- 连接吉拉和 GitHub 可以将生产力和效率提升到一个新的水平。吉拉 GitHub 集成,通过吉拉 Git 集成成为可能,允许你用你的 GitHub 库轻松驱动吉拉。您可以查看与吉拉问题相关的提交和分支的完整列表,直接从相关问题打开提交和分支,消除重复任务,如复制提交消息信息等。
- 选择您想要触发 webhook 的事件,如提交、新分支等。
- 选择绿色的
Add webhook
按钮
通过将吉拉和 GitHub 与针对吉拉的 Git 集成进行集成,释放新的生产力水平,节省自己的时间,并增加团队的可见性。
Start Free Trial of Git Integration for Jira
GitHub 吉拉集成–立即开始
连接吉拉和 GitHub 可以将生产力和效率提升到一个新的水平。吉拉 GitHub 集成,通过吉拉 Git 集成成为可能,允许你用你的 GitHub 库轻松驱动吉拉。您可以查看与吉拉问题相关的提交和分支的完整列表,直接从相关问题打开提交和分支,消除重复任务,如复制提交消息信息等。
吉拉 GitLab 集成| git lab+吉拉使用技巧
集成吉拉和 GitLab 是软件团队简化工作流程和提高团队协作的最佳方式之一。GitLab 和吉拉是追踪项目和开发工作最流行的工具。GitLab 主要是一个托管服务,允许开发团队存储他们的代码。GitLab 于 2011 年首次提交,2021 年注册用户已超过 3000 万。吉拉于 2002 年推出,是使用最多的项目管理工具之一,拥有超过 190,000 名客户。
虽然工程师和开发人员通常在 GitLab 上花费更多的时间,但较少的技术利益相关者经常依赖吉拉来更新状态。在本文中,我们将向您展示如何设置吉拉 GitLab 集成,以便吉拉用户可以看到提交、拉请求、分支等等。通过将 GitLab 和吉拉集成在一起,您将能够更有效地管理您的项目,并为关键利益相关方提供更大的项目可见性。
其中的一个关键部分是理解如何将问题/任务/bug 链接到您的 Git 存储库中的源代码。这种联系对于确保代码变更相对于分配给开发人员的任务的可追溯性和透明性是至关重要的。
集成 GitLab 和吉拉最简单的方法之一是用 Git 集成吉拉。这个顶级的 Atlassian marketplace 应用程序由 GitKraken 构建,可以部署在吉拉云、服务器和数据中心上。它还支持在云中(GitLab.com)或在您自己的基础设施上(GitLab 自我管理)与 GitLab 集成。
将 GitLab 与吉拉整合
连接 GitLab 和吉拉
我们建议专门为集成创建一个 GitLab 用户。通过这种方式,GitLab 用户可以定义执行给定任务的权限。确保该用户有权访问您希望与吉拉集成的存储库。集成的第一步是创建一个个人访问令牌,用于在创建 GitLab 吉拉集成时进行身份验证。
在 GitLab 中创建个人访问令牌的步骤
- 登录 GitLab(例如GitLab.com
- 在右上角选择您的用户资料,然后选择
Preferences
- 在左侧,选择
Access Tokens
- 输入令牌名称以及您希望令牌过期的时间(将此时间设置为未来足够长的时间,以确保集成不会中断)
- 在选择范围下,选择
api
、read_api
、read_repository
和write_repository
- 选择
Create personal access token
- 该页面将更新–将值复制到您的新个人访问令牌下
要继续您的 GitLab 吉拉集成,您需要从 Atlassian marketplace 安装用于吉拉的 Git 集成。像所有的 Atlassian marketplace 应用程序一样,你需要一个吉拉管理员来安装应用程序。一旦安装了 Git Integration for 吉拉,就可以开始将 GitLab 存储库与相关的吉拉项目连接起来。
- 在吉拉的顶部导航栏中,选择
Apps
,然后选择Git Integration: Manage integrations
- 选择右上方的
Add Integration
按钮 - 从选择 Git 托管服务页面,选择
GitLab.com
用于云,或者选择GitLab Server
用于自托管 - 输入您之前创建的个人访问令牌,然后选择
Connect and select repositories
按钮 - 选择您希望与吉拉集成的 GitLab 库,然后单击
Connect repositories button
在这一点上,该应用程序将索引您的存储库,并使它们可以在吉拉查看。
将 GitLab 与吉拉问题联系起来
要在 Git 提交和吉拉问题之间建立联系,开发人员必须在其提交消息中包含吉拉问题密钥。
Git 提交消息示例:GIT-4322 – Updated the plugin …
在这种情况下,GIT-4322
是将提交消息链接到吉拉问题的吉拉问题密钥。只有当主分支没有提交时,才包含属于非主分支的提交。
作为处理子任务时的最佳实践,将父任务和子任务吉拉发布键放在提交消息中,以便提交在两个地方都显示。这样,子任务的提交就不会在父问题的多次提交中丢失。
在吉拉创建 GitLab 分公司
在您的吉拉云实例上,打开一个吉拉问题。在吉拉 Git 集成开发面板上,点击Open Git integration
,然后点击Create branch
。这将打开一个对话框,可以在其中创建分支。
- 从列表中选择一个存储库。
- 下拉列表中显示了所有存储库的 git 主机服务徽标,以便于识别它们属于哪个 git 服务。
- 如果有几个存储库具有相同的名称,列出的 GitLab 存储库的名称将带有 GitLab 所有者名称。比如 John Smith/second-web hook-test-repo。
- 使用下拉列表中的搜索框过滤显示的存储库。
- *可选-将存储库指定为当前吉拉项目的默认选定存储库。
- 选择一个
Source branch
。- *可选-将分支指定为当前选定存储库的默认选定分支。
- 输入一个
Branch name
或保持原样(推荐)。 - 点击
Create branch
完成该过程。
新创建的分支现在与开发面板中Branches
下列出的吉拉问题相关联。对新创建的分支执行 commit,为合并做好准备。
在吉拉创建 GitLab 拉取请求
要从吉拉发行创建拉请求,打开所需的吉拉发行,选择吉拉 Git 集成development panel
,点击Open Git integration
,然后点击Create pull request
。这将打开一个对话框,可以在其中提出合并请求。
- 从列表中选择一个存储库。
- 下拉列表中显示了所有存储库的 git 主机服务徽标,以便于识别它们属于哪个 Git 服务。
- 如果有几个存储库具有相同的名称,列出的 GitLab 存储库的名称会附加一个 GitLab 组名。比如 BigBrassBand/second-web hook-test-repo。
- 使用下拉列表中的搜索框过滤显示的存储库。
- *可选-将存储库指定为当前吉拉项目的默认选定存储库。
- 选择新创建的分支作为源分支。
- *可选-将分支指定为当前选定存储库的默认选定分支。
- 将 main 设置为目标分支。
- 输入描述性标题或保持不变(推荐)。
- 点击
Create pull request
完成该过程。按照 PR 的链接进行设置,以供审查和批准。
即使 MR 标题没有吉拉发行密钥,只要分行名称包含吉拉发行密钥,合并请求仍然基于分行名称进行索引。预览允许您查看所选源分支与目标分支(通常是主分支)中当前变更的比较视图。
吉拉 GitLab Webhooks
默认情况下,存储库会按固定的时间间隔重新编制索引。如果你想让吉拉实时反映 GitLab 的更新,你必须设置 Webhooks。要将 webhooks 添加到您连接的 GitLab 存储库中,请完成以下步骤。
- 在吉拉,从顶部导航栏中选择
Apps
,然后选择Git Integration: Manage integrations
- 选择要添加 webhooks 的 GitLab 集成
- 在左侧,选择
Feature Settings
- 复制
Indexing triggers
下的网址
接下来,我们需要去 GitLab 完成集成。
- 在 GitLab 中,从您的项目中选择
Settings
,然后选择Webhooks
- 粘贴您之前复制的 URL
- 在
Trigger
下,选择Push events
、merge request events
和Enable SSL verification
- 选择
Add webhook
您的 webhook 现已创建。与吉拉问题相关联的提交、分支和合并请求现在将在吉拉问题中实时可见。
您的 webhook 现已创建。与吉拉问题相关联的提交、分支和合并请求现在将在吉拉问题中实时可见。
吉拉 GitLab 集成优势
将 GitLab 与吉拉集成对个人开发者和关键利益相关者都是有益的。通过弥合开发运维与项目管理工具之间的差距,团队成员可以获得更多的信息和更高的效率。
将 GitLab 与吉拉集成对个人开发者和关键利益相关者都是有益的。通过弥合开发运维与项目管理工具之间的差距,团队成员可以获得更多的信息和更高的效率。
开发人员的主要优势
**更少的管理工作:**使用智能提交和吉拉自动化来更新吉拉,这样您就不需要改变您的工作流程,并且在吉拉花费的时间也更少。
- **更少的特别状态更新:**开发涉众知道你何时创建分支,何时提交,然后是拉请求。给他们想要的可见性,而不增加你的工作量。
- **少上下文切换:**留在你的流程里,专注编码。如果你必须去吉拉,你的回购协议托管服务提供商的链接可以让你轻松过渡。
- **少上下文切换:**留在你的流程里,专注编码。如果你必须去吉拉,你的回购协议托管服务提供商的链接可以让你轻松过渡。
项目和产品经理的最大收益
**更高的可见度:**开发活动不一定要成为吉拉的黑洞。通过与吉拉问题和项目一起呈现的上下文数据,轻松了解 Git repos 中发生的事情。
- 更干净的吉拉:减少开发人员手动更新吉拉问题的需要。利用吉拉自动化和智能提交来转换问题状态、受托人等,而无需手动干预。
- **更好的计划和警告系统:**问题在没有提交和合并的情况下关闭?轻松标记应该有活动但没有的问题。
- **更好的计划和警告系统:**问题在没有提交和合并的情况下关闭?轻松标记应该有活动但没有的问题。
Zoe Bachman 的 Codecademy 学习 Git
https://www.youtube.com/embed/BxN4R8-vZ1w?feature=oembed
视频
Git 的学习曲线可能会很长。许多学习过 Git 的开发人员回忆起这个过程,包括来自经验丰富的同行的长时间指导,艰苦的命令记忆,有时在午休时对着他们的 Chipotle 哭。学习 Git 不一定要这么打击士气。事实上,有一些很棒的工具可以帮助你以交互的方式学习 Git。Codecademy 就是这样一个工具,它可以帮助你成为一名 Git 大师。
Codecademy 以其交互式学习环境而闻名,是一个在线学习平台,为开始学习如何编码的人提供可访问的技术教育。除了一些更知名的课程,如学习 Git 、Python 和 HTML,Codecademy 还提供技能路径,教用户如何培养工作技能。
GitKraken Git 客户端的传奇用户界面使学习 Git 变得更加直观,包括拖放操作、增强对存储库的可视化洞察、有用的键盘快捷键等等。
代码学院课程设计
Codecademy 使用基于学习科学的特定教学框架来提供最佳的教育体验。
Codecademy 依赖的主要框架被称为五步系统,或 5s 系统。5s 系统包括以下内容:挂钩、新材料介绍、引导练习、独立练习和评估。
钩子
钩子意味着立即抓住学习者的注意力;它通常很短,很吸引人。在 Codecademy 上,挂钩可能是一个视频,一篇交互式文章中的动画,或者只是一个关于学生正在开始学习的编码语言的真正有趣的事实。
The hook is meant to immediately grab a learner’s attention; it’s usually very short and engaging. On Codecademy, the hook might be a video, animations in an interactive article, or just be a really interesting fact about a coding language a student is starting to learn.
新材料介绍
Codecademy 通常在屏幕的左侧面板上用简短的书面叙述介绍新材料。这是学生选择课程后通常阅读的第一件事。
Codecademy usually introduces new material with a brief written narrative on the left-hand panel of the screen. This is the first thing that students typically read once they’ve selected a lesson.
引导练习
在传统的课堂上,一旦老师解释了一个概念,他们通常会走一遍这个概念,并将其应用于学生。Codecademy 用他们所谓的检查点复制了这一点。在学生阅读完练习中的叙述后,他们会看到一个知识检查任务。用户必须通过编写代码然后运行代码来完成任务。
Codecademy 针对学生的代码运行一系列测试,以验证他们是否成功完成了任务。如果他们没有成功完成任务,Codecademy 会向他们提供反馈,帮助他们重新编写和运行代码。
Codecademy runs a series of tests against the student’s code to verify whether or not they completed the task successfully. In the event that they do not successfully complete the task, Codecademy provides them with feedback to help them rewrite and run the code again.
独立执业
独立实践为学生提供了一个在没有老师指导的情况下自己动手的机会。起初,可能会以提示或项目演练视频的形式为学生提供一点指导,但随着他们进入高级课程,他们得到的指导越来越少。
评估
就像听起来一样,评估步骤旨在确定学生是否正确地学习了课程材料。Codecademy 在学习结束时使用分级测验来确定您对所学内容的掌握程度。以前,如果用户没有通过某个单元或课程,他们就不能进入下一课。虽然这种情况已经不再存在,但测验失败通常是一个很好的迹象,表明你需要在继续前进之前继续完善相关主题的知识。
Evaluation
实施五步法
现在,让我们看看 Codecademy 的 5s 系统原则在他们的 Learn Git 课程中的实践。
如果学生试图确定是否要参加 Codecademy Learn Git 课程,登录页面概述将提供以下信息:为什么有人应该参加该课程,需要多少小时,是否有任何先决条件,外卖技能,完成后获得的认证,以及有多少人参加了该课程。
Now, let’s see Codecademy’s 5s System principles in practice in their Learn Git lesson.
If a student is trying to determine whether to take the Codecademy Learn Git course, the landing page overview provides information about why someone should take the course, how many hours are required, if there are any prerequisites, take-away skills, certifications received upon completion, and how many other people have taken it.
学习 Git 课程大纲提供了课程模块的分类,包括课程、项目、阅读和测验。
The Learn Git course syllabus provides a breakdown of the course modules including, lessons, projects, readings, and quizzes.
下面,你可以看到 Codecademy 上的学习环境,它显示了一个叙事面板,后面是检查点,概念审查,以及右手边的文本编辑器。
Below, you can see the learning environment on Codecademy, which shows a narrative panel, followed by checkpoints, concept review, and a text editor on the right hand side.
注意叙述面板中的“呼”( hoo)k,它用一个古怪的哈利波特引用吸引了你的注意。
Notice the hook in the narrative panel where it grabs your attention with a quirky Harry Potter reference.
接下来,你可以看到第一个检查点。这就是引导练习原则发挥作用的地方。
在这种情况下,课程要求学生查看剧本项目,并将其添加到右侧的文本面板中。学生将打出答案并运行代码;该程序将对代码进行测试,一旦通过,学生就可以继续学习了。
Next, you can see the first checkpoint. Here is where the guided practice principle comes into play.
In this case, the lesson asks the student to look at the screenplay project and add it to the text panel on the right. The student will type out the answer and run the code; the program will run tests against the code and once it passes, the student can move on.
如果学生在练习中出错,他们将收到错误通知。Codecademy 会提供一个错误信息,有时还会提供一些提示,但是学生只有在做对了之后才能继续学习。
If the student makes a mistake in the practice, they will receive an error notification. Codecademy will provide an error message and sometimes a few hints, but the student won’t be able to move forward until they get it right.
Codecademy 还提供社区论坛和备忘单,可以从学习环境的左侧访问。这些资源可以显示其他人是否有类似的问题,可以提供关于如何完成任务的提示,并允许学生提出新的问题。
Codecademy also offers community forums and cheat sheets which can be accessed from the left hand side of the learning environment. These resources can show whether others have had similar issues, may provide hints about how to complete the task, and allow the student to ask new questions.
用终端学习 Git
在 Codecademy 的 Learn Git 课程的下一个练习中,学生将看到一个 Git bash 终端。在这里,学生有机会练习 Git 命令。这代表了新材料的介绍,并立即呈现应用新 Git 概念的指导练习*。*
Learning Git with the Terminal
无论使用 GUI 还是 CLI 学习 Git 对您来说更自然,GitKraken Git 客户端都提供了最好的两个世界,因此您可以创建最佳的工作流。
在这个 Codecademy learning Git 环境中,学生需要与多个领域进行交互,以完成要求的任务。Codecademy 使得在学习环境中同时运行多达三个不同的组件成为可能。
In this Codecademy learning Git environment, there are multiple fields a student will need to interact with in order to complete the required tasks. Codecademy makes it possible to have up to three different components in the learning environment running at once.
Codecademy 创建了一种模式,在引入更高级的独立练习作业之前,在整个 Learn Git 课程中,先进行内容介绍,然后进行交互式知识检查任务。
Codecademy creates a pattern of content introduction followed by interactive knowledge check tasks throughout the Learn Git course before introducing more advanced, independent practice assignments.
当学生继续进行独立实践项目时,它们看起来与前面的课程非常相似,只有一个主要区别:Codecademy 不针对代码运行测试。学生可以简单地保存代码,而不是运行代码。由用户决定是否选中项目框。
这里有一个在代码学院评估步骤中期望什么的例子。每节课都会根据学生所学的内容生成一系列评估。如果学生回答不正确,正确的答案将会突出显示,并简要解释为什么这是正确的选择。
When the student moves on to the independent practice projects, they will look very similar to the previous lessons, with one major difference: Codecademy doesn’t run tests against the code. Instead of running the code, the student can simply save it. It’s up to the user to check and uncheck the project boxes.
Here’s an example of what to expect in a Codecademy evaluation step. Each lesson generates a series of assessments based on what the student has learned. If students answer incorrectly, the correct answer will be highlighted along with a brief explanation as to why it’s the correct choice.
学习 Git 的挑战
一般来说,学习 Git 可能真的很难,尤其是对于初学者。有一个过渡过程,你必须开始像计算机一样思考,这可能需要相当长的时间。当您遇到第一个主要障碍时,学习 Git 最常见的挑战就来了。许多新开发人员变得气馁,有些人甚至放弃了。如果你坚持下去,坚持通过最初的考验,你会没事的。
Challenges of Learning Git
GitKraken Git 客户端提供的可视化环境揭示了 Git 的本质,使得立即处理初级和高级操作变得更加容易!
当你利用所有可用的工具时,学习一个新概念或新技能会变得容易得多。如果你想更快地学习 Git,下载 GitKraken Git 客户端,现在有了 GUI 和 CLI !GitKraken 使得用 Git 学习和编码的过程更容易、更安全、更强大。
Learning a new concept or skill becomes much easier when you utilize all the tools available to you. Download the GitKraken Git Client, now with a GUI and CLI, if you want to learn Git even faster! GitKraken makes the process of learning and coding with Git easier, safer, and more powerful.
用 GitKraken 学习 Git
我已经在 Axosoft 工作了将近两年,当我开始工作的时候,GitKraken,该公司的 Git GUI(T1)是如此的新,以至于它还处于私人测试阶段。在营销团队工作时,主要是在 web 项目上,我需要协同工作并每天使用 Git。
我以前使用过 Git,但是在 Axosoft 之前,我是一个单独的 web 团队,这意味着我很少(如果有的话)在项目中与其他开发人员合作。因此,我的 Git 知识范围是git status
、git commit
,并且,当我感到无礼时:
git commit -a -m 'look at me condensing my actions into one command like a big boy.'
正当我写这篇文章的时候,我刚刚读完 Avdi Grimm 的一篇博客文章(碰巧引用了 GitKraken),他在文章中提出了一个我从未真正考虑过的观点:
多年来,我学到的一个困难的、有时令人沮丧的教训是,在软件中,实际上增加你的杠杆作用的技能和只是让你感觉更聪明的技能之间有一条细微的界限。
– Avdi Grimm, Having the appearance of good design
来自命令行的 Git,对我来说,实现了后者;当使用 Git 的 CLI 时,我可以执行简单的命令,让我觉得我正在做一些强大的事情,也许我正在做一些强大的事情,但事实是,我真的不知道我在做什么。我理解了一些基础知识,但是除了这些简单的命令之外,我对任何东西都没有一个很好的概念理解。阅读 Git 激起了我足够深入的兴趣,但是我遇到了一个障碍,开始觉得无法学习。
当我开始使用 Axosoft 时,我们被要求使用 GitKraken,因为 a) Axosoft 相信这个产品,相信它的性能有多强(甚至在应用程序开发的早期阶段也是如此);b) Axosoft 希望整个公司的开发人员对应用进行测试,并识别 bug、UX 问题等。
所以,我用了 GitKraken,我第一次真正协作地使用了 Git。我不仅开始习惯快速完成任务,而且开始真正理解这些任务是如何工作的。过程变得更简单了,我的工作效率大大提高了,而且我终于有了一个我觉得自己可以理解的 Git 的可视化表示。
合并 vs 重置
这是一个很好的例子,也是我最满意的“啊哈!”瞬间,是合并和重置。合并是一个非常容易理解的概念:你取一个分支,合并到另一个分支,目标分支现在有两个分支的变更。直到我真正看到这个过程,我才明白这是由合并提交促成的。要理解为什么这在协作环境中有用,最好用一个例子来解释。
在下面的示例设置中,我有一个分支和master
。这个设置举例说明了一个常见的情况:我已经分支了master
,做了一些更改,但是还没有完成分支上的工作。与此同时,master
已经发生了变化,我发现这些变化对我的部门很有用。
我有两个选择:我可以把master
合并成branch-from-master
,或者我可以把branch-from-master
换成master
。前者完全是非破坏性的,并且会留下过程的痕迹:
然而,很容易看出,当你周围发生大量更新时,频繁地应用这种方法,保持整洁会变得多么困难。为了避免合并提交这种潜在的概念混乱,一个朋友推荐我改改基。
哇哦。我真的能看出区别,这是有道理的!master
的变化已经被槽进了branch-from-master
,好像我在那个分支,还有master
的变化,都是在我一个分支上进行的。master
仍然保持提交不变,但是好像这些提交是同时在两个分支上进行的。
虽然这种方式没有合并的痕迹,但它让每个人的回复看起来都很干净,历史记录更容易遍历和解释。我们确实重写了提交历史。
这就是为什么,当要按我的分支时,它告诉我我在遥控器后面。我可以看到我是如何改写那个分支的历史的,所以我可以理解为什么在这种情况下对我的遥控器使用force push
是可以接受的。我也想在那里反映出历史的修正,所以我必须变得有点破坏性。然而,我现在也能理解为什么会有重定基准的黄金法则。
使用 GitKraken 为我提供了一种学习一些 Git 基础知识的可视化方法,这让我在协作使用 Git 时更有能力和信心。使用 Git 的 GUI 允许我从知道如何和何时做某事,到知道为什么和它实际在做什么。
水中的墨滴:制作 Axosoft GitKraken.com 的视频背景
原文:https://www.gitkraken.com/blog/making-axosoft-gitkraken-coms-video-background
简介
当人们在 Axosoft 的GitKraken.com页面上看到这个漩涡状的水下世界时,他们会以为我们去深海潜水捕捉镜头了。这就是我们的意图:创造一个完整的、抽象的世界——一个海怪可能出没的世界——来介绍我们新的 git 客户端(这并不糟糕)。“墨水滴在水里”是这个视频背景的名字,人们看完之后总会问两个问题,“你是如何制作这些视频的?”,以及“你是如何说服你的公司让你这么做的?”
https://www.youtube.com/embed/jQ2aN9aC9o4?feature=oembed
视频
当我们向我们的首席执行官劳丹·肖耶提出这个想法时,她说,“去吧!”最初,她要求我们的创意团队(贾斯汀·罗伯茨、克里斯蒂娜·洛佩兹和我自己,谢恩·D·雷默)想出一些“完全不同”的东西来帮助营销我们新产品 Axosoft GitKraken ( GK )的测试版。劳丹的积极回应并不令人惊讶,因为在 Axosoft,我们不怕冒险,事实上,这是我们公司价值观 的 之一。对我们来说,创作原创艺术品不仅是一种明智的冒险,因为它反映了我们对客户的真诚和信任,而且也展示了我们对 STEAM 领域“艺术”的支持,这是一项我们对充满热情的教育计划。
**如果有些公司对艺术品有戒心,可能是创意难以把握,结果不明。或许那时,对创造性工作的过程和影响的更好理解,会鼓励公司承担更多的创造性风险。我希望分享我们是如何创作“水中的墨滴”视频的,让你对创作过程有所了解,也启发一些想法。你甚至可能想要 加入我们的团队 !
概念和发展
我们从学习 Git 和与 GK 一起工作开始(我们,我的意思是克里斯蒂娜和我,因为贾斯汀实际上是 T2 GK T3 的 UX 设计师)。一个引人注目的东西是彩色的图表。
吉克拉肯图详情
该图是 GK 的核心,因为它以一种新鲜清晰的方式展示了版本历史。我们知道我们想做一些类似的视觉和动态的东西。我们以神话中的鱿鱼兽为主题,想出了水中墨的主意。在对这种介质进行实验后,我们发现墨水在水中流动时会产生错综复杂的分支。
蓝墨水在水中的初步试验
我们还观察到,当不同的墨水混合时,图案就会出现。这些领域颜色的混合是对 版本控制 的完美比喻。我们的想法是创建一种新的方式来理解基本的 Git 操作,如:推、拉、提交和合并,以及色调在空间和时间中的演变。
测试期间收集在容器侧面的墨水
预生产
一个空间,这就是我们所需要的,也许还需要一些墨水。在 Axosoft,我们有称为“灵活空间”的空间,可以用于我们需要的任何东西。我们把其中一间改成了临时工作室。
将灵活工作室改造成制作工作室
我们搭了两张桌子,一张用来放材料,另一张用来拍摄。我们每个人都带来了一些玻璃容器,从圆柱形花瓶到球形碗,但最终,我们的主要容器是一个放在便携式产品光工作室下面的小鱼缸。我对这个项目特别兴奋,因为 Axosoft 刚刚为我购买了一台松下 Lumix GH4 相机,用于我的视频项目(是的,我是一个视频迷,是的,Axosoft 为我们提供了最好的设备,所以我们可以做最好的工作)。GH4 可以以 100 Mbps 的速度捕捉 Cinema4k(宽 4096 像素,高 2160 像素)素材!从我们的测试中,我知道景深会很浅,我们需要一种方法来精确对焦。此外,我们三个人需要实时观看镜头,而不必挤在相机背面的 2.5 英寸液晶显示器周围。解决方案是从摄像机向高清显示器传输视频。对于我们的拍摄设置,我们使用金属标尺上的刻度来表示焦点和深度。在下图中,你可以在监视器中看到我们被放大到大约一英寸的垂直跨度。
弹性房间生产空间
虽然我们对如何拍摄墨水有一些想法,但我们用一些基本的液滴进行了实验,以获得墨水如何移动的大致想法。
克里斯蒂娜用紫墨做实验
我们描绘了不同种类的运动,并考虑了帧速率和构图。
贾斯汀(左)和谢恩(右)讨论如何拍摄墨迹
一旦我们有了所有的材料和设备,我们就准备开始视频捕捉。
生产
有如此多的因素可以结合起来,创造出无限多种多样的镜头,例如:容器的形状,冷水与热水,静水与动水,墨水的颜色和类型,墨水注入的方式,照明,构图,帧率,角度,镜头类型,焦点…如此多的可能性,真是令人兴奋!所以,我们就一头扎进去了。我按下录音按钮,贾斯汀往水里加了一滴蓝色墨水。
贾斯汀滴第一笔记录墨水
Justin drops the first recorded ink
我们从下面拍摄,这样我们可以看到水面的底部,以及它实际上是如何落入水中的。很酷,但对我们的帧率来说太快了。
第一滴墨水的实际镜头的一帧
A frame from the actual footage of the first drop of ink
我们花了接下来的 4 个小时拍摄,制作了大约 120GBs 的 4k 镜头。下面的一系列图像显示了我们将墨水添加到水箱的侧面,并在墨水慢慢滴落时进行拍摄。我们喜欢条纹,所以我们拍摄了 15 分钟的效果。
谢恩将墨水滴入墨罐
Shane drops ink into the tank
前一幅图像中捕获的视频帧
A frame from the video captured in the previous image
我们会观察监视器,以决定我们是否应该继续某个特定的方向,或者我们是否应该停下来尝试一些不同的东西。
贾斯汀和谢恩讨论下一步该做什么
Justin and Shane discuss what to do next
在两次注射之间,我们必须彻底冲洗水箱,擦干,并确保水箱没有指纹。然后,我们会重新装满水箱,小心翼翼地将其放回演播室灯光下。这个过程实际上是冲洗和重复。
In between shots, we would have to wash the tank out completely, dry it, and make sure the tank was free of fingerprints. Then, we would refill the tank and carefully place it back under the studio lights. This process was literally rinse and repeat.
后期制作
我花在后期制作上的时间是制作上的三倍,老实说,我可以写一篇关于我如何编辑视频的博客。但最重要的是,一旦镜头被捕获,我就把它转移到一个驱动器上,然后导入 Adobe Premiere。我把最好的镜头剪辑成了一个 12 分钟的视频。我们回顾了这个长视频,然后我根据那些最好的镜头重新剪辑了它,结果是大约 1.5 分钟的视频。
我在 Adobe Premiere 的工作区
My workspace in Adobe Premiere
接下来,我使用 Motion 5 合并了运动图形,在基本 Git 命令和墨迹之间绘制了隐喻连接。例如,当墨水旋转时,颜色会水平混合,这与一个分支与另一个分支合并时发生的情况非常相似。我把那段视频和“合并”一词的排印组合在一起,混合了色差。
最终视频的一帧
A frame from the final video
因为图形实际上是向上的,所以我垂直翻转了视频片段,这样墨水看起来是在逆着重力方向移动,这给运动增加了一种有趣和意想不到的动力。使用来自 GK 用户界面的元素,我在一个“拉请求”和一个墨水点之间建立了一个联系。
我的工作区在动 5
My workspace in Motion 5
我继续绘制 Git 概念、 GK 用户界面元素和墨水镜头之间的隐喻联系,直到视频完成。
分布
这个过程的最后一步是将视频连接到网站。为此,我不得不把镜头缩短到 30 秒左右。4096 像素乘 2160 像素的 Cinema4k 素材被调整为. mp4,略低于 1280 像素乘 720 像素,这将加载大小减少了 85%。
Distribution
就这么定了!
感谢您阅读我们如何为 Axosoft 的 GitKraken.com 的背景创建视频。将该项目作为一个循环 4k 视频进行检查。同样,我希望它能激发一些想法,鼓励你承担更多的设计风险。如果你想在 Axosoft 和我们一起承担一些创造性的风险,我们一直在寻找有才华的人来“在宇宙中留下印记”,所以请查看我们的空缺职位。
That’s a Wrap!
Thanks for reading about how we created the videos for Axosoft’s GitKraken.com’s background. Check out the project as a looping 4k video. Again, I hope it inspires some ideas and encourages you to take more design risks. And if you’d like to take some of those creative risks with us at Axosoft, we’re always looking for talented people to make a “dent in the universe” with, so check out our available positions.**
客户端管理 101 |开发人员应对棘手客户的基本技巧
原文:https://www.gitkraken.com/blog/managing-difficult-clients
本文由客座作者 Nahla Davies 撰写。Nahla 自 2010 年以来一直在软件领域工作,自 2019 年以来一直是一名技术作家。她曾在一家拥有 5000 家公司的体验式品牌机构担任首席程序员,该机构的客户包括三星、时代华纳、网飞和索尼。
大多数时候,与客户一起创建、改进或增强软件是一种很好的体验。您可以测试您的技能,并创建独特的解决方案来改善人们的工作流程和生活质量。
然而,有时候和客户一起工作会失去控制。例如,客户可能会在最后一刻提出要求,从而打乱项目的时间表,并将范围扩大到开始时商定的范围之外。这篇文章将通过更有效的沟通和知道如何以及何时说不,给你管理复杂情况的工具。
确定利益相关者
研究表明,只有 50%的软件开发项目在预算范围内按时交付。那是因为软件开发需要仔细的计划和对细节的关注。确定关键利益相关者是计划和发现过程的必要组成部分,因为利益相关者在项目成功与否中扮演着重要角色。
虽然对于如何维护客户和利益相关者的关系没有明确的标准化指导方针,但有办法确定范围并明确参与产品开发和发布的各方的责任和期望。然而,在一个给定的项目中识别关键的涉众并不总是容易的。
软件开发中有许多不同类型的利益相关者:
团队成员、经理和高管等内部利益相关者
- 外部利益相关者,如客户、投资者和供应商
- 最终用户,如直接使用软件的用户、依赖软件产品的用户以及受软件影响的其他用户
- 软件开发人员和项目构建团队
- 公司联络人、项目经理和业务分析师
- 合作伙伴和监管机构
- 虽然帮助客户和利益相关者从开发的角度理解项目是有挑战性的,至少可以说,记住,每个参与的人都希望项目成功。你会发现,当你花时间与利益相关者合作时,你的项目更有可能成功并顺利运行。
管理难相处的利益相关者和客户的策略
利益相关者和客户希望你的产品是最好的,你也一样。但有时这会导致挑战性的对话,给商业关系带来压力。这里有一些建议可以帮助你与难相处的利益相关者和客户打交道,避免进一步的冲突:
管理难相处的利益相关者和客户的策略
确定需要更多关注的客户和利益相关者
一些涉众比其他人更有可能提出软件开发项目的问题。不管他们是对时间、进度还是其他细节不满意,这些人都会在整个项目过程中给你带来最大的压力。尽早注意这些客户和他们的具体关注点。在与他们打交道的时候,你要期望扮演一个更实际的角色,并计划让他们随时了解情况。
冷静
与难缠的客户打交道时,最具挑战性的事情是在受到攻击时保持冷静。可能会有利益相关者变得激动并通过他们的语言和语气表达出来的情况。重要的是保持冷静、沉着和镇定并保持对局势的控制。在这种时候保持冷静并不意味着软弱,它实际上向客户展示了你同样坚定的意志、能力和信心,相信项目会按照他们的期望完成。
倾听并理解他们的动机
处理与客户富有挑战性的对话的最好方法是倾听并理解他们的观点。虽然他们可能在紧张的谈话中没有清楚地表达他们的需求,但仍然有机会听他们说完,并了解是什么导致了他们的挫折。确定问题是什么,是什么促使他们在项目中出现问题,然后你可以和他们一起创建一个对所有相关方都有效的游戏计划。
及时做出回应
尽管与利益相关者和客户进行艰难的对话可能会令人不舒服,但当问题出现时,软件开发人员和项目经理迅速做出反应是至关重要的。尽快沟通,明确他们可能存在的任何顾虑,但不要止步于此。在你想出一个游戏计划后,马上开始工作。快速回应向利益相关者表明你认真对待他们的关注,并将尽一切努力满足他们的期望。
坚定而有礼貌
虽然关键的涉众应该在重要的项目细节上有发言权,但是他们并不总是像开发人员和项目经理那样拥有完全的可见性。因此,他们的输入可能会将项目引向错误的方向。你不必同意你的客户对一个项目所说的一切。必要时,冷静而尊重地提出异议,并帮助他们从你所在组织的角度看待问题。如果能以数据佐证自己的立场就更好了。
及时做出回应
更有效地与客户和利益相关者沟通
虽然有时可能很难让客户和利益相关者满意,但有一些方法可以通过更有效的沟通来应对具有挑战性的对话:
Be Firm and Polite
从一开始就设定明确的期望
无论项目的规模或范围如何,在规划的早期阶段,一定要为客户和利益相关者设定明确的期望。如果一开始就没有明确预期,客户的要求可能会失控。
为了确保你的团队不会贪多嚼不烂,导致更多的问题,正确管理他们的期望是至关重要的。开发人员需要创建客户合同,说明项目的范围和任何细节或请求,这样他们就不会在项目即将完成时被迫添加全新的功能。
变得具体
开发人员可以更有效地与客户沟通的另一种方式是询问他们希望在最终的可交付产品中看到什么以及在项目结束时他们绝对不能容忍什么的具体例子。
当他们为项目提供标准时,比如“时尚和现代的设计”,要求提供例子或者给他们展示你自己的例子,这样他们就可以准确地指出他们想要什么。你可能会了解到,它们实际上并不意味着现代,而是可能想要一个更简约的设计。确保你的两个定义相匹配,以避免令人沮丧的返工和使客户心烦意乱。
设定现实的截止日期
截止日期和里程碑是软件开发人员和他们的客户之间的一个常见的挫折来源。这个问题有两个方面:第一,客户可能无法理解为什么特定的最后期限不能被满足;第二,开发人员和项目经理可能没有清楚地沟通某些任务和里程碑需要多长时间。
满足客户的需求很重要。但是过于激进地设定最后期限会导致对时间表的失望,更糟糕的是,会导致需要在以后补救的错误或遗漏。设定现实的截止日期,帮助客户理解在你们商定的截止日期中起作用的工作和时间框架。如果一个项目看起来可能比最初商定的时间要长,那就尽早公开地与你的客户沟通。
经常交流
沟通可以决定一个项目的成败。虽然与难缠的客户频繁沟通并不是开发人员期待的有趣事情,但管理预期并让他们对进展感到满意是必不可少的。你不必每天都检查,但是对于需要更多关注的客户来说,每周一次的交流通常是可以接受的。这有助于双方保持一致,并让客户放心,你的公司是在项目的顶部达成一致。
保持客观
记住要保持客观的观点,尽管在处理具有挑战性的对话时可能会出现任何个人情绪。保持富有成效的对话的一个方法是用基于数据的客观事实来回应客户的关注。向他们展示展示项目进展的报告,以及开发人员控制之内或之外的任何挫折的文档。很难用事实和数据来反驳,所以当对话升级时,坚持数据。
说“不”
有时候,利益相关者的要求根本不可能。大多数项目都包括一些在整个过程中需要讨论的变更,但是如果客户要求一个超出项目商定范围的重大变更,那么可以说不。
这似乎有悖常理,因为我们许多服务相关行业的人都被教导“客户永远是对的”,但事实并非如此。在这种情况下,软件开发人员和项目经理是专家,所以由您来管理期望,并让您的客户知道他们的请求何时不可行。
在业务关系开始时,以书面形式确定范围和项目细节,以避免范围爬行。当他们提出没有包括的额外添加时,你的推理要清晰,并从软件开发人员的角度向他们解释后果。
客户和利益相关者可能不理解“简单的请求”需要额外的资源或时间来完成。此外,他们可能不知道他们请求的变更超出了项目范围。保持冷静,礼貌地帮助他们理解为什么你不能在合同签署后更改合同条款或增加额外功能。不是每个客户都很难相处,尤其是当你运用本文中概述的策略时。我将留给你最后一个技巧,它将帮助你为你的下一个项目找到最佳前景。
并重复
不是每一个客户都很难相处,尤其是当你运用本文中概述的策略时。我将留给你最后一个技巧,它将帮助你为你的下一个项目找到最佳前景。
问问你的好客户,他们是否知道有人在寻找你提供的服务。如果你和那个客户建立了良好的关系,并交付了高质量的产品,他们更有可能给你一些很好的机会去追求。
如果你经常向你最好的客户寻求推荐,并且小心而优雅地管理难缠的客户,随着时间的推移,你会发现你的客户群中会有很多优秀的人和公司,他们欣赏你出色的工作。
说“不”
有时候,利益相关者的要求根本不可能。大多数项目都包括一些在整个过程中需要讨论的变更,但是如果客户要求一个超出项目商定范围的重大变更,那么可以说不。
这似乎有悖常理,因为我们许多服务相关行业的人都被教导“客户永远是对的”,但事实并非如此。在这种情况下,软件开发人员和项目经理是专家,所以由您来管理期望,并让您的客户知道他们的请求何时不可行。
在业务关系开始时,以书面形式确定范围和项目细节,以避免范围爬行。当他们提出没有包括的额外添加时,你的推理要清晰,并从软件开发人员的角度向他们解释后果。
客户和利益相关者可能不理解“简单的请求”需要额外的资源或时间来完成。此外,他们可能不知道他们请求的变更超出了项目范围。保持冷静,礼貌地帮助他们理解为什么你不能在合同签署后更改合同条款或增加额外功能。不是每个客户都很难相处,尤其是当你运用本文中概述的策略时。我将留给你最后一个技巧,它将帮助你为你的下一个项目找到最佳前景。
并重复
不是每一个客户都很难相处,尤其是当你运用本文中概述的策略时。我将留给你最后一个技巧,它将帮助你为你的下一个项目找到最佳前景。
问问你的好客户,他们是否知道有人在寻找你提供的服务。如果你和那个客户建立了良好的关系,并交付了高质量的产品,他们更有可能给你一些很好的机会去追求。
如果你经常向你最好的客户寻求推荐,并且小心而优雅地管理难缠的客户,随着时间的推移,你会发现你的客户群中会有很多优秀的人和公司,他们欣赏你出色的工作。
Ask your good clients if they know anyone looking for the services you provide. If you established a good relationship with that client and delivered a high quality product, they’re more likely to give you some great qualified leads to pursue.
If you constantly ask your best clients for referrals and manage difficult clients with delicacy and grace, over time you’ll find that your clientele base will be full of great people and companies that appreciate you for your amazing work.
管理远程团队| GitKon 2022 | Sarah Fruy,Linqia
原文:https://www.gitkraken.com/gitkon/managing-remote-teams-sarah-fruy-linqia
https://www.youtube.com/embed/rx3AJLcW510?feature=oembed
视频
管理远程团队需要领导者具备一套新的技能,尤其是在快速变化和不确定的时期。
为了提供你的团队需要的情感和专业支持,最好先了解你的团队面临的不同类型的挑战。然后,您可以解决这些挑战,创建一个健康、高效的工作环境,随着团队需求的变化而不断发展。
管理远程团队的挑战
领导在管理远程团队时面临四大挑战,员工在家工作时也面临四大挑战。
- **技术问题:**在办公室之外,你对团队实际工作环境的控制力要小得多。员工可能会遇到断断续续的互联网和停电,从而降低工作速度或完全停止工作。他们可能还需要更好的照明、视听设备、键盘、显示器等。让他们处于专业的环境中。
- 到目前为止,我们都太了解共享空间、家庭成员、室友、宠物、建筑工程、草坪护理、自然灾害、文化活动等等是如何让人们远离工作,或者至少伤害他们集中注意力的能力。
- 孤独:虽然内向的人可以独自茁壮成长,但许多人在没有经常与人接触的情况下会感到孤独和沮丧。此外,当团队成员独立工作而不是在协作环境中工作时,他们可能会缺乏动力。
- **精疲力竭:**尽管在远程团队工作比以往任何时候都更加普遍,但许多人仍在与精疲力竭和无法摆脱的状态作斗争。经常改变优先事项和缺乏必要的资源也助长了这种与工作有关的疲劳。
创造一个多元、包容、&同理心的工作环境
现在,您已经有了团队可能遇到的常见问题的基线,是时候制定解决方案了。首先,看看你的团队构成。创造一个多元化和包容性的环境将为您的组织带来更好的结果。尽最大努力建立一个由不同性别、种族和社会背景以及年龄组的个人组成的团队。拥抱多样性,想办法鼓励每个相关人员分享观点。
请记住,并不是每个人都喜欢在群体环境中发言,或者在给出深思熟虑的回答之前需要更多的时间来处理信息。如果你看到某些人经常主导谈话,直接问问题以吸引安静的团队成员,或者在 1:1 中提前讨论重要问题,这样你就可以在小组环境中支持他们的观点。
管理远程团队的最佳实践
接下来,花点时间去理解是什么激励——和分散——你团队成员的注意力。人事管理没有放之四海而皆准的方法,所以你的管理风格需要和你的团队成员一样独特。
如前所述,对不同的在家工作的情况感同身受,并鼓励团队成员尽量减少分心。例如,您可以在电脑上为个人网站创建一个带有选项卡的单独窗口,但在工作时间保持最小化,这样当您需要专注于工作时就不会被迫回复通知和个人主题,并建议您的团队成员也这样做。
您还可以鼓励团队成员在每个工作日的前三个小时,或者当他们有大量会议需要接听电话时,将手机、即时消息/聊天和电子邮件警报静音。
您还应该为日历提供透明度设置最佳实践。例如,让团队成员知道你每周有一节西班牙语课或照顾孩子的责任,并在你的日历上划出这段时间将有助于建立你在特定时间无法接近的界限,并鼓励他们也这样做。
尽管一些团队成员可能会因为企业文化的 24/7 磨砺和始终“工作”和加班的内在期望而犹豫不决,但公司正在意识到缺乏透明度实际上会降低生产率和工作质量。当我们在单个公司和整个社会中回归平衡时,让团队成员明白他们不会因为在日历上诚实描述自己的生活而受到惩罚是有帮助的,事实上,这有助于你了解你的团队,成为一名更好的经理。
此外,还有许多工具和资源可以帮助您了解团队成员的独特个性和工作风格。许多组织将促进性格测试或资助虚拟和面对面的团队合作会议,以提高士气和团队成员之间的合作。你也可以花时间与新成员讨论沟通偏好、个人界限和学习风格,这样每个人在相互交流时都会有更多的共鸣和理解。
沟通是关键
当你学会更好地沟通时,过度沟通。
根据您工作的紧急程度,每日检查可以让每个人了解最新情况,并在流程的早期识别阻碍因素。至少,团队应该作为一个小组每周至少会面两次,经理应该与每个人进行一对一的谈话。除了直接下属,如果你在公司职位较高或处于中层管理职位,创造机会进行越级对话。
在团队会议之外,鼓励团队成员与部门之外的成员进行“虚拟咖啡聊天”,这样他们可以与更广泛的组织建立更紧密的联系。您还可以邀请其他部门的人员参加您的团队会议,提供他们所领导项目的最新情况,或者回答与他们的工作相关的问题。这也是一个向他们的部门分享反馈信息的机会,告诉他们你们小组关注的是什么。
在团队会议期间,创建富有成效的日常工作很重要。以下是一些提高远程会议效率的技巧:
- 创建议程,尤其是在讨论新主题/计划时
- 发送总结电子邮件,确保每个人都同意接下来的步骤
- 鼓励每个人参与对话
提高参与度的一个方法是授权初级团队成员领导电话会议。他们不仅会看到这是多么具有挑战性,而且还会建立信心和新的领导技能。
除了预定的通话,对话还需要继续。创建单独的共享空间,作为一个团队和整个公司进行交流。知道有一个安全的空间来解决团队中具有挑战性或时间敏感性的问题,或者从外部获得反馈,这对于作为一个组织解决问题是至关重要的。
还应该有一个标记时间敏感问题的层次结构。这将因您的公司文化而异,但一种方法可能是:
- 电子邮件:对时间不敏感
- 即时消息:需要及时响应
- 临时电话:这个话题需要一个对话
- 正文:紧急事件
始终如一地计划和优先处理工作
用本杰明·富兰克林的名言来说:“如果你不做计划,你就是在计划失败。”根据您的需求和预算,从合适的项目管理工具开始。如果你的团队成员以前没有使用过新平台,给他们时间和培训,让他们熟悉新平台的界面——毕竟,采用新技术需要一个学习曲线。
在一个大项目的开始,列出你希望你的团队达到的所有主要里程碑。然后,将里程碑分解成你需要产生的结果。然后,这些任务被分成更小的任务,分配给个人。以这种方式分解工作对每个人都有帮助。它让管理层鸟瞰项目的进展,同时告知个人他们的具体责任。
敏捷方法也有助于团队项目管理,并有一个称为“WIP”或工作进展板的标签来显示单个任务的状态:backlog、to-do、in-progress、涉众评审、blocked、complete。这有助于经理与远程团队成员沟通,而不受时区的限制,以了解他们的进度。
将围绕任务的交流尽可能简化到任务本身也是最佳实践,包括在项目管理平台上的任务中存储文档、反馈和状态更新,以实现完全透明和记录保存。
在构建一个新项目时,与所有相关方进行一次电话会议也很重要。在这里,您可以围绕正在进行的工作建立“为什么”,分配角色,并通过一个所有人都可以遵循的总体北极星指标设定明确的目标。
随着项目的进展,北极星将有助于决策和优先排序。如果工作要求超出了你为北极星设定的范围,仔细看看这项任务是否是对时间和资源的最佳利用。这可能是个好主意,但同时也会分散注意力。保持专注,让你的项目按时完成,不超出预算。
最后,要始终如一。当你建立与团队合作的方法时,坚持使用它们以避免团队成员生活中不必要的变化和不确定性。你的团队依靠你的领导。当你说你会出现的时候就出现。兑现你的承诺,当你做不到时,尽早发出信号以避开阻拦者。如果你不能出席你的团队——休假对你也很重要——为他们提供一条在你缺席时完成工作和获得必要批准的途径。
归根结底,每个团队都有细微差别。对一个经理最有效的方法不一定对所有人都有效。定期从团队成员那里获得关于事情进展如何以及哪些方面可以改进的反馈,这将有助于你成为一名更好的领导者。
有了这些管理远程团队的最佳实践,没有什么能真正取代面对面的交流。如果可能的话,一年抽出一些时间在现实生活中呆在一起,为休息和娱乐创造空间。当人们感到足够安全而放松警惕时,团队成员就会团结起来,一种神奇的转变就会发生,这种转变可以在未来几个月或几年内激励你的团队并提高士气。
有了这些管理远程团队的最佳实践,没有什么能真正取代面对面的交流。如果可能的话,一年抽出一些时间在现实生活中呆在一起,为休息和娱乐创造空间。当人们感到足够安全而放松警惕时,团队成员就会团结起来,一种神奇的转变就会发生,这种转变可以在未来几个月或几年内激励你的团队并提高士气。
关于作者:Sarah Fruy——Linqia 的营销副总裁
作为 Linqia 的营销副总裁,Sarah Fruy 负责从品牌和产品营销到增长型营销和需求挖掘的一切事务。最近,Fruy 在 Pantheon 担任了许多专注于增长的角色,她领导了 Pantheon 的需求挖掘工作、面向公众的网站、品牌资产、合作伙伴营销计划和实验实践的战略、目标和路线图。
Fruy 是一名 ScrumMaster 和认证的敏捷营销人员,加入 Linqia 时在在线广告、数字媒体和网站运营行业拥有超过 15 年的经验,并拥有康奈尔约翰逊管理研究生院的营销战略和数字营销认证。此前,她曾在 Say Media 等新兴媒体公司以及《旧金山纪事报》等传统品牌公司工作。Fruy 是许多热门网站的客座撰稿人,也是一位经常在会议上发表思想领袖演讲的公共演讲者,包括 GitKon 2022、Martech、DrupalCon、Digital Summit、DMWF、Growth Innovate 等。
Fruy 是一名 ScrumMaster 和认证的敏捷营销人员,加入 Linqia 时在在线广告、数字媒体和网站运营行业拥有超过 15 年的经验,并拥有康奈尔约翰逊管理研究生院的营销战略和数字营销认证。此前,她曾在 Say Media 等新兴媒体公司以及《旧金山纪事报》等传统品牌公司工作。Fruy 是许多热门网站的客座撰稿人,也是一位经常在会议上发表思想领袖演讲的公共演讲者,包括 GitKon 2022、Martech、DrupalCon、Digital Summit、DMWF、Growth Innovate 等。
解决合并冲突
嘿你!你正在解决一些问题,但是没有时间去治疗师的沙发上吗?当你坐下来开始使用 GitKraken 中的合并工具时,你所有的内心挣扎都会消失。不需要催眠或引导图像。
因为事实是冲突是非常普遍的——在编码和现实生活中。有时候你需要一个推荐人,一个父母或者一个治疗师。进入 GitKraken 的合并冲突工具。就像把这三个人合二为一。
事情是这样的
Axosoft 的开发人员何塞·加西亚表示,“当你试图将文件或分支合并在一起时,你偶尔会遇到冲突,”这在过去会迫使你退出 Git 客户端,打开另一个应用程序等。本质上,你必须采取一堆额外的步骤。
嗯,不是当你使用 GitKraken!Garcia 解释说:“GitKraken 合并冲突工具允许用户以他或她想要的方式组合代码。
“大多数 Git 客户端会问你是否要安装另一个应用程序。GitKraken 会问你,但也提供了一种在应用程序中解决冲突的方法。
根据加西亚的说法,“GitKraken 的主要目标之一是让用户留在应用程序中,这样他们就不必离开它去做他们应该能够在 GitKraken 中做的事情。”他继续解释说,为了做到这一点,重新设计用户界面是最重要的。
“我们必须打造一个定制区域,”他报告道。“有三个小窗口显示同一文件的三个不同版本;因此,如果你滚动其中一个,你会希望另外两个也这样做,”他解释道。“我们增加了同步功能。”合并冲突工具在应用内执行。
合并冲突工具在应用内执行。
使用合并冲突工具
这很简单,真的。当您遇到合并冲突时,只需点击冲突的文件。它不会打开你熟悉的常规 diff 视图,而是打开一个专门的视图,帮助你解决合并冲突,而不必离开应用程序。
使用合并冲突工具
大多数 Git 客户端会询问您是否要安装另一个应用程序。GitKraken 会问你,但也提供了一种在应用程序中解决冲突的方法。
该视图有三个不同的部分:
– Jose Garcia, Axosoft GitKraken Developer
上半部分的两个并排部分向您展示了您试图合并的文件的不同版本。
下半部分的第三部分显示输出。
- 上半部分的两个并排部分向您展示了您试图合并的文件的不同版本。
- 要选择您想要的行,您可以单击任何单独的突出显示的行,将其添加到输出中。您还可以使用每个冲突部分旁边的复选框将整个块添加到您的输出中。
你也可以通过**“选择全部”按钮**选择整个面。箭头按钮帮助您在文件中的不同冲突之间快速导航。
当您对您的选择满意时,点击**“保存并标记为已解决”**保存您的文件并暂存。
查看 GitKraken 发布说明了解更多关于合并冲突工具的细节;这只是让 GitKraken 100%独立的又一步!
当您对您的选择满意时,点击**“保存并标记为已解决”**保存您的文件并暂存。
查看 GitKraken 发布说明了解更多关于合并冲突工具的细节;这只是让 GitKraken 100%独立的又一步!
如何合并一个 Git 分支?Git 问题的解决方案
原文:https://www.gitkraken.com/learn/git/problems/merge-git-branch
在 Git 中合并分支对于将一个分支中的更改合并到另一个分支中,以及保存历史非常有用。
在这个例子中,我们将把一个 Git 分支与 master 合并。假设您有一个主分支,其中有一些变化。然后分支到一个特性分支,并进行额外的修改。
要合并特征分支,您需要首先使用检出主分支
git checkout master
GitTip:需要帮助?查看如何在本地检出 Git 分支和如何检出远程 Git 分支的分步过程。
然后使用该命令
git merge feature
然后,您将把来自特性分支的更改合并到主文件中,将来自特性分支的所有更改添加到主文件中。除了将所有的更改合并到 master 上之外,这还为您提供了历史的准确表示。
如何合并 GitKraken 中的一个 Git 分支?
为了使这个过程更加简单,您可以使用 Git 客户端,比如 GitKraken ,来可视化 Git 中的分支过程。
下面是一个使用 GitKraken Git GUI 的例子
在这个例子中,我们将再次合并一个 Git 分支和 master 分支。您有一个带有变更的主分支,但是您已经分支到一个特性分支中进行额外的变更。
您将从检查一个分支开始。要在 GitKraken 中做到这一点,只需双击中央图中的主分支,或者右键单击该分支并选择Checkout master
。
如何在 GitKraken 中将 Git 分支与 master 合并?
在您签出主分支之后,您可以将您的特性分支拖放到中心图中的主分支上,或者右键单击特性分支,并从上下文菜单中选择Merge feature into master
。
解决 GitKraken 的合并冲突
在 Git 中,如果在两个分支之间对同一个文件或文件的某一行进行了竞争性的更改,就会发生合并冲突。
在命令行中,解决合并冲突可能会很复杂,而且压力很大。相比之下, GitKraken 合并冲突编辑器清楚地为您可视化冲突文件,因此您可以看到代码中存在差异的地方。
使用 GitKraken 的合并工具时,每个冲突部分都会有一个附带的复选框。选中某个部分的复选框会将其添加到底部的输出部分。这使您可以在上下文中看到可用的选项,以决定如何最好地继续。
Git 中的主分行与主分行
“主人”这个称呼已经过时了;我们建议尽可能使用“main”来代替。
在 GitKraken 中设置你的默认分支机构名称既快速又简单。当您在 GitKraken 中初始化一个新的 Git 存储库时,或者从Preferences
菜单中,您可以这样做。
借助 GitKraken Git GUI 的强大功能,使 Git 中的合并分支更加容易和直观,并对您的工作流程更有信心。
如何从 SVN 迁移到 Git
文章更新于 2022 年 1 月
您当前的 Subversion (SVN)版本控制系统不能满足您的开发团队的需求吗?也许你听说过 Git,但是你在 SVN 根深蒂固,转换到一个新的版本控制系统似乎是一项艰巨的任务。不要害怕!当你拥有传奇的 GitKraken 客户端的力量时,没有什么任务是无法完成的。
让我们来看看为什么应该考虑从 SVN 迁移到 Git,以及如何最好地完成这项任务。
超过 90%的开发者都在使用 Git。GitKraken Client 将有助于减轻迁移到 Git 的压力,并使您和您的团队的入职过程更加容易。
Git 的优势
流行度–Git 是目前软件开发领域最广泛使用的版本控制系统。根据 Stack Overflow 的 2021 年开发者调查,全球近 95%的专业开发者都在使用 Git 进行版本控制。这意味着在您的公司中采用 Git 不仅会让您进入业界首选的版本控制系统,而且还会减少新开发人员学习您的系统所需的时间。
- 分布式版本控制–Git 使用分布式方法进行版本控制,这与 SVN 的集中式方法形成了鲜明的对比。这意味着每个用户将存储库的完整版本克隆到他们的本地机器上,这在几个方面都是有利的。它消除了集中式存储库的单点故障,减少了日常操作的网络流量,并允许您的团队离线工作。
- 规模和速度——可以说,迁移到 Git 的最大原因是分支和合并。创建一个分支是毫不费力的,并且是非常轻量级的,允许您的开发人员更快地工作和更容易地合并。****
- 从 SVN 迁移到吉特
赞美北海巨妖!您已经决定继续进行从 SVN 到 Git 的迁移。那么,下一步是什么?规划总是一件好事,微软已经整理了一份全面的清单,列出了将您的团队迁移到 Git 时需要考虑的事项。
一旦您完成了规划阶段,就到了真正开始迁移代码的时候了。迁移的复杂性取决于几个因素:您的 SVN 存储库的复杂性,您已经完成了多少次合并,以及您是否关心重新格式化您的 SVN 存储库的历史。
重新格式化历史包括以下附加步骤:
将提交用户名转换为名字和姓氏,以及电子邮件地址
移除一些额外的特定于 SVN 的元数据
将svn:ignore
文件迁移到.gitignore
文件
- 将您的 SVN 标签转换为 git 标签
- 将所有 SVN 分支迁移到新的 Git remote 上
- 将
svn:ignore
文件迁移到.gitignore
文件 - 如果你不关心保存上面的对象,继续进行下面的说明。如果您想迁移所有的历史数据,请跳到导入和保存历史指令。
- Git SVN Clone
如果您不担心重新格式化您的 SVN 存储库中的历史,那么转换过程就变得容易多了!Git 有一个内置的git svn
命令,用于将一个 SVN 仓库克隆到一个新的 Git 仓库中。您只需运行:
git svn clone <SVN_URL> -T trunk -b branches -t tags
喝点咖啡…
这个过程可能需要一些时间,因为 g it 从您的 SVN 存储库中获取每个提交,并使用 Git 再次处理它。
如果您不担心重新格式化您的 SVN 存储库中的历史,那么转换过程就变得容易多了!Git 有一个内置的git svn
命令,用于将一个 SVN 仓库克隆到一个新的 Git 仓库中。您只需运行:
git svn clone <SVN_URL> -T trunk -b branches -t tags
一旦命令完成,继续在 GitKraken 客户端中打开这个 repo,您应该会看到一个新转换的 Git repo 的漂亮图形。
此时,您可以跳到设置您的新 Git 遥控器,并且您就要完成了!
GitKraken Client 使 Git 更加可视化和直观,使初学者和专家开发者的入门过程更加容易,并为您提供了在 GUI 或终端之间切换的灵活性。
一旦命令完成,继续在 GitKraken 客户端中打开这个 repo,您应该会看到一个新转换的 Git repo 的漂亮图形。
带着历史和分支从 SVN 迁徙到 Git
进口由git svn
做一个勇敢的工作;但是,还可以采取一些额外的步骤来执行更准确的导入,清理历史信息并对其进行重新格式化,使其看起来更像 Git 历史。
首先,我们来看作者信息。SVN 使用用户名跟踪提交,而 Git 使用全名和电子邮件地址。您可以在 SVN 存储库的工作目录中运行以下 bash 命令,以输出您的 SVN 作者列表:
您现在需要编辑author-transformed.txt
文件中的每个作者,以匹配 Git 作者信息所需的语法。
例如:
ryanp = ryanp <ryanp>
变成了:
svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > authors-transform.txt
ryanp = Ryan Pinkus <ryanp@example.com>
现在您已经准备好了作者列表,您可以使用git svn
运行导入并指定authors-transform.txt
。在 CLI 中将authors-transform.txt
复制到一个新目录C:/repo/temp
中,并将 cd 复制到该目录。
注意:如果在这个命令完成后,您看到一个空白的 Git 存储库,那么您的 SVN 存储库中可能没有标准布局。尝试移除
--stdlayout
标志。
该命令会将 SVN 存储库克隆到 repo 目录的“temp”文件夹中的新 Git 存储库中。如果您在 GitKraken 客户端中打开 repo,您会看到提交现在是 Git 格式的。
ryanp = Ryan Pinkus <ryanp@example.com>
现在您已经准备好了作者列表,您可以使用git svn
运行导入并指定authors-transform.txt
。在 CLI 中将authors-transform.txt
复制到一个新目录C:/repo/temp
中,并将 cd 复制到该目录。
cd c:/repo/temp
git svn clone [SVN repo URL] --no-metadata --authors-file=authors-transform.txt --stdlayout your_project
接下来,如果您正在使用一个文件的话,您将想要寻址到svn:ignore
文件。您可以运行下面的命令将svn:ignore
转换成一个.gitignore
文件,并提交到您的新 Git 存储库中。
您现在应该在 GitKraken 客户端的 WIP 节点中看到.gitignore
。继续将新的.gitignore
提交到您的存储库中。
接下来,您需要将所有的 SVN 标签转换成合适的 Git 标签。为此,您可以运行以下命令:
cd c:/repo/temp/your-project
git svn show-ignore > .gitignore
你可以使用 GitKraken 客户端来检查你的图表,并确保所有的标签都正确显示。
接下来,您需要为每个远程 ref 创建本地分支。您可以使用以下命令来完成此操作:
同样,您可以使用 GitKraken 客户端查看您的所有分支,并清理您不再需要的任何分支。如果您仍然看到一个“主干”分支,请验证它是否指向与“主”相同的提交。在这篇 GitKraken 客户端提示文章中,了解如何设置自定义默认分支名称——如“main”而不是“master”。
如果一切正常,您可以继续删除那个分支,因为您现在将使用“主”分支。右键单击左侧面板中的分支名称,然后选择“删除主干”。
for t in $(git for-each-ref --format='%(refname:short)' refs/remotes/tags); do git tag ${t/tags\//} $t && git branch -D -r $t; done
你可以使用 GitKraken 客户端来检查你的图表,并确保所有的标签都正确显示。
接下来,您需要为每个远程 ref 创建本地分支。您可以使用以下命令来完成此操作:
for b in $(git for-each-ref --format='%(refname:short)' refs/remotes); do git branch $b refs/remotes/$b && git branch -D -r $b; done
此时,您的本地回购应该已经准备就绪;因此,您可以创建您的遥控器,并将回购推送到您的本地回购。
设置您的新 Git 遥控器
在本例中,我们将使用 GitHub 向您展示如何创建远程,但 GitKraken 还集成了托管和自托管版本的 GitLab 、 Bitbucket 和 Azure DevOps ,使从任何这些服务添加远程回购变得快速而简单。好的,现在回到例子…
取消选中Clone after init
选项,仅创建远程存储库。
此时,您的本地回购应该已经准备就绪;因此,您可以创建您的遥控器,并将回购推送到您的本地回购。
您将需要新的远程回购的 URL,因此单击View on GitHub.com
按钮。
在本例中,我们将使用 GitHub 向您展示如何创建远程,但 GitKraken 还集成了托管和自托管版本的 GitLab 、 Bitbucket 和 Azure DevOps ,使从任何这些服务添加远程回购变得快速而简单。好的,现在回到例子…
将 URL 复制到 repo,并在 GitKraken 客户端中返回到您的本地 repo。
点击左侧面板远程部分的+
图标。
您将需要新的远程回购的 URL,因此单击View on GitHub.com
按钮。
在 URL 选项卡上,命名您的新遥控器,将 repo 的 URL 粘贴到 Pull 和 Push URL 字段中,然后单击Add Remote
。
将 URL 复制到 repo,并在 GitKraken 客户端中返回到您的本地 repo。
点击左侧面板远程部分的+
图标。
现在,您可以右键单击每个分支和标签,将它们推送到您的遥控器上。
如果您有大量的分支或标签,那么您可以使用下面的命令将它们推送到您的遥控器。
恭喜🎉您到 Git 的迁移已经完成!
您现在应该有一个正常工作的 Git repo 了。如果您准备好帮助您的组织扩展 Git,请查看我们的 GitKraken 客户端资源,包括迁移技巧和入门材料。
数百万开发者已经依靠 GitKraken Client 成功地过渡和扩展了 Git,那么为什么不加入北海巨妖的大家庭,免费试用今天最流行的 Git 工具呢?!
git push origin --all
git push origin --tags
恭喜🎉您到 Git 的迁移已经完成!
您现在应该有一个正常工作的 Git repo 了。如果您准备好帮助您的组织扩展 Git,请查看我们的 GitKraken 客户端资源,包括迁移技巧和入门材料。
数百万开发者已经依靠 GitKraken Client 成功地过渡和扩展了 Git,那么为什么不加入北海巨妖的大家庭,免费试用今天最流行的 Git 工具呢?!
从 Perforce 迁移到 Git
源代码控制,也称为版本控制,是跟踪和管理软件代码变更的方法。源代码控制管理(SCM)系统提供了代码变更的运行历史,对于对相同文件进行变更的开发团队特别有帮助。
作为负责任的软件开发的一个重要方面,源代码控制帮助开发人员跟踪代码变更,查看完整的修订历史,并在需要时恢复到项目的先前版本。此外,版本控制使协作变得更加容易。
但不是所有的 SCMs 都是一样的;它们有自己的一套相关的好处和限制。当你得知 GitKraken 的团队中充满了痴迷于 Git 的开发人员时,你应该不会感到惊讶,因此我们提倡使用 Git ,一个开源的分布式版本控制系统(VCS)。
我们之前已经写过从 SVN 迁移到 Git 的文章,现在我们要面对的是 T2 的 Perforce,一个受游戏开发者和大公司欢迎的集中的 VCS。
Git 与 Perforce 比较
Perforce 于 1995 年由 Perforce 软件公司前首席执行官 Christopher Seiwald 发布。整整十年后的 2005 年,Linux 之父 Linus Torvalds 创建了 Git。虽然这两个系统都是为了完成跟踪代码变更的庞大任务而引入的,但是它们在结构和功能上的显著差异是显而易见的。
Perforce 和 Git 处理软件项目的方式有根本的区别。Perforce 存储库可以保存成百上千个单独的软件项目,每个项目都有不同的分支模型,而 Git 存储库保存单个软件项目。
Perforce 和 Git 处理软件项目的方式有根本的区别。Perforce 存储库可以保存成百上千个单独的软件项目,每个项目都有不同的分支模型,而 Git 存储库保存单个软件项目。
迁移到 Git 的理由
有很多原因可以解释为什么一个开发人员或团队会试图将他们的版本控制系统从 Perforce 转换到 Git。
首先,Git 在跟踪代码变更方面做得更好,这是 SCM 的主要目的。Git 的方法更有用,因为它跟踪文件中的内容,而不仅仅是文件本身,更准确地反映了代码中的实际变化。
速度
Perforce 需要连接到服务器才能查看代码更改的历史记录。这不仅会减慢速度,而且随着每个新开发人员尝试访问服务器,情况会变得更糟,导致严重的瓶颈和部署软件项目的延迟。
相比之下,使用 Git,您可以在几秒钟内访问整个项目历史。在 Git 环境中,每个开发人员在他们的本地机器上都有一份代码副本。这消除了在工作流程中连接到集中式代码库的需求。
工作流灵活性
Git 更灵活的权限系统允许您的团队有更大的工作流可能性。例如,在 Perforce 中,您可能已经限制了分支的创建,这就要求开发人员在每次想要创建任务分支时都要请求许可。
在 Git 中,您可以只限制对主分支的推送访问,因此开发人员只需要在准备将代码实现到项目中时获得许可,而不是每次坐在计算机前时。
分支
在 Perforce 中,开发人员需要创建分支映射,这是 Git 中不需要的任务。这不仅需要开发人员花费时间和精力来做其他事情,而且还会扰乱原本高效的工作流,并产生不必要的数据。
Perforce 中的分支创建了数量惊人的元数据;这可能会导致大型部署的性能问题。相比之下,使用 Git,您可以有 100 个工作分支,但是只有一个实际存在于您的项目中的分支占用空间。而且,如果您想同时处理两个版本来比较结果,您可以克隆分支,执行一些代码更改,然后删除克隆而不会丢失任何东西。
了解更多关于 Git 分支和Git kraken中分支是如何工作的。
最终,Perforce 分支对于大多数开发人员喜欢的工作流类型来说并不方便,并且最终不会产生经理和产品所有者期望的结果。
合并和解决冲突
Perforce 的合并算法过于复杂,而 Git 中合并的结果实际上是一个新的提交,包含所有的祖先数据。
许多 Perforce 用户抱怨该工具内置的自动解析功能的准确性,声称“已经有过工作被破坏的报道”Git 在合并冲突方面做得非常好。当提示您 Git 中存在冲突时,冲突实际上是存在的,而在其他时间,Git 会解决冲突,纠正并节省大量时间。
看看为什么用户喜欢使用 GitKraken 解决 Git 中的合并冲突。
Git 为各种新的工作流开辟了可能性,如 Gitflow 、任务分支、分叉库等等。冒险在等着我们!
合作
从根本上说,作为源代码控制管理工具,Git 和 Perforce 都是基于协作的。它们的功能是允许一组开发人员处理一组共享的文件。协作是 Git 真正将 Perforce 从数字水域中剔除的一个点。
在 Perforce 中,您可以在团队之间共享文件,但是接收团队必须使用手动过程将他们想要实现的相关代码更改分离到他们的项目中。在 Perforce 中,分解文件提交是不可能的。
另一方面,在 Git 中,一个团队可以精选另一个团队的变更,并分离出他们想要保留的代码变更,而不必担心引入不需要的代码或部分实现的特性。
Perforce 的数据模型认为软件历史是单个服务器独有的,而 Git 有能力在任何地方克隆和共享历史。这使得跨公司边界使用 Git 进行协作成为可能,这是跨功能开发环境越来越普遍的需求。
团队入职
简单地说,每个人都在做这件事。根据2019 Coding Sans State of Software Development 报告,90%使用版本控制的 dev 选择 Git。如果你是一名招聘经理,你可以假设任何在过去五到十年中学习了他们的行业的工程师不仅已经知道如何使用 Git,而且会希望使用 Git。
Git 伴随着开源社区的热情和敏捷而来,并且正在快速发展以解决现实世界的问题(比如针对大文件存储的 Git LFS 的引入)。此外,任何开发人员都可以为项目贡献代码来改进某个特性或修复某个 bug。
了解更多关于 Git LFS 以及 GitKraken 如何支持大文件存储的信息。
费用
这一点会很快。Git 是免费的。就像完全免费一样,在任何时候,不管有多少人在一个项目上工作,也不管你的 Git repos 包含多少数据。
与之形成鲜明对比的是,据报道,Perforce 的每位用户费用为数百美元,最近的估计为 800 美元。Perforce 不再公布价格…这就足够了。当需要购买硬件时,大型团队的成本会变得更加昂贵。
Team Onboarding
执行强制到 Git 的迁移
既然我们已经概述了将 Perforce 系统转换为 Git 的非常有说服力的论点,那么让我们进入如何完成这项任务的实质部分。
1.为改变做准备
在你开始信口开河之前,花些时间与你的团队交流即将到来的变化,并建立一个过渡期间的工作结构。
请记住,切换工具不仅与数据有关,也与开发人员有关。您可能希望做到一丝不苟,拥有安全导出和存储数据的程序,并且不希望暂停团队正在进行的每个项目。
专业提示:考虑一个团队接一个团队、一个项目接一个项目地迁移,并尝试在新项目开始时安排迁移时间。
投入时间和精力向您的团队传达向 Git 迁移的必要性,包括原因、方式和预期的最终结果。毕竟没有人喜欢改变。你肯定会遇到一些阻力;在你的组织中寻找那些能够向同事宣传并保持精神状态的 Git 拥护者。
每个人都需要时间来适应新的系统和工作流程,但这是值得的。进行小的、迭代的、有形的、易于理解的改变将有助于过程的成功和持续。
2.清理您的数据
这是删除任何不必要的分支的时候了;每个项目减少到一个主分支是理想的。这也是检查和删除任何不必要提交的二进制文件的好时机。
选择如何导出二进制文件要特别小心,因为它们在 Git 中的管理方式非常不同。虽然 Perforce 在二进制文件管理方面表现出色,但这是 Git 相形见绌的一点。简而言之,您不会想要将 Perforce 中的大量二进制 blobs 合并到 Git 中,因此相应地清理您的数据。 Git LFS 在这里可以派上用场。
3.导出您的数据
将数据从 Perforce 转移到 Git 有两种主要方法。您可以使用类似于 Git Fusion 的工具,它保存整个历史并将 Perforce 服务器的一部分提取到 Git 存储库中。这个选项需要最多的时间和精力,但是它保留了最多的历史。
或者,你可以选择重新开始。只需提取对应于相关项目的每个分支的头,并将其签入一个新的空 Git 存储库。虽然这是最简单、最直接的方法,但是如果您需要深入研究历史代码,您会希望保持旧的 Perforce 服务器完好无损。
专业提示:您必须首先确保您的 Perforce 工作区已经用您想要的数据的正确视图定义。
4.在 Git 中变得有条理
成功移动数据后,可以开始将用户和权限映射到 Git 托管服务,一次一个项目。
然而,将 Perforce 权限转换为 Git 托管服务(GitHub、Bitbucket、GitLab、Azure DevOps)的等效权限可能会很棘手。这是因为 Perforce 权限是出了名的精细和复杂,存在排除对单个文件的访问的风险。
Perforce 复杂的许可方案是服务器陷入困境的首要原因;每次尝试访问服务器都会在复杂的数据结构上产生昂贵的计算。
考虑到 Git 结构:项目、回购和分支级别,您的项目负责定义更简单的权限集。享受众多新工作流程选项带来的荣耀。
5.健全性检查
在您对迁移是否成功进行苛刻的评估之前,设定现实的期望是很重要的。例如,您的数据传输极不可能在 Git 中产生一点一点的历史记录。这没关系。
完成数据导出和导入后,开始测试。在将 DevOps 管道从 Perforce 切换到 Git 之后,使用 CI/CD 验证来确保所有测试都通过。你还能部署吗?
下一步是什么?
在你把鲜血、汗水和泪水投入到一场迫在眉睫的迁徙之后,接下来会发生什么?好吧,你可以把花在 Perforce 上的钱拿去办一个 Git 派对。🤷🥳
要帮助您的团队使用 Git,请查看我们的学习 Git 数据库,里面有各种经验水平的 Git 教程。
要在您的组织内获得扩展 Git 的帮助,请访问我们的 Git 知识中心以获得关于使用您的托管服务成功扩展 Git 的信息: GitHub 、 GitLab 、 Bitbucket 和 Azure DevOps 。
4.在 Git 中变得有条理
成功移动数据后,可以开始将用户和权限映射到 Git 托管服务,一次一个项目。
然而,将 Perforce 权限转换为 Git 托管服务(GitHub、Bitbucket、GitLab、Azure DevOps)的等效权限可能会很棘手。这是因为 Perforce 权限是出了名的精细和复杂,存在排除对单个文件的访问的风险。
Perforce 复杂的许可方案是服务器陷入困境的首要原因;每次尝试访问服务器都会在复杂的数据结构上产生昂贵的计算。
考虑到 Git 结构:项目、回购和分支级别,您的项目负责定义更简单的权限集。享受众多新工作流程选项带来的荣耀。
5.健全性检查
在您对迁移是否成功进行苛刻的评估之前,设定现实的期望是很重要的。例如,您的数据传输极不可能在 Git 中产生一点一点的历史记录。这没关系。
完成数据导出和导入后,开始测试。在将 DevOps 管道从 Perforce 切换到 Git 之后,使用 CI/CD 验证来确保所有测试都通过。你还能部署吗?
下一步是什么?
在你把鲜血、汗水和泪水投入到一场迫在眉睫的迁徙之后,接下来会发生什么?好吧,你可以把花在 Perforce 上的钱拿去办一个 Git 派对。🤷🥳
要帮助您的团队使用 Git,请查看我们的学习 Git 数据库,里面有各种经验水平的 Git 教程。
要在您的组织内获得扩展 Git 的帮助,请访问我们的 Git 知识中心以获得关于使用您的托管服务成功扩展 Git 的信息: GitHub 、 GitLab 、 Bitbucket 和 Azure DevOps 。
For help getting your team onboarded using Git, checkout our Learning Git database, stocked full with Git tutorials for every experience level.
For help scaling Git within your organization, visit our Git Knowledge Center for information on successfully scaling Git with your hosting service: GitHub, GitLab, Bitbucket, and Azure DevOps.
迁移到云| GitKon 2022 | Mark Parmenter,亚马逊
原文:https://www.gitkraken.com/gitkon/migrating-to-the-cloud-mark-parmenter
https://www.youtube.com/embed/iFGBoHyilhg?feature=oembed
视频
团队应该考虑迁移到云,远离切换物理服务器和数据中心的原因有很多。
虽然迁移到云的想法似乎势不可挡,但是团队可以使用一些策略来更智能、更快速、更便宜地处理迁移。
敏捷性:为什么您应该迁移到云
云计算带来的灵活性是迁移到云的最重要的原因。
向外扩展
配置一台新服务器并安装所有软件进行水平扩展需要什么?当您需要新硬件时,需要订购、交付、物理安装、联网,然后安装操作系统、加固,然后安装您的软件。
对于大多数小型数据中心,实施新软件的周转时间通常在两周左右。相比之下,在云中工作,只需点击几下鼠标,新的资源就可以在几分钟内完成。更灵活的是,企业可以将云配置为基于应用程序利用率自动横向扩展,这意味着您可以配置您的云应用程序,以便随着利用率的提高添加席位、存储等。
放大
如何改变硬件以获得更多内存、磁盘空间或计算能力?同样,您也在谈论购买物理资产,可能是将一台服务器停止使用一段时间,更换或升级它,然后将它放回物理和网络基础架构中。然而,这是另一个使用云只需点击几下就可以完成的过程。
放大
服务器补丁
云计算带来了减少或消除服务器修补时间的灵活性。
为您的服务器打补丁需要多长时间?你知道什么比修补服务器更快吗?首先没有要修补的服务器!企业可以用无服务器功能代替 API,用容器代替计算实例来运行应用程序,而根本不需要任何服务器!以这种方式运行您的应用程序有很多好处:其中之一是您不需要担心修补任何东西!
部署
您如何部署您的应用程序代码?您是否不得不构建自己开发的自动化零停机部署机制?这可能是痛苦和耗时的!发现这是一个已经在云中解决的问题,真是令人耳目一新!云计算带来了 DevOps 的灵活性。
更智能地迁移到云
戴尔的一项研究显示,投资云计算的公司收入增长比竞争对手快 53%。云计算允许您的企业以多种方式更智能地运营。
托管服务
当公司在一个小型数据中心拥有大量物理服务器时,他们可能会采取“提升和转移”的方法,基本上将每个单独的服务器迁移到一个计算实例,这是一个针对机器学习开发环境优化的完全托管的基于云的工作站。
然而,企业管理自己的实例有许多不利之处。他们需要自己打补丁,通过跨可用性区域、网络和身份验证的集群来确保高可用性。
对于许多组织来说,迁移到 AWS 托管的服务更有意义,因为它消除了管理任务,因此开发团队可以专注于构建优秀的软件。
以下是企业可以执行的迁移列表,用于将数据迁移到云中:
无服务器功能:亚马逊 Lambda、Azure 功能、谷歌云功能
集装箱服务:Amazon ECS / EKS、azure kubernetes 服务、google kubernetes 引擎
Pub/Sub:亚马逊 SNS,Azure Web PubSub,谷歌云 Pub/Sub
- 队列:亚马逊 q
- 对象存储:亚马逊 S3、Azure Blob 存储、谷歌云存储
- 负载平衡器:弹性负载平衡器、Azure 负载平衡器、谷歌云负载平衡
- SQL 数据库:亚马逊 RDS,Azure SQL 数据库,谷歌云 SQL
- NoSQL: DynamoDB,Azure Cosmos DB,BigTable
- 内存中的键/值存储:用于 Redis 的 Amazon Elasticache
- SQL 数据库:亚马逊 RDS,Azure SQL 数据库,谷歌云 SQL
- 许多这些托管服务都有一些隐藏的内置优势。例如, AWS 应用负载平衡器可以进行 SSL 终止,AWS 管理并自动更新证书。
- Amazon RDS 允许您将数据库的备份副本恢复到过去的某个确切时间点,以便用于测试或查询。企业不需要成为专家来设置他们的数据库以实现高可用性…这只是您选择的一个额外选项。这再容易不过了!
云观察指标
CloudWatch 是一个神奇的工具,可用于日志记录、监控和警报。企业甚至可以在他们的应用程序中发布他们自己的定制事件,并在出现问题时创建警报来提醒他们。
使用 CloudWatch 进行监控和警报将有助于企业在客户报告问题之前发现并解决问题。团队可以发布指标,以便他们可以可视化和监控关键性能指标,并可以配置警报,以便在指标超过特定阈值时通知他们。获得更快的可见性允许团队在客户遇到问题之前解决问题。
云观察指标
灾难恢复
如果由于人为错误而意外删除了数据,团队可以使用 Amazon RDS 使用最近的时间点备份来恢复数据库。
安全
更好的安全性是智能云计算的一部分。虽然大公司有物理安全、冗余电源系统、顶级防火墙和隔离网络,但小公司有被勒索软件感染的风险。
不要等到您不得不为您的服务器机柜或小型数据中心的安全漏洞付出代价时,现在就投资安全性。
更快地迁移到云
迁移到云并不像许多公司想象的那样复杂或耗时。企业有很多方法可以更快地迁移到云。
不要等到您不得不为您的服务器机柜或小型数据中心的安全漏洞付出代价时,现在就投资安全性。
基础设施代码
使用 CloudFormation 模板可以帮助团队以代码的形式更快地开始使用基础设施,这比手工搭建基础设施要快得多。企业可以使用预先存在的模板来加速创建复杂的基础设施组件。
许多云解决方案还允许您对基础设施应用版本控制,这是非常强大的。当公司需要为开发、测试、生产或在另一个地区创建一个新环境时,他们已经准备好了所有的模板来构建该环境的精确副本。
企业可以使用像云开发工具包、地形和云形成这样的工具来利用这些优势。
基础设施代码
迁移加速程序
云计算公司通常拥有大量的资源和程序来帮助加速和确保业务迁移的成功。他们通常会主动帮助描述公司的现有基础架构,在其云环境中提出新的架构,并资助内部和外部顾问来帮助迁移。他们还提供丰富的工具来加速迁移。
企业可以使用像云开发工具包、地形和云形成这样的工具来利用这些优势。
数据迁移服务
为了帮助迁移到云,团队可以使用名为 AWS 数据迁移服务的工具来迁移他们的生产 SQL Server 数据库,几乎不停机。这对于在 AWS 迁移期间最大限度地减少停机时间至关重要。
利用这个工具,团队可以实时地将他们的数据库镜像到另一个环境中。然后,当他们准备好切换时,他们可以关闭物理数据中心中的旧数据库,并切换到 AWS 中的新数据库。
扩大或扩大
在使用物理服务器时,企业必须准确预测其使用情况,并购买必要的设备来管理使用情况。这些预测可能不准确且耗时。
另一方面,有了云计算,企业就不需要费力考虑他们的流量会是什么样子了——他们可以快速估计利用率,并实时调整以满足需求。
迁移到云更便宜
通常,当团队第一次进行 AWS 迁移时,成本会比预期的高。团队可以使用一些策略,在短短几个月内将云支出减少多达 50%。
另一方面,有了云计算,企业就不需要费力考虑他们的流量会是什么样子了——他们可以快速估计利用率,并实时调整以满足需求。
不迁移到云的成本
首先,考虑不迁移到云的隐藏成本之一。许多公司都有大量的 IT 和数据库管理员来处理与修补、联网、集群等相关的管理开销。当公司使用托管服务时,云提供商会为他们处理大部分事务。
此外,如果企业没有利用云存储,软件开发人员有时可能会被迫从事网络、补丁或其他常规服务器管理工作,而不是构建下一个伟大的新应用程序或功能。迁移到云消除了这种机会成本。
自动缩放组
一个自动缩放组包含一个 EC2 实例的集合,出于自动缩放和管理的目的,这些实例被视为一个逻辑分组。自动扩展组使企业更容易经济地利用云计算,根据使用情况调整容量,并满足弹性需求。通过 A/B 测试不同的实例类型,团队可以更好地确定哪一个最适合每个 API,从而最大限度地降低成本,允许他们显著地扩展他们的服务器流量。
想想这在数据中心是如何工作的:企业将不得不过度供应,并且如果应用突然出现额外的流量,企业将没有能力处理额外的流量。
调整大小
当企业将服务器迁移到计算实例时,他们可以过度配置服务器以确保能够处理负载。之后,企业可以迅速将它们缩小到“合适的大小它们的实例。
合理确定企业实例的规模有助于降低云计算的成本。
想想这在数据中心是如何工作的:企业将不得不过度供应,并且如果应用突然出现额外的流量,企业将没有能力处理额外的流量。
保留实例/计算储蓄计划/现货实例
在一个团队采取措施使用自动扩展组并适当调整它们的实例之后,他们应该对它们的资源利用率有一个很好的了解。
这可能是进一步优化成本的好时机。 AWS 保留实例和 AWS 计算节约计划是降低基础设施成本的绝佳方式。通过承诺在某个级别、实例系列或利用 AWS Spot 实例进行支出,企业可以减少高达 90%的计算支出。
合理确定企业实例的规模有助于降低云计算的成本。
移民积分
通常情况下,AWS 和其他公司会根据新客户的要求向他们提供有补贴的迁移服务。这可以包括信用、工具和资源,以帮助他的公司以更低的成本进行云计算。
在一个团队采取措施使用自动扩展组并适当调整它们的实例之后,他们应该对它们的资源利用率有一个很好的了解。
参与云迁移
迁移到云计算有很多优势,有些是显而易见的,有些则不那么明显。您拥有启动云迁移的所有工具—更智能、更快速、更便宜!
在您的团队迁移到云之后,成功将取决于拥有最好的工具。GitKraken 的传奇开发者工具套件使得使用 Git 更容易、更安全、更强大,甚至在云中也是如此!今天全部免费试用: GitKraken 客户端桌面版; GitLens for VS 代码;和吉拉的 Git 集成。
通常情况下,AWS 和其他公司会根据新客户的要求向他们提供有补贴的迁移服务。这可以包括信用、工具和资源,以帮助他的公司以更低的成本进行云计算。
参与云迁移
迁移到云计算有很多优势,有些是显而易见的,有些则不那么明显。您拥有启动云迁移的所有工具—更智能、更快速、更便宜!
在您的团队迁移到云之后,成功将取决于拥有最好的工具。GitKraken 的传奇开发者工具套件使得使用 Git 更容易、更安全、更强大,甚至在云中也是如此!今天全部免费试用: GitKraken 客户端桌面版; GitLens for VS 代码;和吉拉的 Git 集成。
在 GitKraken 板中跟踪项目里程碑
原文:https://www.gitkraken.com/blog/milestones-dashboards-gitkraken-issue-boards
GitKraken Boards 旨在通过直观的项目管理和问题跟踪使开发人员更加成功。
像 Slack integration 和 GitHub pull request linking 这样的功能只是 GitKraken 团队如何不断更新该产品以提高个人开发人员和团队的生产力和组织的两个最近的例子。
我们最新的 GitKraken 电路板版本也不例外;我们为您带来仪表板和里程碑!
通过仪表盘查看活动
鸟瞰所有分配到一个板组的板,包括显示每列牌数的活动跟踪器。
在左侧板面板上,只需从任何板组展开下拉菜单,即可看到“dashboard”选项。点击Dashboard
在 GitKraken Boards 中查看作为仪表板填充的该组中的所有板,在这里您可以快速查看板成员、按列的卡数以及每个板的活动。
简单的板命令可以从仪表板完成,包括编辑、复制或删除。您也可以从仪表板为您的小组创建新的讨论板;创建了公告板后,您将立即转到您的新公告板。
跟踪项目里程碑
里程碑的引入允许用户为大项目创建里程碑,并将它们与板上的特定卡片相关联。可以把这些看作是一次性标签,按照到期日期对一组卡片进行分组。
要创建里程碑,请转到您的纸板设置,添加里程碑名称、目标完成日期和描述。您也可以返回讨论板设置来关闭、编辑或删除里程碑。
创建里程碑后,它的功能很像 GitKraken 板中的标签,您可以将里程碑分配给板中的任何卡片。
在卡片详情下的Milestone
部分指定一个里程碑。里程碑将在卡片上显示为带有名称和旗帜图标的灰色方框。
与标签不同,一张卡片只能分配一个里程碑。虽然分配给卡的里程碑有一个目标完成日期,但卡可以保持其单独的到期日期。
使用过滤器选项快速查看与里程碑相关联的所有卡片以及每列的卡片数量。
在同步板上追踪 GitHub 里程碑
通过将发布板与 GitHub repos 同步,无缝跟踪跨平台的大项目。我们的新功能与 GitHub 里程碑同步,因此如果您在 GitKraken 或 GitHub 中关闭、编辑或删除您的里程碑,您可以立即在两个系统中看到更新。
GitKraken 板继续增加更多的功能,以改善软件开发人员的项目管理过程。仪表板和里程碑使跨团队和项目跟踪任务、问题和时间线变得更加容易。我们与 GitHub 和 Slack 的大量集成允许您连接您的首选工具,以减少上下文切换。
Monorepo 挑战 CI | GitKon 2022 | Nitish Garg,Oscar Health
原文:https://www.gitkraken.com/gitkon/monorepo-challenges-nitish-garg-oscar-health
https://www.youtube.com/embed/neP8TVHr4pc?feature=oembed
视频
使用大型 Git monorepo 会带来持续集成的挑战,但是您和您的团队可以使用一些技术来克服常见的障碍。
什么是单向回购?
作为 monorepo 的一个例子,让我们看看 Oscar Health 的资料库背后的数字,这是一家全栈健康保险公司。该组织的 Git monorepo 包含:
10 万份文件
- 一千九百万行代码
- 各 500 万行 Python 和 SQL
- 77 万行戈朗
- 一千九百万行代码
微服务
- 2300 个二元目标
- 12,000 次库测试
- 6100 个测试目标
CI/CD
- 每月 5000 次部署
- 一个月 400 万次测试
- 每月 15TB 工件
与 Monorepos 的持续集成挑战
随着大型 monorepos 的持续增长,团队可能会面临持续集成(CI)的挑战。例如,每天运行整个测试套件不再是一个选项。
monorepos 常见的持续集成挑战包括:
在 Git diff (或 pull 请求)上计算更改的目标
- 远程 CI 服务器上的缓存:
- Git 克隆整个 monorepo 以及在远程 CI 服务器上从零开始获取相关第三方随着您的 repo 增长需要更长时间
- 您必须找出缓存技术,以确保可以在远程 CI 服务器上访问大型对象
- 您必须找出缓存技术,以确保可以在远程 CI 服务器上访问大型对象
计算变更目标
第一步是在 Git monorepo 中找到更改的文件。接下来,您将需要从更改的文件中找到所有依赖于测试和二进制目标,并对它们进行 repo 测试。后一步可能会变得复杂。
计算单一回购变更目标的结构如下所示:
你有四个改变的目标:A → B → C
因此,如果文件 C 有变化;这将改变目标 A、B、C 和 D;如果文件 B 有变化;这将改变 A & B 的目标;如果文件 A 有变化;这会改变目标 a。
例如,在 Oscar Health monorepo 中,每个构建或 diff 都可能有 10,000 个需要测试的目标,但平均来说,他们只需要使用这个计算模型测试几百个目标。
例如,在 Oscar Health monorepo 中,每个构建或 diff 都可能有 10,000 个需要测试的目标,但平均来说,他们只需要使用这个计算模型测试几百个目标。
远程 CI 服务器上的缓存
当您使用 monorepo 时,两种类型的对象将随着时间的推移继续线性增长:monorepo 本身和 monorepo 中定义的第三方。
根据远程 CI 服务器的类型,缓存这些类型的大型对象的技术会有所不同,无论是长期运行的还是临时的,后者更复杂。
对于长期运行的服务器,您可以采用以下策略:
克隆 monorepo 一次,并使用 Git 命令获取新的更改
- 必要时同步第三方
- 必要时同步第三方
Ad hoc 服务器本质上是自动伸缩的,在工作流中使用它们时,您需要更加慎重,并且需要使用缓存技术。
对于 ad hoc 服务器,您可以采取的一个步骤是在半夜构建一个 Docker 映像来备份基础包,克隆 monorepo,然后 Git fetch 所有第三方。接下来,将它提交给一个容器以获得一个图像,然后缓存该图像。
对于 ad hoc 服务器,您可以采取的一个步骤是在半夜构建一个 Docker 映像来备份基础包,克隆 monorepo,然后 Git fetch 所有第三方。接下来,将它提交给一个容器以获得一个图像,然后缓存该图像。
发布更多 GitKon 扬声器|免费虚拟技术会议
原文:https://www.gitkraken.com/blog/more-gitkon-speakers-announced
GitKon 即将于 2021 年 9 月 22 日至 23 日推出,我们仍将通过更多令人惊叹的扬声器带来热度。
这些来自不同背景和行业的世界级演讲者和思想领袖将齐聚一堂,就从开发运维、团队工作流到将 Git 用于特定服务和框架等主题为您带来灵感!我们的每一位出色的演讲者都提供了各种最佳实践、独特的观点,并分享了通过利用 Git 实现合作和成功的更美好未来的愿景。
我们非常自豪地介绍 GitKon 2021 的第二轮演讲者!
被称为“黑客马拉松女王”的 Michelle 是 GitHub 的开发者代言人。作为 DevRel 团队的一员,她能够倾听社区的声音,理解他们,并为他们提供工具和资源以在开源领域取得成功。你会经常发现 Michelle 谈论协作、良好的文档、开源和实时编码。
在 Michelle 的演讲“使用 Git 实现终极团队合作”中,来参与有效团队合作的变革和重新构想吧。无论您是否是开发人员,您都将受到新的协作机会和工具的启发。
随着行业继续改善协作团队结构,我们非常兴奋地从 Michelle 的经验中了解到这样一个高度相关的话题。看看 GitKraken 是如何提升团队的 Git 体验的。
作为 Codecademy 的高级课程经理和一名创意技术专家,Zoe 找到了让学习代码变得更容易理解和更有吸引力的新方法。她设计了一系列 Codecademy 课程,包括“学习 HTML ”、“学习 C# ”和对初学者友好的“学习如何编码”。作为 the Illuminator 的成员和女权主义技术集体 tendernet 的创始人,佐伊充满热情地致力于通过创造性的干预和教育倡议来改变技术格局。
你可能想听听她的演讲“Git 和学习之旅”,听听她和 Codecademy 是如何学习 Git 的,以及他们通过教成千上万的人如何使用 Git 学到了什么。
GitKraken 知道 Git 的学习曲线非常陡峭,而且非常耗时。这就是为什么我们尽最大努力创建有用的资源,比如我们广受欢迎的 Git 教程库。
Facundo 是 Storyblok 的开发人员关系工程师。Facundo 来自阿根廷布宜诺斯艾利斯,毕业于国立科技大学,拥有超过 15 年的软件开发经验。Facundo 以全栈开发者、 GitKraken 大使、Auth0 大使、Prisma 大使、开源贡献者和 Cloudinary 媒体开发专家的身份崭露头角。你可以在 LinkedIn 上与他联系,并在他的个人网站上关注他的冒险经历。
在 Facundo 的演讲“Jamstack:使用 Git 部署超快的静态站点”中,了解如何创建性能更好、更安全、更容易扩展、成本更低的网站。
我们喜欢帮助开发人员专注于他们喜欢的东西,无论是 Jamstack、传统的 CMS,还是他们喜欢的任何其他构建应用程序的方式。在 GitKon 之前,你可以通过这个网络研讨会对 Jamstack 部署有更多的了解。
Jessie 是洛杉矶 DIA 设计协会的 UX 设计师,也是对机器学习感兴趣的 python 开发者。施巧灵以开发人员的身份开始了她的科技生涯,但她也热爱在建立网站之前发生的一切。她目前正在写一本关于国际象棋的策略和结构以及它如何应用于数字空间的书。
施巧灵的演讲“使用 Git 写一本书:Git 如何让你在一个项目中保持有条理”利用了她写这本书的个人经历来展示你如何在编码之外的创新方式中利用 Git 的力量。
Git 被如此多的人以如此多的方式使用。我们很高兴将人们聚集在一起,了解人们如何在 GitKon 以创造性的方式利用 Git 的力量。
Johannes Schindelin 在微软工作,维护用于 Windows 的 Git,并改善用户体验。Git for Windows 是一个轻量级的原生工具集,它将 Git SCM 的完整特性集引入 Windows,同时为有经验的 Git 用户提供适当的用户界面。拥有遗传学、数论、心理学和神经科学的博士学位,Johannes 是一个求知欲极强的人。他热衷于将数学思维与编程和社交技能相结合,以促进和管理跨学科项目。
在 Johannes 的演讲“Git for Windows,以及跨平台协作的挑战”中,他将分享他在克服兼容性问题方面学到的经验,这些问题经常会降低团队和工作流的速度。
GitKraken 一直致力于为我们的用户提供一致的跨平台体验。我们很自豪能被 Windows、Mac 和 Linux 上的 Git 粉丝使用。
注册向神奇的 GitKon 扬声器学习
凭借不同的背景和丰富的经验,这个令人惊叹的 GitKon 扬声器阵容有能力帮助您重新想象您的团队的潜力和 Git 的可能性。敬请关注更多关于我们面板的 GitKon 公告以及即将发布的更多公告。加入 GitKon,抓住这个获得新灵感的机会,学习利用 Git 的新方法!
立即注册!👇
Git 如何塑造了 Web 和 Jamstack
https://www.youtube.com/embed/1K6yaH4mmpo?feature=oembed
视频
如果我们回顾一下 Git T1 的历史,我们会发现它对一切事物都产生了巨大的影响,使现代网络成为开发者和公司更好的地方。文本文件的版本控制系统与现代网络有什么特别的关系,这一点似乎并不十分明显。可能很容易认为这两个世界是不同的——web 应用程序的发展与我们实际管理这些 web 应用程序背后的源代码的方式完全不同。然而,我们越仔细观察,就越会发现 Git 对当今 web 构建方式的影响。
早期版本控制模式
在 Git 之前,有其他早期的、分散的源代码控制系统,但是更流行的是集中的源代码控制管理系统,比如 Apache 的 Subversion (SVN) 。现在仍然存在的 SVN 是 web 早期非常常见的源代码控制系统。SVN 模型依赖于运行一个中央源代码管理服务器。
使用 SVN,每个存储库都必须被设置为自己的服务器,每个开发人员都要连接到该服务器,在他们自己的机器上制作本地工作副本,服务器始终是唯一的真实来源。这种中央服务器模型需要系统操作员在某个地方的机器上运行 SVN。这种操作开销使得 SVN 很难用于业余爱好项目或较小的项目。
你还迷恋 SVN 吗?Git 是未来的发展方向。不要落后–立即开始您的迁移过程!
哇,Git 就像魔术一样
这在今天可能看起来很平常,但是当 Git 首次发布时,你可以在任何文件夹中简单地输入‘Git init’来启动一个版本控制系统的新实例的想法是不可思议的。您在本地笔记本电脑上有一个完整的版本控制系统,无需设置和维护中央服务器。
突然,如果您对项目文件夹中的任何文件进行了更改,您就可以访问完整的 Git 状态和 Git 历史,让您看到您的代码是如何被修改的。简单而快速的命令允许您将文件添加到存储库中,并让 Git 提交,而无需任何服务器设置、任何供应或管理任何其他服务器。这简直是开创性的。
很容易忘记,但在 Git 之前,做类似结账、分支,立即看到差异的事情,甚至分支之间,都是革命性的。
这完全改变了文件夹和文件在本地机器上的工作方式。Git 意味着你可以有一个 README 文件,输入一个命令来 Git checkout 另一个分支,然后突然在你的屏幕上有一个完全不同的 README 文件。这种魔力意味着笔记本电脑上的每个文件夹都有全新的潜力,过去像在 Subversion 服务器上合并不同分支这样非常麻烦的大操作变得像输入` git merge '一样简单。
GitKraken 客户端中易于准备的提交图将帮助您可视化分支结构和项目历史,让您更有信心执行日常 Git 操作,如分支和合并。
从本地工作到在线协作
当 GitHub 出现时,它允许开发人员在线创建新的存储库,并即时同步他们本地的分散文件夹。很神奇的是,作为开发人员,你几乎不需要任何设置就能做到这一点;没有服务器供应或任何类似的东西。多亏了 GitHub,一切都从本地体验变成了在线体验。您突然能够与世界上的每个人共享任何存储库!从 GitHub 本地签出它的每个人都将拥有所有的魔力和你的项目的完整副本,他们将能够使用它们。
许多过去非常困难的工作,比如管理不同的环境以及在它们之间进行合并,现在变得简单了。每一个改变都有自己的分支,你可以在线分享这些分支。
有趣的是,Git 的去中心化特性实际上使得采用集中式平台变得非常容易,比如 GitHub 、 GitLab 或 Bitbucket 。开发人员可以开始围绕 URL 和工作流一起构建约定。GitHub 真正引入了将 Git 定义为云工作流工具的可能性。
支持全球 Git 工作流
Git 很快从“仅仅”一个源代码版本管理工具变成了我们作为开发人员如何一起构建和发布的核心组件。GitHub 出现后,开发人员立即开始有了即时存储库的想法,每个爱好项目或任何一点代码都可以立即成为一个 Git 存储库,与世界共享以进行协作。
当 GitHub,以及后来的 GitLab 和 Bitbucket 引入了" pull request "或" merge request "的概念时,它真正启动了在线项目协作的世界。每个变更集都可以有自己的 URL,您可以访问它进行代码审查,这意味着整个世界可以以异步的方式协作。
如果没有这些小魔术,所有这一切都不会发生,这些小魔术将每个文件夹变成了一个存储库,在这里可以对每个变更集进行比较、拉取、推送和全球同步。
网络是如何变化的
你可能还在想,“这些和网络有什么关系?Git 实际上是如何映射到 web 上的?”
如果你回想一下 SVN 流行时的网络,通常会有一个运行 Apache 的服务器,可能是一些 PHP 或 Ruby on Rails,也可能是一个 DB。你可以在本地下载代码,但是中央服务器永远是事实的唯一来源。早期的 web 浏览器更像是一个文档查看器,从服务器请求完整 web 文档的副本。
作为 SVN 世界的开发人员,您通常会操作非常长寿的分支,这些分支几乎就像它们自己的存储库,每个服务器一个。有一个生产分支,一个准备分支,有时还有一个开发分支。开发分支在 SVN 并不常见,因为处理合并和保持不同分支的同步通常非常困难。
感觉好像每个环境都需要一台服务器,即使它运行在同一个 SVN 服务器上。web 实际上反映了这种类型的服务器设置。您可能有自己的生产环境、试运行环境,有时还有我们的开发环境,但是很难让所有这些环境都保持最新和同步。在所有系统操作之间,SVN 要求语言版本和库都正确同步,并且数据在每个环境中都有表示。
jam stack 和 Netlify 的起源
当 Netlify 第一次开始的时候,这实际上是因为 Matt Biilmann 和他的团队看到了 GitHub 和 Git 创造了一个新世界,在那里你可以以不同的方式进行合作。在这个世界里,现代浏览器真正开始允许你把网络当作一个独立的应用程序,你可以把它推给最终用户,让他们在自己的浏览器上运行。
你可以开始看到后端分成所有这些不同的 API 和服务。虽然您可以自己构建其中的一些,但很多都是其他人的服务。一些很棒的例子包括 Twilio 、 Stripe 、contentiful、Sanity。io 和 Algolia 。网络空间中有更多的新兴服务,这些类型的服务让我们有了术语 Jamstack 。
jam stack 和静态站点
在现代 web 开发中,整个堆栈已经上升了一个级别,您可以将 UI 直接推送到浏览器,然后与所有这些不同的 API 和服务进行对话,无论是作为构建时系统还是运行时系统。这个领域的一些真正的早期先驱是杰基尔和 T2·恩伯,他们为 Jamstack 的崛起铺平了道路。
Jekyll 是一个静态站点生成器,由 GitHub 的创始人汤姆·普莱斯顿-沃纳(Tom Preston-Werner)创建,他把开发者的想法从长期运行的带有数据库的服务器和维护这种设置的所有复杂性中转移出来。它让开发人员认识到,每个网站都可以是一个带有构建步骤的 Git 存储库。这个构建步骤将知道如何获取 GitHub 中所有不同的源文件,并输出一个静态运行的现成网站,最终被推送到一个 CDN 。您可以用很少的开销获得惊人的性能优势和安全特性。
Ember 是单页面应用程序框架的先驱之一。它认为浏览器更像是一个操作系统,而不是一个文档浏览器。Ember 的最早版本使用的是 Rails 应用程序,Ember 将自己注入到视图层,一切仍然耦合在一起。Ember CLI 的后续版本真正开创了一个完全解耦的 web UI 层的概念,与后端分离。这种分离意味着利用 API 只是一个实现细节,而不再是架构级别的决策。
有了今天的 Jamstack 方法,利用 API 的解耦架构已经真正成为考虑 web 的标准方式。开发者不再认为网站和应用程序存在于某个单一应用程序的模板中。开发人员现在认为网站是可以存在于他们自己的 Git 存储库中的代码,遵循他们自己的一套工作流和 Git 分支策略。
能够在本地工作对 Jamstack 来说非常重要。能够完全在本地工作,然后将代码上传到远程的安全性是 Netlify 的真正灵感来源。只需克隆一个 Git 存储库,您就会突然拥有一个完整的本地环境,在这里您可以使用与您的生产网站完全相同的特性工作。你脱离了运行服务器和操作数据库等等。你可以简单地提升你的本地工作,让 Netlify 担心现代网站和网络应用程序的构建、发布和操作。
Netlify 开始看到协作工作流的出现,它们从长期的生产、试运行和开发环境中脱离出来,更倾向于针对每个 bug 修复或每次发布更新的拉式请求和短期功能分支。这促使 Netlify 在 2016 年引入了“部署预览”的概念,其思想是,如果您有一个带有主 URL 的生产网站,为什么不给每个拉请求提供自己的部署预览,每个部署预览都有一个唯一的 URL,您可以根据它进行共享和协作?
观看此视频剪辑观看 Netlify 首席执行官 Matt Biilmann 使用 Astro(一种构建静态网站的框架)全面演示本地开发和预览环境的原理。
下一代 Jamstack 工具
Astro 是 Matt 和他在 Netlify 的团队非常感兴趣的一个框架。它允许你在构建时用现代组件库做很多非常聪明的事情,精确定义你想要的 JavaScript 和动态,并且只让那些部分在运行时生成 JavaScript。作为一名开发人员,您可以自由选择想要依赖的组件库和底层 UI 框架。
你可以快速构建一个本地开发环境,这个环境完全模仿你以后将会推到云端的东西。一旦它看起来正确并且在本地表现出预期的行为,您就可以将代码推送到 Git repo 并创建一个 pull 请求来启动所需的构建和部署过程。
GitKraken 使创建 pull 请求变得快速而简单,使用 GitHub 的团队获得了更多的 PR 功能,如在不离开客户端的情况下对 PR 进行评论、批准和合并。
每一次部署都有一个唯一的标识符,它会一直存在。当您发布主站点的新版本时,您可以看到正在制作的内容,但也可以看到主站点的早期版本。您还可以看到一个内容图表,其中标识了这些特定的版本,这些内容将始终可用。这些总是可以立即访问的,不需要重新加载,能够无中断地回滚或前滚代码。
Git 建立了去中心化的网络
Git 天生就是去中心化的。这在概念上允许您在本地工作,并立即同步到一个远程存储库。正是这种去中心化的力量,使得 GitHub、GitLab 和 Bitbucket 等平台能够为开发人员的协作工作流做比任何早期的源代码控制平台更多的事情。开发人员可以直接围绕他们的源代码进行协作,共同构建工作流,而不是维护始终运行的 Subversion 服务器。
Netlify 应用了 Git 和 web 上的所有知识,允许开发人员在云平台上快速构建无状态、解耦的应用程序。它不仅仅是一个托管网站的地方,而是一个真正的工作流引擎,让您的整个团队更快地协作,在更短的时间内为 web 创建更好的结果。这让 Netlify 的团队非常兴奋。随着 Jamstack 的发展,每个人都将期待 Git 和那里出现的模式能够给我们所有关于接下来会发生什么的线索!
日产源代码泄露可以避免吗?
你认为你今天过得很糟糕……你看到日产公司的开发人员发生了什么吗?
日产的移动应用和内部工具的源代码(Git repos)被泄露到互联网上,因为该链接可以公开访问,并且密码很容易猜到。😬呀。
位桶上的托管代码
Bitbucket 服务器通常配置为脱机使用。理想情况下,您应该配置您的 Bitbucket 服务器,以便只有一组目标终端用户可以浏览到该实例,并通过 HTTPS 或 SSH 验证到他们的 Git 存储库。
了解 GitKraken Git GUI 如何通过 HTTPS 或 SSH 提供到远程 Git 存储库的安全连接。了解更多关于 GitKraken 认证的信息。
日产代码泄露是怎么发生的?
日产报告称,他们正在对源代码泄露进行调查,希望他们能发现如何避免这样一个简单的错误。当他们挖掘的时候,我们其他人可以享受这一集的两个简单收获:
Git 存储库的安全提示
本质上,Git 存在一些安全漏洞,因为它是由服务器访问控制的,开发人员可以重写历史。然而,建立协作过程和利用工具,如 Git 客户机,帮助您安全地连接到远程数据,将帮助您轻松地避免这些简单的错误。
了解你的 Git Repo 的权限设置
不要让你的自托管 Bitbucket 实例可公开访问(除非这是你的意图)。
设置密码
不要使用默认密码。
这应该适用于目前你在网上设置的任何密码,尤其是专业账户。
考虑使用一种工具,如 LastPass ,它可以设置安全密码并管理您的帐户登录。您甚至可以共享协作团队帐户的密码。
配合 GitKraken 使用 Bitbucket】
GitKraken 可以通过个人访问令牌使日产团队的身份验证变得简单而安全。
当设置 GitKraken 与 Bitbucket 服务器的集成时,我们提示用户确认 URL 并提供个人访问令牌。
GitKraken 将引导您使用您的 Bitbucket 服务器凭证登录,以创建访问令牌,包括您可以分配给令牌的权限。这是您可以增强 Git repo 安全性的另一个领域。
我们还让用户能够为 Bitbucket 服务器生成 SSH 密钥。
使用 GitKraken 保护您的 Git Repos】
GitKraken Git GUI 为安全地连接到您的远程 Git 存储库提供了多个选项,并提供了权限设置以满足不断增长的开发团队的需求。
介绍节点哨兵文件监视器
原文:https://www.gitkraken.com/blog/node-sentinel-file-watcher
Node whatnow?
节点哨兵文件守望者( NSFW )。这是一个为 Node.js 构建的文件监视模块。我构建 NSFW 是为了克服我们在开发 GitKraken 时遇到的一个障碍,我将它作为一个正在进行的开源项目发布。它实际上对工作完全安全。甚至是最理想的。
NSFW 是一个本地节点模块,这意味着它被开发和编写为在没有解释器的操作系统上本地运行(JavaScript 使用解释器,而像 C++这样的语言编译成机器代码)。
NSFW 有一个针对 Linux、MacOS 和 Windows 的文件监视实现,这些实现被包装和绑定以供节点运行时使用。由于它的本地实现,NSFW 能够以一种非常高效的方式观察所有操作系统上的递归目录。
NSFW 解决了什么问题?
目前,Node 对文件监视的支持很差。每个操作系统都有不同的能力来监视目录。以下是一些名人在推特上说的话:
Linux 不能执行递归目录监视。当文件被更改时,MacOS 不提供文件名。
除此之外,还有一个事实是,对于节点的文件监视器来说,还有许多未解决的问题,并且节点在不同的操作系统之间没有一致的体验。
NSFW 是如何解决这个问题的?
NSFW 通过利用 3 个用 C++编写的低级文件查看实用程序,针对 Linux、MacOS 和 Windows 操作系统,解决了 Node 上较差的文件查看体验。
NSFW 在一个单独的线程上完成大部分工作,与内置的节点文件系统(FS)观察器 API 相比,它的性能有了很大提高。NSFW 在单独的线程上对文件事件进行排队,并将文件更改调度批处理到单个回调中。该回调可以在内部进行调节,以防止 JavaScript/C++桥垃圾邮件。
这意味着 NSFW 不会降低 JavaScript 应用程序的速度,即使它们处于大型文件系统操作的负载下。
Linux、MacOS 和 Windows 都有自己的文件监控 API。由于 NSFW 的手表实用程序专门针对这些 API,这意味着使用该模块的体验在所有三个操作系统中是一致的。NSFW 填补了每个 API 的空白,因此它们都具有一致的功能完整性:
- Linux:
Inotify
文件监视系统不执行递归目录监视,所以 NSFW 为你建立并维护一个递归监视树。 - 众所周知,MacOS:
FSEvents
会产生不一致的文件事件(如果事件发生得太快,文件事件bitmask
会损坏),因此 NSFW 为您统计并消除文件更改事件的歧义。 - Windows: 支持开箱即用的所有目标需求。**(记录划痕)**没错, Windows 的原生支持最好。我说了。
为什么这是 Axosoft 开发团队要解决的一个重要问题
GitKraken 目前是 NSFW 的主要消费者。一个好的 Git 客户端不应该带有刷新按钮,因为它应该自动知道什么时候会发生变化。
What could have been: Imagine if GitKraken needed a refresh button like this. Gross!
NSFW 对于 GitKraken 流畅的跨平台体验至关重要,因为它有助于应用程序快速准确地响应它正在查看的存储库中的变化。NSFW 是一个安静、谦逊、没有虚饰的后台进程。不会兴风作浪。它不通过电影说话,不大声咀嚼,不打呼噜,但它的透明是它的长处;如果你注意到了,很可能是因为某些东西不工作了。因此,让我们为安静高效地查看文件干杯——NSFW 模块让这一切变得简单。
发展障碍
哦是的。
由于对任何文件监视 API 都没有经验,对 Node (NAN) API 的本机抽象也没有什么经验,并且对如何对 Node 与每个文件监视实用程序的交互进行建模也没有清晰的理解,0.x.x NSFW 版本遇到了麻烦。
在 Windows 上,我尝试使用 C++/CLI 来使用。NET 库。虽然这使得它可以快速启动并运行,但它不可避免地适得其反,因为一些用户由于缺少库依赖而无法运行 GitKraken。叹息。
我还遇到了与两个不同的垃圾收集器并发运行相关的奇怪错误(一个用于节点,一个用于托管文件监视器)。当我报废了。NET 实现,我为 Windows 操作系统实现了更强的稳定性。
在 Linux 和 MacOS 上,问题围绕着不熟悉文件监视 API 和本机结构。总体上的不熟悉加上每个操作系统所采用的不同策略,最终将整个项目变成了一堆意大利面垃圾。[REDACTED: DEEMED NSFW BY THE AXOSOFT DEPARTMENT OF PROPAGANDA]
最后,大型文件更改操作会降低每个操作系统的速度。当时,这些消息没有节流行为。节点应用程序会受到文件系统更改通知的严重影响,速度慢得像爬行一样。在 GitKraken 中,每当我们执行引导过程时,都会遭受这样的后果,这涉及到大量的文件操作。
在 0.x.x 个月(又名黑暗时期)摆弄完这个项目后,我学到了很多关于每个底层文件监视器 API 如何工作的知识,包括它们的警告、要求和漏洞。
在花了一周时间拼凑了一个完整的系统图后,我把整个 0.x.x 项目都报废了,重新构建项目,有计划地处理各个操作系统的差异。我还放弃了 C++/CLI 界面,选择了 Windows 中的ReadDirectoryChangesW
。
几个经验教训
- 预测一个系统的架构而没有先用核心特性弄脏你的手,意味着你可能最终会扔掉你的项目,用核心特性弄脏你的手,然后重新开始这个项目。作为一个新的开发者,准备好扔掉你的原型。
- 我不确定 C++/CLI 和 Node 是否应该成为一个东西。永远不会。
在节点中执行 git flow:Node git-flow
在 GitKraken V0.5 中,我们增加了对 GitFlow 的支持。在这个过程中,我们创建了一个包装 NodeGit 的库,它允许我们通过一个函数调用来执行 GitFlow 命令。该库现在是开源的,可以节省其他开发人员在 Node.js 中进行 GitFlow 操作的时间。
什么是 GitFlow?
GitFlow 是一种分支和合并策略,可以在任何 Git repo 中使用。它是一个规则列表,用于组织回购的历史,也用于简化发布过程、错误修复和功能创建。
在使用 GitFlow 的 repo 中,将始终存在两个分支:master
和develop
:
master
:生产中的版本- 当前正在为下一个版本开发的版本
其他支持分支是特定的类型(即功能、修补程序或发布分支),其中每个分支都有自己的分支和合并规则。
正如你所想象的,这些规则执行起来可能会很乏味,违反规则的人迫在眉睫。幸运的是, GitFlow 方法的创建者意识到了这些问题,并创建了一个 Git 扩展来自动化启动和完成 GitFlow 分支的过程。Axosoft 的开发人员只是实现了同样的想法;区别在于我们扩展了 NodeGit 而不是 Git core。
如何使用
Nodegit-flow 从初始化开始。
nodegit.Flow.init
会将以下密钥添加到回购的 Git 配置中:
const nodegit = require('nodegit-flow');
const config = nodegit.Flow.getConfigDefault();
nodegit.Flow.init(repo, config);
gitflow.branch.master
gitflow.branch.develop
gitflow.prefix.feature
gitflow.prefix.hotfix
gitflow.prefix.release
gitflow.prefix.versionTag
gitflow.prefix.versionTag
这些键定义了 GitFlow 分支在启动某个功能、修补程序或版本时将拥有的前缀。他们还将确定 nodegit-flow 将与master
和develop
关联的本地分支名称。
您可以选择坚持使用.getConfigDefault()
提供的默认配置值,也可以修改这些值来满足您的偏好。
下面是您的回购在初始化后的样子。
现在让我们开始一个专题。
nodegit.Flow.startFeature(repo, 'myFeature');
我们刚刚创建并检查了一个名为feature/myFeature
的分支,它指向与develop
相同的提交。现在,在用 vanilla NodeGit 创建了一个 commit 之后,我们的图表将看起来像这样:
一旦该功能完成,只需一行代码即可完成:
nodegit.Flow.finishFeature(repo, 'myFeature');
这已经将feature/myFeature
合并到开发中,检出了develop
,并删除了feature/myFeature
。
Nodegit-flow 不仅包含特性的方法,还包含补丁、版本和所有其他 git-flow 的东西。
通过扩展 NodeGit 以在单独的库中包含 GitFlow 函数,我们让 GitKraken 很好地与 GitFlow 问题分离,并为对扩展 NodeGit 感兴趣的开发人员提供一个小示例。
虽然 GitKraken 不是开源的,但我们定期贡献和发布我们内部使用的工具,如 nodegit-flow。其他示例包括 NodeGit、libgit2 和 Electron。
While GitKraken is not open source, we regularly contribute to and publish tools that we use internally such as nodegit-flow. Other examples include NodeGit, libgit2, and Electron.
NodeGit 和 libgit2 如何增强 GitKraken |免费 Git GUI 下载
为 GitKraken 提供动力的喷气发动机
我们从第一次试用 GitKraken Git GUI 的人那里听到的一个常见问题是“撤销和重做按钮是如何工作的?”如果你习惯于只使用 CLI,或者只在后台运行 Git CLI 命令的 GUI,这可能看起来像某种奇怪的巫术。
这背后真正的技术,以及 GitKraken 所有的了不起之处,不是魔术,而是开源技术。支持许多其他 Git 项目的相同开源技术。它被称为 NodeGit,我们非常兴奋地告诉你关于它的一切。
使用由 NodeGit 支持的 GitKraken 的撤销和重做按钮,使您的 Git 工作流程更快更安全!
不带命令行的 Git
在 git-scm.com 官方手册的后面,你会发现一个叫做“管道和瓷器”的章节。本章分解了 Git 软件如何在内部运行(“管道”)以及人和代码如何与它交互(“瓷器”)。通常,在为 Git 开发功能时,软件会执行运行 Git“瓷器”API 的子进程,并解析标准输出流的结果。
这可能是非常低效的。当执行 CLI 命令时,Git 需要与底层存储库数据库进行交互,它上面的软件必须通过文本解析重新解释检索到的结果。
幸运的是,我们可以完成基于 Git 的版本控制,而不直接依赖 Git 的软件来实现。Git 提供了一组如何操作文件系统和跟踪随时间变化的协议和标准,以及一组使用这些协议的预打包的 CLI 命令。
对于那些可能是计算机科学新手的人来说,协议指的是类似于简单邮件传输协议(SMTP)的东西。协议本身不是电子邮件,而是电子邮件如何在计算机之间发送。因此,无论你更喜欢 Outlook、iCloud、Gmail 还是 AOL,你都可以发送和接收电子邮件,因为所有工具都使用相同的标准。
那么,GitKraken 如何在没有 CLI 的情况下利用 Git 呢?
libgit 2——Git 的开源库
这就是 libgit2 的用武之地。libgit2 是一个流行的开源库,用于与 git 交互,但作为一个新的实现,它不需要 Git 管道或瓷器命令。该项目将自己描述为*“Git 核心方法的一个可移植的纯 C 实现,作为一个具有可靠 API 的可重入可链接库提供,允许你用任何支持 C 绑定的语言编写本地速度的定制 Git 应用程序。”*
这是一个很棒的项目,但是我们知道的大多数开发人员并不特别喜欢用 c 语言工作。
如果你从未直接使用过 C 语言,你并不孤单。这是一种非常有效和强大的语言。但是,就像后来的 C++一样,它对专家非常友好,但对用户不太友好。这就是为什么这么多开发人员喜欢使用 Python、PHP 和 JavaScript 等语言,包括 Node。
【Node 呢?
在 GitKraken,我们热爱 Node!我们传奇的跨平台 Git GUI,可免费下载,作为 T2 电子应用程序跨平台交付。为了在 Node 中有效地使用 libgit2,我们需要一种方法来处理相同的 API,而不需要重写和维护 Node 中的整个库。这就是我们故事中的主人公出现的地方。
为胜利而努力
NodeGit 是一个开源项目,任务是为 libgit2 项目提供节点绑定。简而言之,NodeGit 管理一个小得多的模板文件集,这些模板文件解析 libgit2 的文档以生成 Node 可以访问的代码。这是一个相当深奥的解释,所以让我们后退一步。
如果你看看 libgit2 的代码库,有超过 100,000 行代码。让我们来看看为什么这是如此巨大。
每个 Git 命令实际上都需要几组小步骤。例如,git add
需要 3 个基本步骤:
- 根据文件内容计算 SHA-1。
- 将文件内容存储在位于的存储库数据库中。git/对象
- 将文件内容注册到。git/索引
可以想象,执行非常复杂的任务,如 Git rebase 或 Git cherry pick 会有更多的步骤,尤其是当您考虑到每个命令有几十个选项时。
尝试手动重写从 C 到 Node 的所有代码,然后尝试在每次更新时手动更新它,这将是一项艰巨的任务。因此,NodeGit 维护了一个小得多的代码库,大约 6000 行,可以查找和解析 libgit2 的文档,以生成我们可以在 Node 而不是 c 中运行的代码。当您在 GitKraken 接口中拖放它们时,新代码会以正确的顺序进行完全相同的 API 调用,以完成类似于 Git pull 或 Git commit 的任务。
为什么这对 GitKraken 如此重要是因为它允许我们在这些调用中插入自己的函数。这就是让我们给用户一个撤销按钮或者其他任何 GitKraken Git GUI 的独特功能!
未来是北海巨妖
我们非常自豪能够成为这个项目的维护者,这个项目正被世界各地如此多的软件产品所利用。NodeGit 让我们在 GitKraken 中做一些非常棒的事情,并让我们有能力做更酷的事情。我们也很自豪地支持开源社区。最终,我们希望帮助 Git 改进,并帮助地球上的每一个 Git 用户以一种更加透明、可靠和高效的方式管理他们的工作。
如果您还没有了解 GitKraken Git GUI 所提供的功能,那么现在就是您的机会。
“谢谢@GitKraken 的撤销功能。不小心丢弃了我所有的更改,但现在它们又回来了😁"–@ offset 337
怪怪会保护你不受自己的伤害。
开源社区建设| GitKraken
原文:https://www.gitkraken.com/gitkon/open-source-community-building
https://www.youtube.com/embed/_cTUNvUUKpk?feature=oembed
视频
你已经有了一个社区…现在呢?
发展和扩大开源社区并非没有挑战。随着项目开始获得牵引力,通常需要越来越多的“创客”,即定期为项目做出贡献的人,但很难建立工作流和流程来授权热心的社区成员承担责任。
让我们探讨一下您在构建开源社区时可能面临的一些挑战,一些应对这些挑战的技巧,以及如何在您忙于处理大量其他事情时关注社区健康。
开源社区文化
当一个开源社区很小的时候,文化是你可能不需要明确表达的东西。人们在你的社区中是因为他们关心你,他们想要帮助你,大多数时候,一切都非常友好地进行着。
也许有人越轨或说了一些不恰当的话,但这很容易解决,因为你很可能认识他们。维护者很可能对大多数开源社区成员直呼其名,社区觉得他们有一条直接的路线来分享他们的反馈并被倾听。
然而,随着社区开始扩大,保持这种亲密感变得更加棘手,人们加入社区的速度将变得难以与每个人保持个人联系。
假设每个人都“理解”这种文化可能很容易,但这可能会导致问题。
拥有清晰的开源社区文化
随着您的开源社区的扩展,清晰是至关重要的。
如果你没有行为准则,那就制定一个。网上有很多例子可以作为模板,但要确保它符合你所在社区的价值观和文化。
如果你有行为准则,现在是时候回顾一下了。无论是审核现有的行为准则还是制定新的行为准则,都要问自己以下问题:
- 够全面吗?它涵盖了它需要的一切吗?
- 是否清楚将如何处理制裁?包括人们在被制裁后是否/如何能够返回?
- 除了您之外,是否还有其他人可以向其报告问题(例如,如果问题与您有关)?
Mozilla 开源了一个很棒的工具,用于审查你的行为准则,也可以用来创建一个。
处理灰色区域
随着人们开始测试您的开源社区的边界,或者您遇到更多微妙的问题,可能是时候考虑您的社区是否会从价值声明中受益了。
这有助于掩盖灰色区域,在这些区域中,有些事情并不完全违反行为准则,但也不是您希望在社区中看到的。一些很好的例子包括:
培养你的开源社区文化
即使有强有力的行为准则和价值声明,如果它们只是被搁置在积满灰尘的架子上,它们也不会有用。你的开源社区的领导者需要把标准设得很高,并保持这个标准。
- 举例说明你希望在社区中看到的行为
- 迅速、果断、公开地(在适当的情况下)采取行动反对不必要的行为
- 承认自己的错误,并乐于从中吸取教训
建立自我调节流程
即使这一切都准备好了,对于一小群领导者来说,要掌控一切还是很困难的,这就是为什么早期的另一个关键步骤是建立自我调节系统。
这可能看起来像是在您使用的工具中为人们提供了报告不当行为的功能,这些行为会被升级以供审查,或者这可能意味着在您的论坛或聊天实例中有一个社区版主团队,或者建立一个分流团队以欢迎和响应报告错误或做出改进的人,例如。
自我调节是一种很好的方式,可以让您的开源社区中最活跃、最投入的成员以他们已经熟悉的方式做出贡献,同时也在营造一种欢迎、包容和友好的氛围中发挥重要作用。
寻找和培养开源社区贡献者
越来越多的社区所面临的最大挑战——不仅是在开源领域,在更广阔的世界中也是如此——是创建一个可持续的模式,让人们参与到事情的发生中来。
随着您的开源社区规模的扩大,需要完成的事情变得无止境,以至于核心领导团队根本不可能独立完成。授权成为一个关键的生存因素。
明确表示你对贡献持开放态度
这可能是显而易见的,但是有许多开源社区并没有明确表示他们欢迎贡献。
清楚你想接受什么样的贡献是值得的;这可以是任何事情,从帮助修复错误和创建新功能,到为博客写内容,管理社交媒体,调节你的社区频道,创作艺术品,写文档等。名单很大!
委派什么
你可能没有能力委派大的任务,但是你有没有想过如何从减少负担和邀请小的贡献开始?
如果你在纠结该委派什么,看看那些低风险的事情——如果出了问题很容易逆转——以及其他人可以从头到尾做的事情。
一些例子可能是:
- 起草一篇博文来宣布一个新版本
- 验证报告的错误并应用正确的标签
- 检查并修复您的网站或文档中的断开链接
从小的、明确的任务和项目开始,减少你和你的核心团队的努力,这是开始建立授权信心的好方法。
- 从小处开始,然后成长
- 治理模式
- 决策模型
- 自动化所有的事情
努力去信任你的开源社区成员会有很大的帮助。请记住一句名言:“信任是一剂最好的小剂量良药。”
你必须从某个地方开始——接受人们不按你的方式做事,如果仍然能达到预期的结果
- 授权人们跳进去,如果需要的话,有护栏
- 给予支持和鼓励的重要性
- 给予支持和鼓励的重要性
除了信任你的成员,设定适当的界限也很重要,当征求捐款和维护你的社区时。
不要害怕说不
- 设定办公时间/工作时间,并强制执行——你有权休息
- 建立结构和工作流程,这样你的核心领导就可以完全脱离社区
- 建立结构和工作流程,这样你的核心领导就可以完全脱离社区
开源社区健康
随着开源社区的不断发展,关注社区的健康发展是非常重要的。一个社区的健康指标可能与另一个社区无关,所以要仔细考虑你想要跟踪什么,并确保数据点与你的社区价值观一致。
决定你想记录什么,为什么
- 找到尽可能自动化的工具:
- 向社区汇报——告诉他们事情进展如何,哪里需要帮助;让数据说话
- 向社区汇报——告诉他们事情进展如何,哪里需要帮助;让数据说话
使用 GitKraken 的开发者工具发展您的开源社区,对公共存储库免费。今天免费试用 GitKraken 工具:桌面版的 GitKraken 客户端,VS 代码版的Git lens,吉拉版的 Git 集成。
使用 GitKraken 的开发者工具发展您的开源社区,对公共存储库免费。今天免费试用 GitKraken 工具:桌面版的 GitKraken 客户端,VS 代码版的Git lens,吉拉版的 Git 集成。
GitKraken 与操作码合作
见见胡安·查韦斯。他是一个终生的技术人员,一个为我们国家服务了五年多的老兵,一个 GitKraken 用户。
在军队服役期间,Juan 发展了很强的管理和领导能力。他现在正在将自己毕生对技术的热情——以及最近获得的领导技能——转化为技术职业;他目前正在攻读网络安全和领导力的硕士学位。
当我们的退伍军人从军队生活过渡到平民生活时,军队支持网络的丧失是一个深刻且往往困难的调整。退役后寻找新的职业道路带来了额外的挑战。
进入运营代码,这是一个致力于支持退伍军人及其家人在科技领域开展职业生涯的组织。运营代码填补了一个有价值的社区和职业服务的空白。
Juan 在参加编码训练营时学习了操作码,并作为研究生继续活跃于该组织。当我们的退伍军人和他们的家庭进入他们的下一个篇章时,他们提供一对一的指导、支持性的在线社区和就业服务。
11 月 10 日星期五,Operation Code 将举办一场慈善晚宴和拍卖。该活动旨在筹集非营利组织所需的资金,以帮助他们的 3000 多名军人、警卫和预备役部队、退伍军人及其配偶和家人,提供软件导师计划、技术会议奖学金、职业支持、网络和其他资源等服务。
Juan 发现 Operation Code 的在线社区特别有用。任何时候,一个操作码成员想要说出一个技术问题,并讨论解决方案的方法,一个国际的,全天候的,在线社区可以作为一个共鸣板。
Juan 喜欢在他的编码项目中使用 Git GUI 客户端 GitKraken ,并分享,
它[GitKraken]确实帮助我理解了 Git 进程是什么样子的,以及[在终端中]命令的含义。
– Juan Chavez
胡安给老兵们的建议是:“不要害怕追求科技;会很艰难,但你通过了新兵训练营。如果你对这种转变感兴趣,让自己沉浸在技术中一年,不要告诉自己你做不到 ”
我们很自豪能够通过赞助和提供我们的 Git GUI 客户端作为资源来支持操作代码,让学习 Git 变得更加直观。
GitKraken 产品团队小组- 2021 GitKon Git 会议
原文:https://www.gitkraken.com/gitkon/panel-gitkraken-product-team
https://www.youtube.com/embed/Ql3QJW8MBvI?feature=oembed
视频
在 2021 GitKon Git conference 的这个非常特别的小组讨论中,GitKraken Client 背后的产品团队分享了对世界上最流行的 Git 工具的独特见解,并回答了社区问题。
GitKraken 产品团队小组包括:
- GitKraken 产品经理兼小组主持人 Jonathan Silva
- 然后是 suceava,CTO,gitkraken
- GitKraken 产品总监 Jeff Schinella
- GitKraken 产品总监 Justin Roberts
git kraken 客户端的外观和感觉
有人把 GitKraken 客户端比作吉他英雄,拥有充满活力的彩色阵列。Justin Roberts 透露,GitKraken 团队最初决定构建 GitKraken 客户端的原因之一是 Git 客户端的环境在他们开始时相当糟糕。令人惊讶的是,甚至没有 Git 客户端有深色主题,所以从一个带有非常基本的深色调色板的开发工具开始很容易。带有亮色的深色主题让 GitKraken Client 立即从市场上的其他 Git 客户端中脱颖而出。
Jeff Schinella 指出,不同城市的地铁风格图也有一些启发。节点连接的想法,以及能够查看 Git repo 的状态,沿着一条停止的路径,给了团队构建 GitKraken 客户端的方向。事实上,很多设计,包括臭名昭著的 Keif 北海巨妖标志,都深受干净的 60 年代风格的平面设计和地铁系统图的影响。
拖放
GitKraken 客户端的中央图形允许用户拖放一个分支来开始一系列其他操作。Jonathan Silva 指出,这是帮助他了解 Git 以及“触发”T2 Git 合并或 T4 Git 重组意味着什么的事情之一。根据 Jeff 的说法,拖放的想法已经存在了一段时间,所以团队在 GitKraken 客户端实现了它,使人们更容易对他们的存储库进行更改,而不必在终端上键入。
GitKraken 客户端中的可视化表示使得抓取提交并将其拖到新位置变得非常直观。当你谈到 Git 可视化 GitKraken 客户端之所以成为现在这个样子的一个重要原因——你是在谈论能够看到和可视化一个提交或 Git 分支的样子。它有助于用户理解 Git,并发现您可以在 GUI 中做的事情,这些事情您可能无法仅使用 CLI 来完成。只要把一个分支拖到另一个分支上,你就会得到一个上下文菜单,上面写着“这是你可以在这两个分支之间做的所有事情。”
连接到 Git 托管服务
使用 GitKraken 客户端与 Git 托管服务的集成与仅通过 SSH 和 HTTPS 连接之间的区别在于,您可以使用特定于提供商的操作,例如针对 GitHub pull 请求的交互式 PR 管理,它甚至允许您在不离开工具的情况下合并 pull 请求。连接集成后,您可以通过 GitKraken 客户端中的其他托管服务与拉请求进行交互,也可以直接在 GitKraken 客户端中进行类似分叉远程的操作。
虽然 Git 托管服务集成非常强大,但是您仍然可以使用 SSH 和 HTTPS 连接到其他尚未与 GitKraken Client 完全集成的服务。您甚至可以拥有不同的概要文件来连接到不同的集成。GitKraken 团队一直在听取社区的意见,看看下一步要集成什么样的 Git 托管服务。 GitKraken 维护着一个反馈网站,社区成员可以在这里提出新的请求并投票支持现有的请求。例如,社区真正推动了与 AWS CodeCommit 和微软 Azure Repos 的集成。这些已被添加到 GitKraken 客户端的基本功能,并计划在未来的版本中提供更丰富的集成功能。
未充分利用的 GitKraken 客户端功能
饭桶怪
Dan Suceava 最喜欢的未被充分利用的 GitKraken 客户端特性是 Git 责备。这是一个非常强大的功能,可以让你查看历史和作者信息。现在不要用它去指责别人😉,但是能够看到谁做了哪些更改以及何时做的更改也很好。跟踪某些东西何时损坏以及谁可能损坏它们可以节省大量调查和实施修复的时间。
活动日志
活动日志是 GitKraken 客户端的另一个功能,丹希望更多的人知道。要使用此功能,请点击 GitKraken 客户端页脚栏中看起来像项目符号列表的图标。
活动日志向您显示在客户端内部执行了哪些操作。许多习惯于 CLI 的人经常会问,当 GitKraken 客户端执行一个操作时,会发生什么情况。虽然 GitKraken Client 实际上并不执行 Git CLI 命令,但它在后台做了很多事情,活动日志会向您显示执行了哪些操作。
Activity logs is another feature in GitKraken Client that Dan wishes more people knew about. To access this feature, click on the icon in the footer bar of GitKraken Client that looks like a bulleted list.
Activity logs show you what actions were performed inside the client. Many people who are used to the CLI often ask to see what happens under the hood when GitKraken Client does an action. While GitKraken Client does not actually perform Git CLI commands, it does a lot of stuff in the background, and the activity logs show you what operations were performed.
命令面板
对于贾斯汀来说,GitKraken 客户端中最没有被充分利用的功能是命令面板。你可以通过输入Ctrl/Cmd+P
或者点击顶部导航菜单中的魔棒图标来快速打开它。从那里,您可以访问应用程序提供的许多命令,而不必实际点击它们。
Justin 个人很喜欢它,因为当他审查 pull 请求时,他可以通过键入问题编号找到正确的分支。命令面板显示所有接近预定目标的选项,因为它使用“模糊搜索”逻辑,也称为快速全局搜索。
For Justin, the most underutilized feature in GitKraken Client is the Command Palette. You can open this quickly by typing Ctrl/Cmd+P
or by clicking the magic wand icon in the top nav menu. From there, you gain access to a lot of commands that the application offers without having to go and actually click them.
Justin personally loves it for checking out branches when he’s reviewing pull requests as he can find the right branch by just typing the issue number. The command palette reveals all the options close to the intended target because it uses “fuzzy search” logic, also known as fast global search.
内置代码编辑器
Justin 认为值得更多关注的另一个特性是 GitKraken 客户端中包含的编辑器。客户端嵌入了 Monaco 编辑器,这是与代码使用的基本编辑器相同的编辑器。
在 GitKraken 客户端进入一个文件并开始编辑真的很容易;只需使用命令面板搜索要在编辑器中打开的文件,然后开始工作!
Another feature that Justin thinks deserves more spotlight is the editor included inside of GitKraken Client. The client embeds the Monaco editor, which is the same basic editor VS Code uses.
交互式重置基础
GitKraken 客户端提供的 Jeff 最喜欢的功能是交互式 rebase。从开始到结束,试图弄清楚并理解 Git interactive rebase 如何发生的整个过程使用 CLI 非常困难。利用 GitKraken 客户端的拖放功能,交互式 rebase 成为一种直观的体验,您可以在单个 GUI 菜单中对提交进行重新排序、合并、重命名或压缩。当在 GitKraken 客户端之外执行时,交互式 rebase 是相当乏味的,并且可能是非常具有破坏性的。
Interactive Rebase
GitKraken Client 降低了您的回购处于不良状态的风险,并在执行高级操作时给予您更多的控制,如交互式 rebase。
吉塔拉克 CLI
根据 Justin 的说法,GitKraken 客户端 8.0 版本发布的 GitKraken CLI 可以追溯到 GitKraken 团队最初的目标。他们希望为可能是 Git 新手的用户开发超级直观和清晰的工具。该团队希望为用户提供一个真正易于使用的图形用户界面。
从一开始,GitKraken 团队就对 CLI 有一点厌恶,这有点像是一种“Git 客户端对 CLI”的心态。这是该团队长期以来的看法,因为他们不明白为什么有人会选择使用 CLI 而不是 GUI。
然而,这些年来,GitKraken 团队开始更多地了解用户和软件开发行业,并且很明显,虽然 Gi 工作流确实已经发展了,但是命令行并没有走向任何地方。有些人是使用 CLI 长大的,他们对此非常熟悉。在 CLI 中还有一些更强大的功能,GitKraken 不想忽视这部分开发人员。
GitKraken 团队真的很想接受 CLI 中可以做的事情,然后在 CLI 工具中应用 GitKraken Client 提供的一些可用性优势。
该团队通过采访用户发现的一件事是,终端设置总是非常紧张、烦人和困难。您可以用来定制终端的包和东西的数量可能看起来非常多,而且非常耗时。
The GitKraken team really wanted to embrace what can be done in the CLI, and then apply some of the same usability benefits offered by GitKraken Client in a CLI tool.
Git 命令的自动完成建议
GitKraken 团队希望提供许多对 CLI 用户有帮助的特性,比如 Git 命令的自动完成建议。当你输入 Git 命令时,GitKraken Client 会根据你输入命令的位置给出建议,而不是去记忆命令或浏览文章寻找你需要的东西。
Auto-Complete Suggestions for Git Commands
The GitKraken team wanted to offer a lot of features helpful for CLI users, like auto-complete suggestions for Git commands. When you’re typing Git commands, rather than having to memorize commands or dig through articles trying to find what you need, GitKraken Client will start to suggest things based on where you’re at in typing the command.
提交终端选项卡中的图形
GitKraken CLI 给终端带来可视化,真的很强大。GitKraken 团队经常从用户那里听到的是,他们使用 GitKraken 客户端是因为他们可以将事情可视化,但他们实际上是回到 CLI 来运行命令。GitKraken CLI 创建了一个地方,您可以在这里做所有使用 Git 做的事情,无论是使用 CLI 还是使用提交图,都可以在一个地方完成,无需切换上下文。
Commit Graph in Terminal Tabs
GitKraken CLI brings visualization to the terminal, which is really powerful. Something the GitKraken team often hears from users is that they use GitKraken Client because they can visualize things, but they actually go back to the CLI to run commands. GitKraken CLI creates a place where you can do all of the things that you do with Git, whether that’s with CLI or with the commit graph, all in one place without context switching.
观看此视频剪辑听听 GitKraken 团队对 GitKraken CLI 的更多介绍。
git kraken 客户端中的团队
GitKraken 客户端在7.7版本中引入了团队视图。在左侧面板中,有一个团队窗格,您可以在其中选择您所属的任何团队并执行某些团队操作。根据 Justin 的说法,这是更好地可视化 Git 存储库的原始目标的自然延伸。
GitKraken 客户端中的团队功能超越了个人对项目的贡献,可视化了仓库中每个人的工作,包括他们所有的远程控制,他们如何连接,以及他们如何改变项目。虽然 GitKraken Client 可能曾经被认为主要是一个单一的开发工具,但团队的加入已经是朝着更好地服务组织迈出的一大步。
GitKraken Client introduced a team view in version 7.7. In the left panel, there is a Teams pane where you can select any teams that you belong to and perform certain team actions. According to Justin, this is a natural extension of the original goal to better visualize a Git repository.
避免合并冲突
我们都知道这样的场景,您正在做团队中其他人也在做的事情,并且您最终会遇到 Git 合并冲突。合并冲突会导致很多问题。
Teams 面板显示了谁同时在处理存储库,GitKraken 客户端实际上会在代码被推送之前提醒您潜在的合并冲突。
We all know the scenario where you’re working on something that someone else on your team is also working on, and you ultimately run into a Git merge conflict. Merge conflicts can cause a lot of problems.
The Teams panel shows who is working on the repository at the same time, and GitKraken Client will actually alert you of a potential merge conflict before the code is pushed.
GitKraken Client 不仅会警告您潜在的合并冲突,如果它们确实发生了,该工具还会帮助您解决它们。GitKraken 客户端的内置合并工具使得合并冲突解决这一众所周知的高风险任务变得更加安全。
深度链接
想象一个场景,你想和某人共享一个 Git 分支。你可能会跳到 Slack 上说“嘿,你能去看看我的分店吗?”你必须记住分支机构的名称,输入分支机构的名称,然后你的同事必须读出分支机构的名称,并返回到 GitKraken 客户端搜索分支机构。这正是 GitKraken Client 引入深度链接的原因。
深度链接使得点击一个分支,抓取一个链接,然后将该链接粘贴到 Slack,或者任何你需要引用它的地方变得非常容易。这使得其他人能够点击链接,并在他们的机器上轻松打开 GitKraken 客户端中的分支。
跳到视频中的这一部分听关于 GitKraken 客户团队功能和深度链接的完整对话。
Imagine a scenario where you want to share a Git branch with someone. You might hop on Slack and say “hey can you go check out my branch.” You have to remember the branch name, type the branch name, and then your colleague has to read the branch name and go back into GitKraken Client and search for the branch. That scenario is exactly why GitKraken Client has introduced deep linking.
团队最喜欢的厨师
Keif 是 GitKraken 的吉祥物,他们喜欢穿上戏服(psst:看看 Keif 画廊!)各有各的个性,每个 GitKraken 团队成员都有自己喜欢的。
观看此视频了解哪些 Keifs 进入了小组成员的最爱名单。
GitKraken 客户端继续进化
小组讨论了 GitKraken 客户端是如何从一种解决内部问题的方式发展成为世界领先的 Git 客户端,帮助数百万用户更高效地使用 Git 的。
无论是可视化,执行高级和复杂 Git 任务的便利性,还是令人敬畏的 CLI 和团队功能,我们知道您会喜欢在您的工作流程中使用 GitKraken Client 。今天就下载 Mac、Windows 和 Linux 版的传奇 GitKraken 免费客户端!
GitKraken Client Continued Evolution
The panel gave a look into how GitKraken Client has evolved from a way to solve an internal issue to the leading Git client in the world, helping millions of users become more productive using Git.
Whether it’s the visualization, the ease of performing advanced and complex Git tasks, or for the awesome CLI and team features, we know you will love using GitKraken Client in your workflow. Download the legendary GitKraken Client free for Mac, Windows, and Linux today!
React.js 中的性能问题和解决方案:第 1 部分
原文:https://www.gitkraken.com/blog/performance-solutions-react-js-pt-1
这是 4 部分系列的第 1 部分!
这篇文章是关于 GitKraken 开发者所面临的性能问题的 4 篇系列文章的第一篇。这篇文章概述了问题本身,本系列的后续文章将集中讨论每个问题的解决方案是如何开发的。
第一部分:问题
这听起来可能很明显,但为了改进一个应用程序,你必须找出痛点,并准确地找出导致它们的原因。
我们在 GitKraken 中注意到的一个主要问题是,存储库越大,速度越慢。我们使用了一些工具来更具体地了解这种性能下降的根源;比如电子版的 Chrome 开发工具,它包含一个分析器,可以很方便地让你知道你大部分时间都花在哪里了。
git kraken 中某个动作的简介
经过一些调查,很明显这个应用程序在 React 进程中花费了大量不受欢迎的时间,频繁地渲染和更新。幸运的是,React 有自己的工具来发现性能问题,所以我们能够转移到这个工具上来获得更细粒度的问题。结果是大部分花费的时间都在图表中,而且大部分是我们在软件开发行业中喜欢称之为浪费的时间。浪费的时间可能正是你所期望的——它是花费在原本不需要的过程中的时间。
在 React 的上下文中,这个过程要经历一个完整的渲染周期,包括获取新数据、更新组件、渲染和构建虚拟 DOM。最后,您将实际的 DOM 与虚拟 DOM 进行比较,您可能会得出这两个 DOM 是相同的结论。这是浪费时间,因为不需要进行实际的 DOM 更新,而且您只是做了一堆徒劳的工作。没什么!
这种情况开始慢慢变成浪费时间。浪费几秒钟的时间可能看起来不太喜欢,但在《计算机世界》中,浪费几秒钟的时间堪比观看《T2 迷失》第五季:这看起来似乎是有意义的,你已经走了这么远,所以你需要看到它完成,但实际上这需要耗费大量的时间,变得越来越令人恼火,并最终成为真正糟糕的用户体验。
呀呀。
不管怎样…重点是,在这个时候,GitKraken 的每个动作都会导致图形渲染。这是每个动作的*,即使没有 refs 改变(例如,如果一个新的 PR 通过,或者图表上的一个时间线被更新),整个图表刷新仍然会被执行。随后频繁的存储库刷新,以及图形渲染过程本身的缓慢,让整个应用程序感觉很慢。*
尝试解决方案#1:卸载图形
我们试图通过在加载时卸载图形来解决这个问题。因此,在这个过程中,整个图形组件将从 React 中删除。这增加了存储库的加载速度,但结果是,这种方法的特殊应用数量会使应用程序代码更加复杂,长期可持续性更差。
尝试解决方案#2: Flux 实现和 Immutable.js
在我们当时的 Flux 实现中,每个域都有一个存储,当一个域被更新时,这个更新会导致图形的刷新。但是,如果你有一个大的刷新,有多个域更新,你会得到一个级联效果的图形刷新计算每一个域更新。在实际的用例环境中,刷新一个存储库实际上会导致大约 8 个图形重新呈现器,对应用程序产生显著的性能影响。
为什么关于 Flux 如何运作的一个快速背景:有一个数据调度,这个调度从一个商店到另一个商店,在它前进的过程中更新东西。如果数据发生变化,每个存储都会发出一个事件,表明某些数据已经发生变化。React 然后响应这个事件,从存储中获取新数据并执行一个呈现过程。
这一切都很好,但这里的问题是,在渲染过程完全解决之前,没有后续的存储会更新。因此,对于更新多个存储的单个数据调度,这种连锁效应的成本会很高。这是我们实现 Flux 的一个基本瓶颈。
渲染过程本身加剧了这种性能损失。当你从商店中抓取新数据时,商店会给你一个数据的深层副本,而不是它的实际原始数据,以保护原始数据免受任何可能由天真编写的 React 组件引起的突变。我们已经为我们的罪过忏悔,现在跟随一条真正的道路。
这种深度复制被证明是昂贵的。当一个组件获得该数据副本时,它将在该数据(从存储中复制的)和它已经拥有的数据之间执行深度比较,以确定是否需要更新。
尽管在计算出是否需要执行更新这一点上有点节省时间,但这种检查本身是非常昂贵的。然而,这种深度比较实际上比仅仅更新要快。所有的行(图中的一个提交被认为是一行),每一行都由多个组件和子组件组成,导致对它们的数据相同的多次验证。更快,但仍然是一个昂贵的事件链。
因此,我们决定引入一个名为 Immutable.js 的库,它制作了不可变数组和对象,允许我们快速比较对象的一部分是否发生了变化,因为我们可以进行快速内存地址比较来查看的是否发生了变化。虽然这很有帮助,但是如果不破坏“很多东西”就硬塞进我们现有的基础设施中,那是非常笨拙的,而且(你猜对了!)更新对象真的很慢。即使在使用内置方法批量更新时也是如此。这使得我们对数据的更新实际上比渲染花费了更长的时间*,所以我们不得不放弃使用不可变作为解决方案。Womp womp。*
尝试解决方案#3 ( 奖励失败):纯脚本
我们尝试将很多东西迁移到 PureScript。然而,一旦我们开始,我们很快意识到这不适合我们的团队。
因此,到目前为止,我们已经确定了 3 个棘手的领域,这些领域导致了我们需要解决的性能问题:
- 我们如何用新数据修改应用程序的状态。
- 从存储中检索数据。
- 确定如何以尽可能快速有效的方式更新 UI 中的组件。
这是主要的三点,每一点都需要我们重新思考如何构建应用程序。
这篇博文系列的下三部分将分别关注这些问题,我们实现的解决方案,以及我们如何实现它们。
如何计划产品发布
所以,你想策划一个产品发布会?
好吧,说实话,没有人真的希望策划一次产品发布;这是一个复杂而令人疲惫的过程,需要整个组织中各种各样的人的认同。
跨部门协作…和更多会议…耶… 😒
但是,尽管计划一个产品发布是令人生畏的,但在开始之前花时间制定策略并与公司合适的人沟通的重要性不应该被忽视。
幸运的是,我们已经在没有合适工具的情况下完成了计划产品发布的肮脏工作。事实上,我们对缺乏这方面的计划工具感到非常沮丧,所以我们决定建立我们自己的:GitKraken 板和 GitKraken 时间表。这些免费的开发工具将从一开始就帮助你走向成功。
你有产品路线图吗?
如果你还没有为你的软件产品制定一个长期的路线图,这就是你想要开始的地方。
不要惊慌。😅你不需要计划好你想要实现的每一个功能——你不可能在产品发布时就知道这些功能——但是你至少要列出未来三个月的计划,这样你就可以和你的团队一起相应地确定目标的优先顺序。
你应该问自己这样的问题:哪些功能对你的用户影响最大?什么时候实施它们才是现实的?哪些特性可以合并到同一个版本中?
计划将会改变
记住,没有什么是有限的。当您根据用户反馈、内部能力等调整开发优先级时,您的路线图将需要更新。,所以你需要使用一个工具,比如 GitKraken Timelines,它可以很容易地在你的组织中修改和共享。
ProTip:随着产品的发展,使用 GitKraken Timelines 中的自动转换日期功能来调整一个里程碑的截止日期;所有未来的截止日期将相应更新。
谁需要能见度?
我们明白了。没人想要更多的会议。高层领导可能更喜欢让管理层“处理”它,而不需要进一步的监督,工程师可能认为细节在他们之上,但事实是,你会希望来自不同部门的多个视角,带来不同的技能组合。
全面、包容地规划发布对于建立跨越产品开发时间线的共同目标和共享知识至关重要,并能更好地确保产品成功上市。
– Suzanne Abate, The Development Factory
至少,您需要召集来自以下领域的代表:
- 执行领导:根据你的执行团队的参与程度,他们需要的参与程度可能不同。但是,在你的产品之旅中,尽早让重要的利益相关者达成一致将会证明是卓有成效的。
使用像 GitKraken Timelines 这样的工具,让跨部门共享项目计划变得快速而简单,会让你的工作和你忙碌的利益相关者的工作变得更加容易。
- 高级工程师:虽然将开发人员的时间严格地保留给编码很有诱惑力,但是让一些高级工程师参与进来将会提供关于内部团队能力和动机的无价视角。
- 客户支持:您的支持团队是您获得用户反馈的第一线。他们的观点将有助于选择哪些软件更新——特别是改进和缺陷修复——是最需要的,并将对实际用户体验有最好的洞察力。
- 销售:与客户支持类似,您的销售团队可以看到非常有价值的信息,特别是来自潜在客户的信息,这些客户在将您的产品应用到他们的工具带上之前正在等待特定的功能。
- 营销:您的营销团队将负责传达产品变化。虽然开发团队的能力应该是发布工作的重点,但是紧接着发布的营销团队的能力将会影响您宣传新功能的速度和效果。
ProTip:使用 GitKraken 时间表中的覆盖功能将您的产品路线图时间表与营销时间表进行比较,确保您不会在他们出差赞助会议时计划重大发布。
以协作的方式建立一个共同的目标也将使这些人能够在发布计划会议之外将信息传播给其他团队成员。
– Suzanne Abate, The Development Factory
在你尽可能地规划好未来的产品路线图后,你就可以开始准备实现你的项目里程碑了。
Git kraken Git GUI 的产品路线图
规划会议之后
在您的旅程中的这一点上,关键是要记住一件事:您刚刚完成的规划会议,无论有多成功,都不应该是您的团队沟通最终计划的唯一方法。
在 2020 年软件开发状态报告中,超过 60%的受访者承认使用面对面会议作为他们交流项目里程碑、发布和截止日期的唯一方法。这太过时了。ProTip: GitKraken Timelines 为团队提供了一种方法,不仅用于产品路线图的初始沟通,还为所有利益相关者提供了查看计划何时迭代的机会。他们绝对会的。
使用一个清楚地传达项目里程碑、相关的截止日期和重要特性的工具,并且所有涉众可以在方便的时候访问该工具,对于短期和长期的成功都是至关重要的。
产品发布周期
你可能已经有了一个产品发布周期,但是如果这是你的第一个软件产品,你会想花一些时间来规划你的日常工作流程,以及你将如何管理过程中的重要阶段。常见的产品发布周期通常包括以下阶段:
- 包括哪些功能的策略
- 概述时间表
- 建设
- 回顾
- 试验
- 部署
- 收集问题
如果您的团队正在利用 Git 进行版本控制,那么您的日常工作流可能看起来像这样:
In Progress
→Pull Request Submitted
→Merged
→Testing in Dev
→Ready for Staging
→Testing in Staging
→Ready for Production
→Pushed to Production
。
这里需要注意的是:发布策略和周期在不同的团队之间会有很大的不同。随着您独特挑战的出现进行调整和发展,并将这些经验带到下一个版本中。
It’s important to note here: release strategies and cycles can vary greatly from team to team. Adjust and evolve as your unique challenges arise and carry those lessons forward to the next release.
整合简化沟通
为了让每个人都在为即将到来的产品发布而努力,您将希望实现一些工具,这些工具不仅能清晰地概述高级项目里程碑和截止日期,如 GitKraken 时间表,还能与其他计划工具集成,如用于日常任务跟踪的 GitKraken 板。
In order to keep everyone on the same page as you work towards an upcoming product release, you will want to implement tools that not only clearly outline high-level project milestones and deadlines, like GitKraken Timelines, but also integrate with other planning tools, like GitKraken Boards for daily task tracking.
使用 GitKraken 板进行日常任务管理
GitKraken Boards 有很多方法可以使用看板方法来组织你的任务和问题,所以你可以将你的开发者发布周期分成几列(Backlog
、In Progress
、In PR
等)。创建将卡片区分为New Feature
的标签;Bug
;等等。并添加纸板用户以将他们分配到卡片。
GitKraken Boards has numerous ways to organize your tasks and issues using the Kanban methodology, so you can outline your developer release cycle into columns (Backlog
, In Progress
, In PR
, etc). Create labels that distinguish cards as New Feature
; Bug
; etc. and add board users to assign them to cards.
关联任务发布里程碑
产品经理可以使用里程碑特性来设置与即将发布的版本相关的任务的截止日期,该日期基于它们在您的产品路线图时间线上的发生时间。
然后,将卡片与里程碑相关联,并将团队成员分配给这些卡片。现在每个人都知道自己在实现下一个发布截止日期的过程中扮演什么角色,负责什么任务。
Then, associate cards with milestones and assign team members to those cards. Now everyone knows which role they play and what tasks they are responsible for in achieving the next release deadline.
与利益相关方分享里程碑背景
如果您的风险承担者想要关于您的团队的发布进度的额外的上下文,您可以在您的时间线上链接代表您的更突出的发布特性的卡片作为里程碑项目。
例如,如果您的 CTO 希望快速了解即将发布的最大新功能,他们可以在 GitKraken 时间轴上导航到产品路线图上的相关里程碑,并单击里程碑项目以查看 GitKraken 板中的任务卡。
If your CTO, for example, wants a quick progress update on the biggest new features of an upcoming release, they can navigate to the associated milestone on the product roadmap on GitKraken Timelines and click on a milestone item to view the task card in GitKraken Boards.
衡量发布的成功
当衡量您的发布是否成功时,您应该关注几件事情:
你满足交货期限和预算了吗?
- 你的用户喜欢这些新功能吗?
- 这个版本有没有给你带来任何性能上的问题?
- Did you suffer any performance drawbacks due to the release?
在最初的规划阶段,您应该讨论您的跟进和沟通计划,特别是您的团队计划如何收集即时用户反馈,尤其是在出现问题的情况下。
拥有一个平台,比如一个用户松弛社区,在那里用户可以舒服地提交反馈,并且你的内部团队可以立即看到,这有助于尽早解决相关问题。ProTip:避免在周五下午或临近重大节日时发布。在一个版本发布后的几天里,您需要所有可用的资源来解决潜在的问题并与用户交流。
一切都好吗?坐下来,打开你最喜欢的饮料,反思你的辛勤工作。干杯。🍻
All good? Sit back, crack open your favorite beverage, and reflect on your hard work. Cheers. 🍻
为成功做好准备
更聪明地工作,而不是更努力。用 GitKraken 板和 GitKraken 时间表装备你的团队,为你的下一个产品发布做好准备。更好的是,获得 GitKraken 开发工具套件来访问 GitKraken 板、GitKraken 时间线和 GitKraken Git GUI。
Work smarter, not harder. Equip your team with GitKraken Boards and GitKraken Timelines and set yourself up for success on your next product release. Better yet, get the GitKraken Suite of developer tools for access to GitKraken Boards, GitKraken Timelines, and the GitKraken Git GUI.
Git 问题的解决方案-问题|了解 Git
分支
了解如何使用相同的命令创建和签出分支… 了解更多信息
您可以使用 Git branch 命令后跟… 了解更多信息来重命名 Git 分支
要切换到 Git 分支,您将使用 git checkout 命令,后跟分支名称… 了解更多信息
要签出一个远程 Git 分支,您将使用 git checkout 命令,后跟 branch… 了解更多信息
使用 Git branch 命令后跟… 了解更多信息在本地删除 Git 分支
删除远程 Git 分支与删除本地 Git 分支的工作方式不同… 了解更多信息
要查看您的 Git 分支列表,您可以运行 git branch 命令… 了解更多信息
要将一个功能分支合并到主功能中,您首先需要… 了解更多信息
您将使用 git push 命令来设置上游分支… 了解更多信息
要从远程 Git 分支获取更改,您将使用 git pull 命令。了解如何在 Git 中组合文件更改时使用快速前进、合并或重设基础… 了解更多信息
检验
如果你想知道一个特定的行为是什么时候引入的,你需要 Git checkout 一个提交。了解如何在命令行中使用提交散列来签出提交。了解更多信息
了解如何使用 Git checkout 命令将 Git 标签签出为分支或分离的 head 状态。运行 Git tag 命令来查看存储库中的标签。了解更多信息
做出最佳选择
可以使用命令行从另一个回购中挑选… 了解更多信息
Git 1.7.2 引入了挑选提交范围的能力… 了解更多信息
克隆
假设您想要在克隆一个存储库之后立即开始在一个特定的分支上工作,那么您想要在克隆远程存储库的同时签出该分支。或者你只是想克隆一个分支,而不是整个回购……了解更多
犯罪
要撤销 Git 提交,可以使用git revert
命令。了解如何恢复 Git 中的更改,恢复多个提交,并在此过程中更改 Git 提交消息……Learn More
如果您在上一次提交中犯了错误,使用 Git amend 命令编辑 Git 提交消息,或者修改上一次提交以更改其内容。了解更多信息
如果想撤销上一次提交,可以使用 GitKraken 的撤销按钮或终端来撤销上一次本地提交,撤销提交但保留更改。了解更多信息
合并
它发生在我们最好的人身上。你做出改变,提交它们,并把它们合并到你的主分支中,只是意识到你犯了一个错误。别担心,您可以在 Git 中安全地撤销合并… 了解更多信息
拉
比较 Git fetch 和 Git pull 操作,以及何时应该使用哪个命令从远程存储库中获取更改,并复习如何获取远程分支… 了解更多信息
在 Git 中,pull request 特性并没有内置在 Git 本身中,而是一个由远程存储库托管服务控制的功能,比如 GitHub… 了解更多信息
您可以使用 Git pull force 强制覆盖本地分支的历史和文件,以匹配您的远程… 了解更多信息
Git pull rebase 是一种将本地未发布的更改与远程上最新发布的更改相结合的方法… 了解更多信息
推
了解如何创建一个 Git 标记,并使用命令行和 GitKraken 将该标记推送到您的远程存储库,并了解如何向您的标记添加注释消息… 了解更多信息
了解如何使用命令行和 GitKraken 客户端将本地更改推送到远程分支,并了解为什么应该在推之前先拉… 了解更多信息
了解如何强制 Git 推送来覆盖您的远程历史;但是请注意:这可能是一个危险的行动,所以请确保您了解如何减轻相关风险… 了解更多信息
重定…的基准
如果您想撤销不是最后一次提交的 Git 提交,并且不想丢失任何工作,您可以使用这个工具。丽娅T2rn 多
如何决定是执行 Git rebase 还是 Git merge?两者都有相关的好处和风险。了解何时使用 Git merge vs rebase… 了解更多信息
了解如何对主分支机构进行重组,并看看当冲突发生时会发生什么… 了解更多
嘘
了解如何生成新的 SSH 密钥,以及如何方便地将其添加到您的 GitHub 帐户中。Git 中使用 SSH 密钥来安全地加密您的代码……了解更多信息
Git 托管服务提供商
开源代码库
要删除 GitHub 存储库,您必须在 GitHub 上采取一些步骤,从您的帐户中删除 remote。您还可以轻松地从 GitKraken 内部删除 GitHub 回购协议的本地副本……Learn More
在 Git 中,pull request 特性不是内置在 Git 本身中的,而是一个由远程存储库托管服务(如 GitHub)控制的功能。了解更多信息
了解如何生成新的 SSH 密钥,以及如何方便地将其添加到您的 GitHub 帐户中。Git 中使用 SSH 密钥来安全地加密您的代码……了解更多信息
了解如何派生 GitHub 存储库,以及如何在 GitHub 中使用派生的存储库。了解克隆 vs 分叉和分支 vs 分叉的区别… 了解更多
了解如何使用命令行和 GitKraken 客户端将本地更改推送到远程分支,并了解为什么应该在推之前先拉… 了解更多信息
了解如何强制 Git 推送来覆盖您的远程历史;但是请注意:这可能是一个危险的行动,所以请确保您了解如何减轻相关风险… 了解更多信息
重定…的基准
如果您想撤销不是最后一次提交的 Git 提交,并且不想丢失任何工作,您可以使用这个工具。丽娅T2rn 多
如何决定是执行 Git rebase 还是 Git merge?两者都有相关的好处和风险。了解何时使用 Git merge vs rebase… 了解更多信息
了解如何对主分支机构进行重组,并看看当冲突发生时会发生什么… 了解更多
嘘
了解如何生成新的 SSH 密钥,以及如何方便地将其添加到您的 GitHub 帐户中。Git 中使用 SSH 密钥来安全地加密您的代码……了解更多信息
Git 托管服务提供商
开源代码库
要删除 GitHub 存储库,您必须在 GitHub 上采取一些步骤,从您的帐户中删除 remote。您还可以轻松地从 GitKraken 内部删除 GitHub 回购协议的本地副本……Learn More
在 Git 中,pull request 特性不是内置在 Git 本身中的,而是一个由远程存储库托管服务(如 GitHub)控制的功能。了解更多信息
了解如何生成新的 SSH 密钥,以及如何方便地将其添加到您的 GitHub 帐户中。Git 中使用 SSH 密钥来安全地加密您的代码……了解更多信息
了解如何派生 GitHub 存储库,以及如何在 GitHub 中使用派生的存储库。了解克隆 vs 分叉和分支 vs 分叉的区别… 了解更多
Git Hosting Service Providers
GitHub
To delete a GitHub repository, you will have to take some steps on GitHub to remove the remote from your account. You can also easily remove a local copy of a GitHub repo from within GitKraken… Learn More
In Git, the pull request feature is not built into Git itself, but is a function controlled by the remote repository hosting service, such as GitHub. Learn More
Learn how to generate a new SSH key and how to conveniently add it to your GitHub account. SSH keys are used in Git to safely encrypt your code… Learn More
Learn how to fork a GitHub repository and how to work with a forked repository in GitHub. Understand the difference between clone vs fork and branch vs fork… Learn More
项目安全-项目管理
这个问题需要回答。尤其是在最近几乎所有政府机构的数字安全遭到破坏之后。那么,安全性对我们管理的项目有多重要呢?这取决于几个变量:
- 你在管理谁的项目?
- 您正在处理什么类型的数据?
- 你在政府或私营部门的项目中工作吗?
- 如果客户在您的组织之外,他们是否足够关心在风险和安全规划上花钱?
无论什么项目,安全都很重要
本文所提问题的真正答案应该永远是“是”您在项目中管理什么类型的数据真的不重要,您需要保护它。即使您没有管理任何真正敏感的东西,关注安全性也只会帮助您的组织和客户。您不希望您的项目成为公司处理或客户存储的敏感数据的薄弱环节。您永远不知道您的项目可能会打开什么样的机会之窗,让您看到与当前项目毫无关系的其他敏感数据和信息。
所以,我们已经确定我们应该关心安全…现在我们做什么?
计划,计划,计划
首先,疯狂地计划…但不要花太长时间。风险规划的问题——这也是我在这里谈论的——是在项目层面上很少真正考虑的事情。如果风险规划是项目流程和时间表的一部分,那么安全性往往几乎没有得到任何关注。
确保其他人关注你的项目
数据安全…那是 IT 主管的问题,对吗?嗯……有可能。但是你会把你的敏感数据托付给别人吗?我并不是说 IT 主管和安全分析师没有尽到他们的职责,但是他们可能对您的项目没有既得利益。您的项目可能会受到他们所采取的任何安全措施的保护,但这是没有保证的。与他们见面…让你的项目对他们很重要。大声尖叫……如果没有人听到你的声音,什么也没有做,那么一切都是你的责任。这不是责备游戏——但是作为项目经理和整体风险管理的一部分,你确实需要考虑后果。
教育
就数据保护的必要性、潜在后果以及项目所处理内容的敏感性对项目人员进行培训。教育和通知团队,教育和通知客户,教育和通知您的高级管理层。你可能会过度担心,你可能会夸大其词,你可能会尖叫得太大声……但是外面有灯、门锁着、车道上有几辆车的房子不是会在半夜被随意闯入的房子。潜在的罪犯会转移到下一个房子。相信我。一些安全措施对挫败 90%的威胁大有帮助。
总结
为了您的项目和项目数据的完整性和安全性,您能做的最好的事情——无论是敏感数据还是其他数据——是计划、意识、让他人意识到并进行教育。归根结底,这一切都是为了沟通。安全很重要,所以你不能假设这些事情正在发生。我敢肯定,这些联邦机构没有看到这个巨大的数据泄露来了,但它做到了。找出您的组织对此类数据泄露采取的安全措施,并找出项目资金需要花在哪里以保护您的项目。你不会后悔的。
Summary
The best thing you can do for your project and for the integrity and safety of your project’s data – sensitive or otherwise – is to plan, be aware, make others aware, and educate. The bottom line is that it’s all about communication. Security is important so you can’t assume these things are happening. I’m sure that these federal agencies didn’t see this huge data breach coming, but it did. Find out what security measures your organization takes for such data breaches and figure out where project dollars need to be spent in order to protect your project. You won’t be sorry.
拆除项目筒仓| GitKon 2022 |肖娜·奥尼尔,危险代码
原文:https://www.gitkraken.com/gitkon/project-silos-shawna-oneal-dodgy-code
https://www.youtube.com/embed/2o2_Mw_Q4IE?feature=oembed
视频
随着现代开发复杂性的增加,项目需要更多的时间、资源和人员。团队变得越来越大,必须分成不同的技能组合,工作开始从一个资源转移到下一个资源。最终的装配线看起来有点像这样:
当团队成员和资源变得高度相互独立时,项目孤岛就出现了。过程中的每一个“停止”都集中在一个特定的任务上,通常参与流程、沟通和工具,这些都只在手头任务的范围内工作。
项目碎片
随着项目的进展,每个筒仓也产生它自己形式的项目碎片:过程对整个项目和最后期限的剩余副作用。
在装配线模型中,项目碎片随着它的移动而积累,就像碎片顺流而下。这些碎片通常会对项目的后期阶段造成阻碍和负面影响,导致需要付出巨大的努力来清除它们。
消除筒仓的过程
将装配线流程转化为有效且公开交流的流程的最简单方法之一是创建检查点。每个检查点都被添加到项目流程的关键点上,项目的涉众可以在这些关键点上协调进度、预算、范围和客户期望。
为了最大化这些检查点的影响,最好在项目的过渡点进行规划。他们应该包括积极参与项目的团队,以及那些受到团队工作影响的人。
通常,在当前检查点旁边或紧跟着当前检查点工作的团队是最好的。项目尽早重新调整,并且经常在项目碎片积累到足以导致严重问题之前将其从流程中移除。
随着项目的进展,避免将问题推到后面的阶段是很重要的。这样做只会让碎片沿着生产线移动,并在我们希望解决的装配线上产生类似的问题。类似地,牺牲 QA 和代码评审并不是从流程中去除项目碎片的好方法。
沟通是入住过程中很大的一部分。确保获得受项目变更和决策影响的团队成员的认同,而不是代表他们做出假设。
GitKraken 客户端的设计考虑到了团队协作和沟通,是消除团队中项目孤岛的完美工具。
消除筒仓的工具
通常,孤岛是由于缺乏可用的工具和通信方法而形成的。也就是说,最好不要购买大规模通信和警报系统。向你的员工抛出过多的信息和交流中断会产生相反的效果,导致混乱和退缩。
相反,寻找那些成功提供被动交流的工具和应用。这些工具提供了一目了然的数据,同时非常直观,并依靠格式化队列将信息传递给查看者。
很好的例子包括 Git 客户端上的提交消息,Trello 中的任务标记,或者吉拉中的任务依赖。任何提供信息但没有明确概述的东西。
无论您使用哪种工具,都要确保它们能够直观地与您团队的整个流程和现有工具,也就是“堆栈”一起工作这些工具应该提供有组织的记录,并带有它们自己的过程定义。任何需要大量培训和过程构建以使其适合整个员工团队的工具都不可避免地需要维护和文档。每当一个过程变得复杂时,越来越少的员工可能会采用它。
消除开发者孤岛:Git 流
对于开发人员来说,竖井可以存在于项目代码库的微观层次。每个开发人员都倾向于作为代码中的自由代理,对其他人在做什么知之甚少。这可能会在工作流上产生代价高昂的瓶颈,引发正在编写的代码中的冲突,并且总体上产生脱节的解决方案。
为了消除这个问题,像 Git flow 这样的 Git 方法可以改变游戏规则。在 Git 流中,编辑是在“开发”分支上完成的——或者是需要版本化的较长编辑的“功能”分支——并且只有在变更被批准生效时才合并到主分支中。Git 流可以与合并请求一起使用,也可以不与合并请求一起使用,以增加检查点效果。
在许多方面,Git 流是开发人员在通信和检查点方面的特定练习。它提供了关于项目编辑、状态和潜在副作用的被动交流,同时仍然将进行中的工作与规范环境分开。您可以通过 GitKraken 了解更多关于使用 Git flow 的信息。
更好的沟通,更好的项目
开始打破项目孤岛永远不会太晚。尽早并经常这样做可以增加员工的满意度,消除项目碎片,并使客户互动更加积极。类似地,尽早规划沟通途径、工具和流程可以在第一时间防止麻烦。
肖娜·奥尼尔是 Dodgy Code 公司的联合创始人和开发人员。她在开发网站和 web 应用程序方面拥有丰富的经验,此外,她还与客户合作开发各种规模和复杂性的大胆 web 项目。
使用 GitKraken Glo 创建公共看板
原文:https://www.gitkraken.com/blog/public-kanban-boards-gitkraken-glo
为了让您的问题跟踪体验更有成效,我们还设计了一些更奇怪的东西,我们敢说…很有趣吗?这个最新的版本包括了一些非常令人兴奋的开发人员最喜欢的看板工具: GitKraken Glo 板!
拿起你的手电筒,让我们探索公共公告板、全球搜索、卡片封面图像和新公告板背景。
公示栏,封面图片,&全球搜索
https://www.youtube.com/embed/g9TjGRHZ3Fw?feature=oembed
视频
获得最新版本的 GitKraken Glo:
公共公告板
11 可能已经关闭了大门,但 Glo 仍然通过公共公告板进入世界!
如果你是版主或管理员,你可以通过点击 Glo UI 右上角的齿轮符号来改变版块的可见性,并点击Board Visibility
来公开你的版块。
您可以从以下可见性选项中进行选择:
私人:只有董事会成员可以访问和查看董事会。
- 组织:作为相关组织成员的任何人都可以查看公告板。(仅专业版功能)
- 公开:任何有链接的人都可以查看公告板。
- Public: anyone with the link can view the board.
如果您选择公开您的董事会,一个蓝色的PUBLIC
徽章将出现在您的董事会名称旁边。
我们最喜欢这个新功能的一点是,GitHub 同步板也可以公开——给你一个推动,让你期待已久的与世界分享你的项目!🌎
与通过 Google Drive 共享View Only
文件类似,任何拥有公告板 URL 的人都可以查看公告板,但他们没有编辑的权限。
Similar to sharing View Only
files via Google Drive, anyone who has a board URL can view the board, but they do not have permission to edit.
卡片封面图片
📸为乔纳森·拜尔斯的相机微笑!您现在可以为 Glo 卡设置封面图像。
卡片封面图像允许您和您的团队快速浏览您的电路板,并查看哪些卡片包含与特定错误、功能等相关的信息。
只需将图像直接拖放到卡片上即可设置图像。或者,将图像附加为文件,向下滚动到卡片详细信息中的Files & Images
部分,然后单击Set Cover Image
。同样,当您想要删除图像时,滚动到同一部分并单击Remove Cover Image
。支持的文件类型包括。jpeg,。png,。gif 和. bmp。
Simply drag-and-drop an image directly on top of a card to set the image. Alternatively, attach the image as a file, scroll down to the Files & Images
section in card details, and click Set Cover Image
. Similarly, when you want to remove the image, scroll to the same section and click Remove Cover Image
. File types supported include .jpeg, .png, .gif, and .bmp.
全局搜索
我们知道,由于所有这些视觉上的变化,你可能会觉得你的世界已经颠倒了。但不要害怕,全球搜索将有助于揭示一些光,所以你可以逃离恶魔!
全局搜索允许你在 Glo 中搜索和过滤你所有的卡片和纸板。如果你经常在多个板卡上工作,或者如果你需要搜索一个特定的卡并快速找到它,这个新功能将会节省大量的时间!
只需使用 Glo 顶部的搜索栏,或通过Cmd/Ctrl + K
键盘快捷键访问搜索栏。
Simply use the search bar at the top of Glo, or access the search bar via the Cmd/Ctrl + K
keyboard shortcut.
更多电路板背景
我们希望你已经喜欢 Glo 最近发布的其他功能之一:自定义背景图片。我们的团队正在挖掘他们,所以我们创造了更多的选项供你选择。享受新添加的农历新年,骄傲,粉碎兄弟终极背景,等等。
无论你喜欢 Eggo,龙与地下城,还是圣诞灯,背景板都是展示你 Glo 风格的完美选择。
Whether you’re into Eggo’s, Dungeons & Dragons, or Christmas lights, board backgrounds are perfect for showing off your Glo-style.
Git 拉远程分支|学习如何在 Git 中从远程分支拉
原文:https://www.gitkraken.com/learn/git/problems/pull-remote-git-branch
假设您的本地分支已经过时,您需要从远程分支获取更改,以便让本地分支跟上速度。
为了从您的远程获取这些更改,或者换句话说,将更改下载到您的本地分支,您将执行 Git pull。
在幕后,Git pull 实际上是一个 Git fetch,后跟一个 Git merge 。Git pull 只是在一个步骤中执行这两个操作的捷径。
在展示 Git pull 如何在 CLI 中工作之前,让我们回顾一下如何使用跨平台 GitKraken 客户端 Git pull 远程分支。
“我使用@GitKraken Client,因为我可以集中精力完成工作,而不是试图记住命令和想象分支是如何连接的。”–@ palmiak _ FP
如何在 GitKraken 客户端中获取远程分支?
使用极其强大的 GitKraken 客户端的可视化辅助,从远程 Git 分支提取更改非常简单。
在本例中,我们将从远程分支获取更改,并使本地分支加速。
GitKraken Client 简化了您的工作,因为默认情况下,GitKraken Client 每分钟自动从您的远程存储库获取更新。如果您只喜欢手动提取,您可以从Preferences ->
General
菜单中更改此设置。
如果 GitKraken 客户端没有自动获取更改,只需点击顶部工具栏中的Pull
按钮,并从下拉菜单中选择Fetch
选项。这将为您当前签出的分支获取远程。
如果您想要获取相关的变更并将其合并到您的本地分支中,那么您可以选择一个合并策略供 GitKraken 客户端实现。
您可以看到,当您想要在 GitKraken 客户端中提取远程分支时,有多个选项可供选择。
GitKraken 客户端允许您轻松选择执行带有快进功能的Git pull、 Git pull fast forward only 或 Git pull rebase 。不需要记住或键入任何命令!
GitKraken 的易于阅读的提交图将帮助初学者和高级用户可视化分支结构,这样您就可以准确地知道谁在什么时候做了什么代码更改,甚至是您的分支和远程上的活动。
如何在命令行中获取远程分支?
如果您正在使用一个终端来学习 Git,比如 GitKraken CLI ,您将从下面的命令开始:
git pull
Git 拉式原点 Main
执行 Git 拉取的一个最常见的例子是使用命令:
git pull origin main
为什么 Git pull origin 主命令在例子中如此常见?在 Git 中,您为本地存储库添加的第一个远程被默认命名为origin
。对于许多存储库来说,只有一个远程集合,所以origin
是最流行的远程名称。
正如origin
是默认的远程名称一样,“main”是当前关于如何称呼主工作分支的行业标准。在一些较老的文档和存储库中,你可能会看到它被标记为master
分支,使得命令 Git pull origin master 成为标准,将其重命名为main
。你可以在这里阅读更多关于为什么“main”是当前默认设置的信息。
不要求具有称为origin
的遥控器或称为main
的分支。一些 Git 工作流完全消除了这些命名约定,更喜欢像dev
、staging
和production
这样的术语,正如你在本页示例中看到的 repo。
尽管注意为什么这如此普遍很重要,但更重要的是要认识到所有的 Git 拉取都遵循通用格式:git pull <remote-name> <branch-name>
,而不管任何特定的命名约定。
无论您做出什么决定,您都可以在您的 Git 配置设置中设置 Git 使用的默认远程名称以及默认分支命名策略。
仅 Git 拉快进
如果不需要合并,Git 将快进您的本地分支。这意味着您的本地分支现在将指向来自远程分支的最新提交,而不会合并。但是,如果因为需要合并而无法快速前进,将改为执行合并。
GitTip:了解更多关于如何合并一个 Git 分支,包括如何将一个 Git 分支与 main 合并。
无论您做出什么决定,您都可以在您的 Git 配置设置中设置 Git 使用的默认远程名称以及默认分支命名策略。
仅 Git 拉快进
如果您只想引入无冲突的更改,而不想执行合并,您可以选择仅使用快进来提取分支。
现在,如果您希望只使用快速转发来提取分支,那么您可以将--ff-only
标志附加到git pull
命令上。
git pull --ff-only
Git Pull Rebase
或者,如果您更喜欢在合并文件更改时执行 Git rebase ,您可以选择从您正在拉取的远程 Git 分支中对提交进行 rebase,而不是合并它们。
您可以使用--rebase
标志来实现这一点。
现在,如果您希望只使用快速转发来提取分支,那么您可以将--ff-only
标志附加到git pull
命令上。
Git Pull Rebase
你有没有尝试过 Git 交互式 rebase ?使用 GitKraken 客户端执行复杂的 Git 操作(如 rebase 和交互式 rebase)是多么容易,您一定会大吃一惊!此外,您将简化更简单、更常见的操作过程,比如拉一个远程分支。
您可以使用--rebase
标志来实现这一点。
你有没有尝试过 Git 交互式 rebase ?使用 GitKraken 客户端执行复杂的 Git 操作(如 rebase 和交互式 rebase)是多么容易,您一定会大吃一惊!此外,您将简化更简单、更常见的操作过程,比如拉一个远程分支。
git pull --rebase
你有没有尝试过 Git 交互式 rebase ?使用 GitKraken 客户端执行复杂的 Git 操作(如 rebase 和交互式 rebase)是多么容易,您一定会大吃一惊!此外,您将简化更简单、更常见的操作过程,比如拉一个远程分支。
Have you ever attempted a Git interactive rebase? You will be blown away by how easy it is to perform complex Git actions, such as rebase and interactive rebase, with the GitKraken Client! Plus, you will streamline the process for easier, but more common, actions, like pulling a remote branch.
拉请求和 Gitflow
在我之前的帖子中,我讨论了 Gitflow 模型 以及它如何帮助企业管理发布。在这篇文章中,我将讨论拉式请求及其在开发过程中的重要性。
什么是拉取请求?
拉式请求是一个开发过程,它为讨论和评审已完成的功能提供了一个平台。它的目的是通知团队成员该特性已经完成,可以进行讨论或修改。讨论通常是为了提高代码的质量;这基本上是一个代码审查过程。
***注意:*在某些网站或工具中,您可能会发现术语“合并请求”而不是“拉请求”。这两个术语的意思是一样的。
***注意:*在某些网站或工具中,您可能会发现术语“合并请求”而不是“拉请求”。这两个术语的意思是一样的。
创建拉取请求之前需要做什么?
提交特性分支中的代码。请注意,一个特性可以有任意数量的提交。
- 分支中的提交仅反映本地机器(即您的机器)上的更改。因此,提交需要被推送到远程分支。
- 然后,你就可以准备好重组你的分行了。如果在采用特征分支后合并了任何新的拉请求,则需要重新设置基础。
- 在重定基础之后,需要解决出现的任何冲突,并且需要将代码推回到远程分支。
- 最后,是时候创建一个拉请求了。
- 最后,是时候创建一个拉请求了。
***注意:*拉请求需要两个不同的分支。为了创建一个拉请求,执行分支和源分支之间的代码需要有所不同。
拉式请求流程
当创建一个拉请求时,您添加一个对您的特性的简要概述,选择代码需要合并到的分支,并选择将审查它的受托人。
一旦创建了拉取请求,就可以对其进行讨论或修改。
- 有时在创建拉请求后会发生冲突,您必须解决这些冲突。冲突的可能原因将在本文后面讨论。
- 通常,被指派的人审查代码,但是并不强制只有被指派的人执行审查。任何团队成员都可以参与审查过程,并给出他们的反馈或讨论对代码的潜在修改。
- 任何反馈或修改都以注释的形式添加到代码行附近。
- 开发人员解析评论并回复给审阅者。
- 这个过程一直持续到所有的评论都解决为止。
- 一旦所有的讨论都解决了,代码就被合并到创建 pull 请求时选择的分支中。
- 这个过程一直持续到所有的评论都解决为止。
- ***注:*可以对任何分支机构进行拉取请求。通常,对源分支发出拉请求。有时关闭一个拉取请求而不合并它是可以的。这通常发生在删除某个功能时。
典型的开发周期
***注:*可以对任何分支机构进行拉取请求。通常,对源分支发出拉请求。有时关闭一个拉取请求而不合并它是可以的。这通常发生在删除某个功能时。
什么是合并冲突,它们何时出现在拉请求中?
为了更好地解释什么是冲突,考虑一个场景,其中开发人员 A 从开发分支中取出一个分支,特性 A。另一个开发人员,开发人员 B,从开发分支中取出一个分支,特性 B。
现在两位开发人员都在各自的功能分支上工作。开发人员 A 修改特性 A 分支中的一行或一段代码。开发人员 B 也修改了开发人员 A 已经修改过的相同代码块,但是在特性 B 分支中。
在完成他们的特性之后,两个开发人员都向开发分支创建拉请求;让我们称它们为拉请求 A 和拉请求 B。然后,一个评审者合并拉请求 A。一旦拉请求 A 被合并,拉请求 B 中就会出现冲突,因为同一代码块被两个开发人员修改。
为了解决冲突,开发人员 B 必须通过从开发分支(即,源分支)检索更新来重新确定特征 B 分支的基础。在检索到更新后,开发人员 B 在其分支的本地副本中面临代码冲突。现在,他们必须解决冲突,再次提交代码,并将代码推送到远程开发分支。现在代码没有冲突了,所以评审者可以合并拉请求 B 了。
要了解使用 Git GUI 客户端 GitKraken 解决合并冲突 是多么容易,请观看这个快速视频。
https://www.youtube.com/embed/MzpW-k66XE8?feature=oembed
视频
要了解使用 Git GUI 客户端 GitKraken 解决合并冲突 是多么容易,请观看这个快速视频。
Gitflow 模型中的拉请求
开发分支:开发人员从他们各自的特性分支创建一个拉请求,将代码合并到开发分支。通常,在特征完成后创建拉请求。检阅者会将提取请求合并到开发分支。在大多数情况下,评审员是技术领导。
发布分支:开发人员从特性或 bugfix 分支创建一个 pull 请求,将代码合并到发布分支。通常,当一个 bug 需要在发布分支中修复时,在发布期间创建拉请求。拉动式请求由技术主管合并。
主分支:发布分支的技术主管或开发人员创建一个拉请求,将代码合并到主分支。通常,拉请求是在代码准备好进行部署的发布期间创建的。拉式请求由创建它的下一级人员或技术负责人合并。
热修复分支:开发人员从他们各自的 bugfix 分支创建一个 pull 请求,将代码合并到主分支和开发分支。通常,创建拉请求是为了在已部署的代码中提供关键的修复。审阅者合并拉取请求。在大多数情况下,评审员是技术领导。这个合并请求应该被更仔细地审查,因为它将直接把代码合并到主分支。
***注意:*虽然可以跳过拉请求,直接将代码推送到分支,但是不应该避免拉请求,因为它们为代码提供了更好的质量和稳定性。
拉取请求的好处
使用这个协作平台来讨论对代码的潜在修改。
提高代码质量。
简化接收评审者反馈的流程。
- 地址反馈很容易内联在相关代码附近。
- 为代码提供更好的稳定性。
- 简化接收评审者反馈的流程。
- 地址反馈很容易内联在相关代码附近。
- 为代码提供更好的稳定性。
你的团队需要软件质量保证工程师吗?
原文:https://www.gitkraken.com/blog/quality-assurance-engineer
这篇文章是一位客座作者写的。
当你开发软件解决方案时,代码质量和安全性是最重要的,并且通常可以决定你的成败。一些团队可能需要一个专家不断地检查软件的错误和问题,尤其是当项目很大,而未被发现的错误可能会带来昂贵的后果时。
对于小型开发团队或早期项目开发阶段,开发人员可能会尝试在没有质量保证工程师的情况下工作,并自己测试一切。然而,没有专门的测试人员会导致一些问题被遗漏,或者导致应用程序测试不充分。
试图替换对测试过程有很好理解的质量保证工程师,这允许他们在真正深的层次上发现问题,并不是所有开发团队的最佳选择,但是它有时可以工作。
在本文中,如果团队中没有软件质量保证工程师,我们将讨论测试代码质量的策略。
如果你的团队不能在 QA 工程师上投资,使用诸如 GitKraken Client 之类的工具,帮助确保代码质量和限制风险,可以决定成败。
软件质量保证工程师与软件开发人员
质量保证工程师和软件开发人员是两种同时具备测试和编程技能的工程师。尽管了解每个专家在不同领域更强是很重要的。
质量保证工程师通常不具备与开发人员相同的编码技能,开发人员也不能在与质量保证相同的水平上测试软件。开发人员有很好的编码技能来创建软件应用程序,他们可以继续进行产品的基本测试,以确保它没有明显的错误。但这并不总是足够的。
另一方面,QAs 擅长测试和质量控制。他们可以发现 bug、功能崩溃,并可以深入检查不同功能如何协同工作。质量保证工程师还可以检查软件的界面是否构建正确,是否满足所有要求。
因此,当决定你是否应该在你的团队中有一个 QA,或者你的开发人员是否可以自己做测试时,你需要决定软件的高代码质量和安全性对于整个项目有多重要。
在软件开发团队中有一个 QA 工程师是必要的吗?
当决定你的开发团队是否需要 QA 时,了解你的开发人员有多熟练,他们使用什么技术来创建软件,以及他们是否能够承担这个责任是很重要的。
如果你有一个大的开发团队,需要深入检查可能的软件问题,并要求最终产品的高代码质量,那么你的团队需要一个 QA。
另一方面,如果你有一个简单的项目,一个小团队,或者你的开发人员有足够的技术来进行质量测试,你可以在没有质量保证工程师的情况下处理开发过程。
在没有质量保证工程师的情况下测试代码
软件开发团队中缺少质量保证工程师意味着开发人员不仅要有不同类型的测试来检查产品质量,还要有不同的方法来处理这个过程。在这里,我们将讨论没有 QA 工程师的情况下软件质量保证的最常见方法。
基于开发人员的测试
软件开发人员经常和 QA 团队一起做代码测试,但是有时候,如果质量保证工程师不在,开发人员可以代替承担这个责任。
开发人员可以创建测试模块,尽管这可能会耗费开发应用程序的时间和精力。如果过程正确,开发人员也可以在他们的代码中创建测试覆盖。
基于开发人员的测试要求开发人员通过执行单元测试或产生自动化的、集成的、基于代码的测试来检查应用程序的问题。这种方法有其积极的一面:
在开发的早期阶段发现问题。开发人员不仅可以构建,还可以测试应用程序的功能,以便在下一阶段之前找到缺陷并修复它们。当软件已经开发和发布时,它有助于防止以后的问题。
- 让开发过程更容易理解。编写单元测试时,开发人员可以更好地理解创建的功能及其代码。它降低了将来出现同样错误的可能性。
- 写出质量更好的代码。当开发人员为他们开发的软件创建测试时,这有助于他们编写高效易读的代码来通过测试。从长远来看,这是好的,因为更新和维护代码不会有任何问题。
- 创造更好的团队合作。测试过程是整个软件开发团队的需要,因为它影响他们所创建的软件的质量。每个开发人员都有责任对他们工作的特性和阶段进行单元测试。
- 创造更好的团队合作。测试过程是整个软件开发团队的需要,因为它影响他们所创建的软件的质量。每个开发人员都有责任对他们工作的特性和阶段进行单元测试。
如果你的软件团队正在使用 Git,像 GitKraken Client 这样的工具可以帮助促进开发者和质量保证工程师之间更健壮的协作。工作区等团队功能允许您轻松地与团队成员分组和共享多个存储库,并快速筛选分配给单个开发人员的任务。此外,Workspaces 使您能够同时跨多个存储库采取行动。
如果你的软件团队正在使用 Git,像 GitKraken Client 这样的工具可以帮助促进开发者和质量保证工程师之间更健壮的协作。工作区等团队功能允许您轻松地与团队成员分组和共享多个存储库,并快速筛选分配给单个开发人员的任务。此外,Workspaces 使您能够同时跨多个存储库采取行动。
GitKraken 客户端还包括预测合并冲突检测,当两个团队成员同时处理同一个文件时,会向您发出警告。这降低了风险,并允许更好的代码质量。
A Workspace showing grouped repositories in GitKraken Client
基于开发人员的测试类型
开发人员应该运行几个测试来测试他们的软件是否有错误和其他故障。
代码分析。这要求开发人员检查他们的代码中可能存在的问题:语法和编程错误、安全问题等。
单元测试。由开发人员编写的单元测试需要测试应用程序的特定单元(功能、流程或整个模块),以确保其行为符合预期。
- 集成测试。这种类型的测试确保每个功能或过程都很好地集成到整个应用程序中,并与其他功能一起有效地工作。
- 端到端测试。这包括测试应用程序,看是否所有的需求都得到满足,以及每个功能都如预期的那样工作。
- 代码审查 。这个测试意味着一对开发人员将检查彼此的代码中的错误、bug 和其他问题。
- 带拉请求的代码评审
- 在软件开发人员之间执行代码评审的最常见的技术之一是拉请求。一个 Git pull request 是一个贡献者,一个开发人员,请求一个队友,通常是一个更高级的开发人员,来检查他们希望合并到主项目中的代码。
在 GitKraken Client 中,管理拉请求非常直观,开发者和软件质量保证工程师都可以轻松使用。首先,将一个分支拖到另一个分支上,以访问启动新的拉请求的选项。这将为您打开一个模式,以完成所有相关的详细信息,如 PR 标题、描述、受让人、审阅者等。
带拉请求的代码评审
在 GitKraken Client 中,管理拉请求非常直观,开发者和软件质量保证工程师都可以轻松使用。首先,将一个分支拖到另一个分支上,以访问启动新的拉请求的选项。这将为您打开一个模式,以完成所有相关的详细信息,如 PR 标题、描述、受让人、审阅者等。
软件质量缺陷管理
这种方法是关于检测和消除在测试过程中发现的缺陷。缺陷管理周期分几个阶段运行:发现、分类、缺陷修复、测试人员验证、缺陷修复和缺陷报告。
发现。这个阶段要求团队找到尽可能多的问题和 bug,由软件开发团队讨论并接受它们为缺陷,检测问题,并将它们的状态更改为已接受。
分类。在这个阶段,错误按严重程度分类。这有助于开发人员管理他们的工作,并首先关注最重要的问题。
缺陷修复。这是修复缺陷的阶段。开发人员按优先级解决问题,并在过程结束时,将报告提交给测试经理。
- 测试人员的验证。缺陷被修复后,开发人员通过再次测试软件来检查它是否真的被解决了。
- 缺陷关闭。如果缺陷被修复,状态将变为“已关闭”。万一问题没有解决,开发人员会再次检查软件的缺陷。
- 缺陷报告。在这个阶段,测试经理将报告发送给管理团队,以获得关于缺陷管理过程的反馈。管理团队检查反馈后,会给出进一步行动的指示。
- 软件质量属性
- 软件质量属性方法允许识别选项,这些选项可以在以后用于评估和确保所创建的应用程序的质量。在这里,我们将回顾一下您可以用来检查软件质量的最常见的特性。
- 功能。这种方法意味着开发的软件应该要求所有需要的功能。此外,该软件应该与其他系统应用程序正确交互,其功能应该根据其用途工作,并且高度安全。
可靠性。这意味着软件应该能够承受任何条件。它包括在任何环境下工作的可靠性。
可维护性。这种方法意味着必须易于向现有代码添加新代码,易于添加新功能和升级应用程序。
可用性。这意味着应用程序应该有一个用户友好的界面,易于导航,易于解释输出。
- 效率。应用程序应该有效地使用磁盘空间、内存和处理器容量,不要过度使用可用资源,因为这可能会对用户体验产生负面影响。
- 安全。良好的安全级别不允许对系统的未授权访问、数据丢失和应用程序的病毒破坏。
- 便携性。这意味着可以轻松安装或移动应用程序元素,而不会造成伤害或花费很长时间。
- 可用性。这意味着应用程序应该有一个用户友好的界面,易于导航,易于解释输出。
- 软件质量方法和技术
- 除了我们已经讨论过的在没有质量保证工程师的情况下测试代码的方法之外,还有许多方法和技术被 QA 工程师广泛用于确保软件质量。
- 审计。这有助于确保满足所有要求。
设计检查。使用这种技术,您可以检查应用程序的设计、接口、结构和可扩展性。
功能测试。这种类型的测试意味着根据需求检查软件的功能。
代码检查。该测试允许您检查软件中代码的精度。
- 模拟。这允许在真实情况下测试应用程序,以确保所有功能都正常工作,并且不会出现任何问题。
- 标准化。这种测试方法的基础是通过各方(客户、公司、用户等)的共识使测试过程标准化。).
- 该技术允许在不执行应用程序的情况下检查应用程序代码。
- 压力测试。这提供了通过创建不利条件来测试软件有效性和健壮性的能力。
- 模拟。这允许在真实情况下测试应用程序,以确保所有功能都正常工作,并且不会出现任何问题。
- 你的团队需要软件质量保证工程师吗?
- 总的来说,如果你有一个小项目或者足够熟练的开发人员来测试软件的 bug,并且有时间致力于这个过程,那么你的开发团队可能不需要一个单独的质量保证工程师。
- 另一方面,如果你需要一个专家来发现更多的错误,提高软件应用程序的质量和安全性,或者帮助开发人员从最终用户的角度来看产品,你的团队中应该有一个质量保证工程师。
使用像 GitKraken Client 这样健壮的工具,允许更精简和更集中的代码审查,更好的团队沟通,和风险预防,将会带来更好的代码质量,不管你的团队中有没有 QA 工程师。
总的来说,如果你有一个小项目或者足够熟练的开发人员来测试软件的 bug,并且有时间致力于这个过程,那么你的开发团队可能不需要一个单独的质量保证工程师。
另一方面,如果你需要一个专家来发现更多的错误,提高软件应用程序的质量和安全性,或者帮助开发人员从最终用户的角度来看产品,你的团队中应该有一个质量保证工程师。
使用像 GitKraken Client 这样健壮的工具,允许更精简和更集中的代码审查,更好的团队沟通,和风险预防,将会带来更好的代码质量,不管你的团队中有没有 QA 工程师。
学习 Git:在 GitKraken vs CLI 中重置基础
从旨在帮助软件开发人员集中精力编写代码的播放列表中进行选择。播放列表包括流行的音乐剧、视频游戏曲目、棕色噪音等等。
还原 GitKraken:从流动走向还原
GitKraken 是一款 React app。当我们从 Angular.js 迁移到 0.12.2 版本(2015 年 1 月)时,我们就一直使用 React。当我们开始使用 React 时,我们以脸书的 flux 库作为我们的状态模型进行架构,并稳步前进到 glory。一开始,还不错。多表现。很多代码。哇!
最初的兴奋消退了,蜜月也结束了。我们回顾了我们奇怪的混乱状态,并决定采取行动,以 Redux。公平地说,我们在扩展通量时遇到了问题。
GitKraken 团队现在正在完成从 Flux 到 Redux 的过渡,一切看起来真的很棒。当我们为应用程序编写新代码时,我们已经从 Redux 中看到了很多好处。
还原与通量
对于不熟悉 Redux,但熟悉 Flux 的人,可以把 Redux 看作是 Flux 的一个更严格的实现。有一个存储保存应用程序中的所有状态,而不是多个存储和一个调度程序将所有存储绑定在一起。
对于那些不熟悉这两个库的人来说,Flux 库是 Flux 模式的实现。流量模式类似于模型视图控制器(MVC),但是有严格的单向数据流限制。
通量模式
在流程中的每一步,数据仅限于一个移动方向。视图可以应用户的请求启动一个操作,该操作可以生成新数据并将其传递给调度程序,调度程序将操作的结果分派给存储,然后存储可以发出对视图的更新。
在 Redux 库中,我们已经将总存储数量减少到一个,因此我们根本不需要调度程序。dispatcher 最初是用来管理我们用动作结果更新存储的顺序,并保持存储正常运行。相反,我们只是直接通知 Redux 存储已经发生的动作。因此,我们保留了流量模式的基本前提,但是通过合并调度程序和存储来缩减模式的流量。
还原状态
由于我们现在只有一个商店,我的第一反应是商店将是一个维护问题的巨大地狱,但我们实际上通过使用 Redux 的 reducer 模式为我们的分离关注点保持了一些表面上的秩序。Redux 的主要机制是 reducer 模式;我们有一个顶级缩减器,我们可以将子状态树分支成更小的缩减器。
缩减器是状态和状态间消息的纯函数。我们采用先前的状态树、消息,并应用状态的一些转换来产生新的状态树。顶层减速器具有这种形状,任何子减速器也具有这种形状。
减少的过程利用了我们在 Redux 状态上设置的约束,即它是不可变的。当一个消息被传递到 Redux land 时,该消息通过一系列这些 Redux 传递。这些 reducers 然后根据消息决定是否执行更新。
在我们的例子中,还原者决定是否产生一个全新的物体。为了澄清,我们沿着一条路径将每个引用更新到一个更新的值,这样我们没有对先前的状态树进行任何改变。当我们的归约器产生一个全新的对象时,我们知道那个特定的子状态树发生了变化。事实上,我们可以跟踪新对象引用到在前一个状态和下一个状态之间发生的一组确切的变化。
In our case, the reducers decide whether or not to produce a brand new object. To clarify, we update every reference along a path to an updated value, such that we have made no mutations to the previous state tree. When our reducers produce a brand new object, we know that changes happened to that particular substate tree. In fact, we can trace the new object references to the exact set of changes that have taken place between the previous state and the next state.
Redux 的好处
这种转换之所以如此好用,是因为每次只有一条消息以非常一致和直接的方式改变状态(a → b)。乍一看,将应用程序的所有状态提升到一个状态树中似乎有点令人生畏,但好处是一个惊人的权衡。
像时间旅行这样的事情可以用简单的方式实现(只需存储状态更新的序列)。将所有状态保存在一个不可变的数据结构中也允许 React to,呃, react 更好!当 Redux 存储发出更改时,我们可以利用引用透明性。React 可以在更新前执行检查,查看顶级对象引用是否已经更改,如果没有,则短路整个渲染树。
当我们围绕 Redux 状态组织视图时,我们用 Redux 构建的模式的另一个好处开始发挥作用。我们构建监听 Redux 状态的容器,当状态更新发生时,这些容器检索相关的更改并选择是否做出反应。这些容器将它们关心的任何状态传递给表示层。这些层很大程度上是无状态的视图组件(只接收道具的组件)。
好吧!好的。我所描述的好处是视图层通过顶层容器水平扩展,顶层容器保持了纯渲染树。当我们想要添加更多的容器时,我们可以以干净的方式完成(一个容器负责一个完整的视图),即使每个容器都与同一个存储对话。我们基本上构建了一个架构,在伸缩时为每个新的 UI 容器添加一个连接。真干净!
这不是我们扩展得更好的唯一地方。Redux 状态本身按缩减器进行缩放。我们可以通过构建带有子状态的新 reducer 来增加总状态的大小,但是我们不必增加已经编写的 reducer 的复杂性,也不必像在 Flux 中那样管理显式的调度顺序。只有一个存储,我们的 reducers 同步运行,一次产生一个新的状态。
缩放示例
所以你有它。我们的架构现在在 GitKraken 中提供了更清晰的扩展体验。
So there you have it. We have an architecture that now provides a cleaner scaling experience in GitKraken.
管理远程工程团队| GitKon 2022 | Ruth Vela,Nextiva
原文:https://www.gitkraken.com/gitkon/remote-engineering-teams-ruth-vela-nextiva
https://www.youtube.com/embed/3zjrBzImz_w?feature=oembed
视频
让我们面对现实:创建一个高度敬业的团队是很难的,尤其是如果你是从零开始的话。有太多不利于你的因素,从无所事事的劳动力,到对顶尖人才的激烈竞争。即使你在这两方面都取得了成功,你仍然需要让你的员工保持参与和积极性。
与此同时,获得和留住顶尖人才的竞争非常激烈。人才争夺战和远程工作的挑战使得建立令人惊叹的远程工程团队变得更加困难。对于成长中的公司来说,区别于世界上的 Googles、Amazons 和 Metas 从来没有像现在这样重要。
数字显示,18%的美国员工在工作中“积极脱离”,这是自 2013 年以来的最高数字,超过 50%的人只是“不参与”,也就是“安静的放弃者”(盖洛普)。在本文中,您将了解 Nextiva 如何构建和支持远程工程团队,以及如何为您自己的团队创造积极的体验。
伟大的技术是由敬业的技术专家创造的
创建一个功能强大的远程工程团队是一项艰巨的任务。有许多事情需要考虑,包括:
- 在你的团队中培养伟大的文化
- 为团队如何使用工具和协作建立流程并进行沟通
- 平衡团队以成功推进生产
- 构建可扩展的产品并解决困难的技术问题
管理着全球 300 多名技术专家, Nextiva 的领导团队努力确保每一位工程师在工作中都能获得持续的积极体验。为了帮助推动这些努力,该组织建立了一个技术体验计划,该计划侧重于三个目标:支持、联系和职业发展&发展。
技术体验:工作中人的一面
当大多数人想到像这样的文化或经验驱动的项目时,他们想象的是团队建设者和虚拟快乐时光,虽然这些可以帮助培养一种伟大的办公室文化,但还有更多。
技术体验是关于建立有意义的工作体验。
人们希望在职业生涯中成长,感受归属感,了解自己的表现以及公司的表现。
他们想要的不仅仅是薪水。
他们从工作中寻找目标和意义。他们希望因自己的独特之处而出名。他们想要人际关系,尤其是和一个能指导他们更上一层楼的经理。
这是工作中人性化的一面。
最终,这就是它的本质。毕竟,我们都是人。
Nextiva 技术体验计划的每个元素都通过支持、联系和职业成长&发展的目标来促进人类体验。
要了解 Nextiva 如何创造了令人惊叹的技术体验或看到连接目标的实现,请注册参加即将到来的技术讲座并观看过去事件的回放。
关于露丝·贝拉
Ruth Vela 是 Nextiva 的技术体验总监,也是 Nextiva 墨西哥公司的总经理。
Ruth 负责公司全球技术专家团队的技术体验项目。此外,Ruth 还负责 Nextiva Mexico 的端到端运营,该公司的大部分 R&D 都在这里进行。
Ruth 将她独特的工程、领导和创业技能与她对使用技术简化我们工作体验的热情相结合。她倡导向全世界女性推广 STEM 教育和职业。
想多聊聊 Nextiva 的技术体验吗?在 LinkedIn 上与 Ruth 联系。
关于 Nextiva
Nextiva 是一家商业通信公司,拥有 300 多名技术人员,分布在多个国家。
Nextiva 最初提供 VoIP 电话服务——快进 14 年,他们刚刚推出了 NextivaONE,这是一种基于云的新 workhub,它将商业通信应用程序、智能和自动化结合在一起,帮助公司与客户建立更深层次的联系,并在一个地方管理所有对话和关系。如今,超过 100,000 家企业依靠 Nextiva,每年有 40 亿次对话通过我们的网络。
Nextiva 最初提供 VoIP 电话服务——快进 14 年,他们刚刚推出了 NextivaONE,这是一种基于云的新 workhub,它将商业通信应用程序、智能和自动化结合在一起,帮助公司与客户建立更深层次的联系,并在一个地方管理所有对话和关系。如今,超过 100,000 家企业依靠 Nextiva,每年有 40 亿次对话通过我们的网络。
远程软件开发人员和心理健康
原文:https://www.gitkraken.com/blog/remote-software-developers
这篇文章是一位客座作者写的。
支持远程软件开发人员的 6 种方式
随着在家工作政策的发展,世界开始出现新冠肺炎疫情,许多软件开发人员将继续远程工作。
随着疫情和相关隔离的出现,心理健康问题显著增加。在美国,十分之四的成年人有焦虑症状,其中一部分是由孤独引起的。
GitKraken 将 Git 中的团队协作提升到了一个新的高度——让您的远程开发团队对世界上投票排名第一的 Git GUI 感到满意。
软件开发人员和心理健康
鉴于精神疾病呈上升趋势的现实,再加上软件开发人员也报告患相关疾病的比率更高,公司需要确保他们照顾好自己的员工,尤其是在这个前所未有的时期。
但是为什么公司要关心他们员工的心理健康呢——在这种情况下,是他们的软件开发人员?答案很简单。员工吃亏,公司吃亏。
在你能想到的几乎所有行业中,软件开发人员在几乎所有业务的运营中发挥着至关重要的作用,随着技术的不断发展,他们在劳动力中的影响力也将不断增强。简单来说,他们是不可或缺的。
Graziotin 等人的一项 2017 年研究。表明精神疲劳、睡眠不足和抑郁的开发人员更有可能错过最后期限、犯错误和写满 bug 的代码,
在我们深入研究保护软件开发人员健康的技巧之前,让我们剖析一下这个致命问题的原因。软件开发人员有什么特别的地方使他们容易患精神疾病?
软件开发者&心理健康之间有什么联系?
根据国际人文社会科学杂志 的纳亚克博士的研究,开发人员的工作包含各种因素,这些因素会导致高度焦虑和睡眠不足。
这并不奇怪,因为开发人员的工作在很多方面都要求很高。可能影响软件开发人员心理健康的一些压力诱发因素包括:
- 过多的屏幕时间
- 缺乏必要的体力活动
- 技术的不断变化
- 跟上软件开发趋势的压力
- 满足客户的高期望
当然,这些压力不一定是软件开发人员和技术行业所独有的,工作中的许多其他人也经历了同样的挑战。
你如何让软件开发人员开心?
公司可以通过以下 6 种方式来支持那些正在与精神健康问题作斗争的软件开发人员:
1。推广远程健身课程
心理健康的一个重要部分是身体活动。说实话,软件开发并不是一个对体力要求很高的工作。
久坐不动的天性加上远程工作导致的隔离更有可能加剧抑郁和焦虑的程度。当没有人陪伴时,有一个非常简单的解决办法:锻炼。
事实证明,锻炼几乎和抗抑郁药一样有效。
短时间的锻炼可以在工作前、休息时或下班后进行。团队领导可以让他们的软件开发人员意识到这种强烈推荐的活动的好处,并且可以雇佣一名培训师来通过电话会议工具组织和促进远程锻炼会议。
开发人员也可以考虑自己实现广泛的练习。从简单的快步走来提高你的心率,到慢跑或全面的高强度锻炼,每一项锻炼都有助于改善心理健康。
基本上,任何提高心率和出汗的体育活动都会促进快乐激素的释放,并降低焦虑和抑郁的水平。
2。定期召开会议以减少隔离
如前所述,疫情期间焦虑的众多原因之一是孤立。远程团队的动态对工作场所的动态不公平。
在疫情之前,许多软件开发人员在办公室工作,这给了他们面对面交流、开玩笑、出去吃午饭和做其他活动的机会,减少了任何孤独感。
当社交距离和隔离准则被强制执行时,应用程序开发人员被迫远程工作,而且经常是独自工作。孤独感和孤立感会导致包括软件开发人员在内的远程工作人员的心理健康状况恶化。
频繁举行富有成效的电话会议有助于减少远程团队之间的孤独感。这些会议可以是正式的,也可以是非正式的,可以使用 Zoom 或微软团队这样的工具进行。参与者可以讨论每周的目标、里程碑和成功,甚至是他们周末做了什么。电话会议是开始和结束一周工作的好方法,因为它给软件开发人员提供了与同事交流的机会。
也考虑其他非正式的虚拟团队建设活动,如游戏之夜,
3。鼓励设定休息时间
人们强调优质工作的重要性。同样重要的是休息的质量。只工作不玩耍,杰克也变得迟钝。即使最好的发动机也需要日常维护。
休息有正确的方法,也有错误的方法。研究表明,像无意识进食、咖啡因放纵、网上购物和发泄这样的活动不是有效的休息方式。相反,它们会增加疲劳和倦怠。
在长时间的编码会议之后,前面提到的活动之一听起来可能很诱人,但是相反,考虑鼓励或参与这些活动(与工作无关;这是关键)休息期间的活动:
- 打盹
- 散步
- 伸展
- 烹调
- 玩一个快速游戏,比如单人纸牌游戏,或者玩一个拼图游戏
- 沉思
- 练习瑜伽
- 和你的宠物一起玩🐶🐱
- 阅读
开发人员可以从事任何有助于降低和增加催产素水平的爱好。
开发人员可以从事任何有助于降低和增加催产素水平的爱好。
4。将精神健康保险纳入您的保险计划
如今,心理健康的现实变得越来越明显。就像身体疾病一样,你不能只是告诉某人不要沮丧或不要焦虑。这是他们无法完全控制的事情,比如感冒或发烧。
鉴于许多公司为身体疾病提供健康保险,今天为精神健康问题提供保险也同样重要。
来自系统和软件杂志 的一项 2018 年的研究发现,不快乐的程序员更有可能遭受工作退缩、动机水平低下和工作质量差。外部结果注意到编码员遭受这是低代码质量和放电编码。
为了提高(更不用说保护)软件开发的质量,保持软件开发人员的高快乐水平并防止任何可能的心理健康恶化,将符合公司的最大利益。
为了提高(更不用说保护)软件开发的质量,保持软件开发人员的高快乐水平并防止任何可能的心理健康恶化,将符合公司的最大利益。
5。向在线心理学家提供咨询服务
在这种情况下,员工可能更不愿意与咨询师面对面交流。下一个最好的方法是在线交谈。
在一天的辛苦工作或工作场所事故后,开发人员可能希望健康地发泄他们面临的某些问题或他们在工作中可能遇到的问题,在这种情况下,有组织的咨询会议非常有帮助。
在一天的辛苦工作或工作场所事故后,开发人员可能希望健康地发泄他们面临的某些问题或他们在工作中可能遇到的问题,在这种情况下,有组织的咨询会议非常有帮助。
对于需要治疗的软件开发人员来说,有一些资源可以利用。充分利用在线咨询服务,确保记录下评论和每条评论的平均价格。
对于需要治疗的软件开发人员来说,有一些资源可以利用。充分利用在线咨询服务,确保记录下评论和每条评论的平均价格。
6。遏制 WFH 倦怠的时间管理工具
对于软件开发人员来说,赶时间可能是一项艰巨的任务。但是如果你适当地管理你的时间和组织你的任务,你更有可能完成它。
许多软件开发团队已经通过使用时间跟踪软件和其他项目管理工具来计划编码项目。像这样的工具可以让你组织每天的任务,并跟踪每项任务的时间(内置工具可以考虑分心或紧急情况),这样你就可以跟踪一天的生产力水平。
许多软件开发团队已经通过使用时间跟踪软件和其他项目管理工具来计划编码项目。像这样的工具可以让你组织每天的任务,并跟踪每项任务的时间(内置工具可以考虑分心或紧急情况),这样你就可以跟踪一天的生产力水平。
让您的远程开发团队开心
公司需要专注于提供涵盖精神健康的健康保险,促进团队建设活动,组织正式和非正式的远程会议,并确保健康的团队合作是公司工作道德的一部分。
作为个人,软件开发人员可以在家通过安排任务、有效管理时间和休息来管理他们的工作。为了提高他们的工作,锻炼和花时间冥想是久经考验的缓解疲劳、倦怠、抑郁和焦虑的方法。
作为个人,软件开发人员可以在家通过安排任务、有效管理时间和休息来管理他们的工作。为了提高他们的工作,锻炼和花时间冥想是久经考验的缓解疲劳、倦怠、抑郁和焦虑的方法。
如何重命名 Git 分支?Git 问题的解决方案
原文:https://www.gitkraken.com/learn/git/problems/rename-git-branch
https://www.youtube.com/embed/cEfoB8Hl2gY?feature=oembed
视频
重命名 Git 分支
当使用您的 Git 库时,可能会有这样的时候,您希望重命名您正在使用的 Git 分支。首先,我们将介绍重命名本地 Git 分支,然后重命名远程 Git 分支;我们将使用跨平台 GitKraken Git GUI 和 CLI 来回顾这个过程。
只需两次点击,GitKraken 就能让您快速重命名本地和远程分支机构。⬇️
如何用 GitKraken 给一个分支重新命名?
让我们看看如何使用 GitKraken Git GUI 为 Windows、Mac 和 Linux 快速重命名 Git 分支。
如何在 GitKraken 本地重命名分支?
要使用 GitKraken 重命名本地分支,只需右击分支并从上下文菜单中选择Rename
选项。
接下来,键入您想要的新分支名称并点击Enter
。本地分支将被重命名。
如何在 GitKraken 中重命名远程分支?
要更新 GitKraken 中的远程 Git 分支,您必须通过右键单击分支并从上下文菜单中选择Set Upstream
来更改上游。
接下来,输入新的分支名称并点击Submit
。然后,您可以使用Push
工具栏按钮,或者从上下文菜单中,将新的 Git 分支推送到远程。
最后,您必须通过右键单击旧的远程分支并从上下文菜单中选择Delete origin/branch-name
来删除它。
如何在命令行中本地重命名 Git 分支?
当您想在本地重命名 Git 分支时,您可以使用带有-m
选项的git branch
命令来完成。
如果您想要重命名您已经签出的当前分支,您可以简单地传递您想要的新名称:
git branch -m <new-branch-name>
GitTip:了解更多关于如何结帐本地 Git 分支的信息。
如果你没有签出一个本地 Git 分支,你能重命名这个分支吗?
如果要重命名与已签出的当前分支不同的分支,可以使用相同的命令,但要传递分支的当前名称,后跟新的分支名称:
git branch -m <branch-name><new-branch-name>
如何重命名远程 Git 分支?
如果您要重命名的分支已经被推送到远程,上游分支不会因为您重命名了本地分支而改变。
您可以将新分支推送到远程,并使用带有-u
(或--set-upstream
)选项的git push
命令更新上游:
git push origin -u <new-branch-name>
GitTip:了解更多关于如何在 Git 中设置分支上游的。
现在,您只需使用带有-d
(或--delete
)选项的git push
命令从远程删除旧分支:
git push origin -d <branch-name>
GitTip:了解更多关于如何在 Git 中删除远程分支。
使用 GitKraken Git GUI 重命名 Git 分支的过程要快得多,也更直观,并且可以避免错误地修改错误的数据。
Git 回复提交| Git 问题的解决方案
原文:https://www.gitkraken.com/learn/git/problems/revert-git-commit
开发人员使用 Git revert commit 通过“向前更改”来撤销过去的错误从本质上讲,开发人员使用 Git revert commit 来撤销过去的错误,方法是创建一个“相等但相反”的提交,以抵消目标提交或一组提交的影响。大多数情况下,如果您在团队中工作,Git revert 是用来纠正提交的最佳命令,因为它不太可能影响团队成员的工作。
在本文中,我们将介绍如何使用终端、 GitKraken 客户端和 GitLens for VS 代码来恢复 Git 中的提交。我们还将看看开发人员用来撤销错误的其他 Git 命令和工作流,以及如何根据您的用例来确定使用哪个命令。
如何对 VS 代码使用 GitLens 执行 Git Revert 提交
https://www.youtube.com/embed/w4hvcI_4WNQ?feature=oembed
视频
无论您更喜欢使用 GUI 还是 CLI,GitKraken Client 都提供了两个世界的最佳选择,通过给您更多的控制,使恢复提交更快、更容易、更安全。
在终端中恢复 Git 提交
要使用终端撤销 Git 提交,首先需要识别要撤销的提交的惟一提交 ID 或 SHA。要查找目标提交的提交 ID,请运行以下命令:
git log
这将显示您的提交列表以及每个提交的唯一 ID。接下来,copy
您想要恢复的提交的提交 ID。
这将显示您的提交列表以及每个提交的唯一 ID。接下来,copy
您想要恢复的提交的提交 ID。
现在运行git revert <commit ID>
。这将创建一个新的提交来否定您指定的提交。
Git 使用终端回复多个提交
您还可以恢复一系列 Git 提交。为此,请运行以下命令:
Git 使用终端回复多个提交
git revert <older commit ID>..<newer commit ID>
旧的提交应该首先出现,然后是新的提交。这将恢复这两个提交,以及它们之间的任何提交。
旧的提交应该首先出现,然后是新的提交。这将恢复这两个提交,以及它们之间的任何提交。
使用 GitKraken 客户端进行 Git 还原提交
使用 GitKraken 客户端的可视化上下文,只需点击两下就可以恢复 Git 提交。
要使用 GitKraken 客户端恢复提交,只需在中央图中右键单击要恢复的提交,并从上下文菜单中选择Revert commit
。
然后将询问您是否要立即提交更改;在这里,您可以选择保存恢复的提交,或者选择No
进行额外的代码更改或更改 Git 提交消息。
要使用 GitKraken 客户端恢复提交,只需在中央图中右键单击要恢复的提交,并从上下文菜单中选择Revert commit
。
然后将询问您是否要立即提交更改;在这里,您可以选择保存恢复的提交,或者选择No
进行额外的代码更改或更改 Git 提交消息。
很简单,对吧?无需记住复杂的提交 id 或经历额外的步骤。准备好尝试了吗?下载 GitKraken 客户端并测试恢复 Git 提交有多容易。
Git 使用 GitKraken 客户端回复多个提交
如果您在 GitKraken 客户端中恢复多个提交,您将需要一次恢复一个,并且您应该按照从最新到最早的顺序这样做。这将减少引入冲突的机会。
Git 使用 GitKraken 客户端回复多个提交
使用 gittens 进行 git 还原提交
如果你是一个 VS 代码用户, GitLens 使得恢复提交变得很容易。
要使用 GitLens 恢复 Git 提交,请完成以下操作:
在 VS 代码中打开您的回购
从侧边栏中选择Source Control
- 导航至
COMMITS
部分 Right-click
在您想要恢复的提交上- 选择
Revert Commit
选项 Right-click
在您想要恢复的提交上- 选择
Revert Commit
选项
您也可以通过命令面板键入>GitLens: Git Revert
或从提交细节的快速选择菜单访问该选项。
您也可以通过命令面板键入>GitLens: Git Revert
或从提交细节的快速选择菜单访问该选项。
准备好试试了吗?安装 GitLens 让您的任务和项目井然有序。
撤销提交的附加命令和工作流
当使用 Git 库时,即使是最勤奋的开发人员也会时不时地遇到错误。但是修复这些错误的过程可能会因每个案例的情况而有所不同。此外,如果您不注意如何撤销这些错误,您可能会丢失工作或弄乱团队成员的工作。
幸运的是,Git 提供了几个工具,允许您撤销由提交引入的错误。与任何其他工具箱一样,在使用每个工具之前,了解它们的用途、优势和相关风险是非常重要的。
因此,让我们看看开发人员用来撤销错误的其他一些常见 Git 命令。
幸运的是,Git 提供了几个工具,允许您撤销由提交引入的错误。与任何其他工具箱一样,在使用每个工具之前,了解它们的用途、优势和相关风险是非常重要的。
使用 GitKraken 客户端快速撤销
GitKraken 客户端使用顶部工具栏中的 undo
和redo
按钮轻松撤销/重做以下操作:
检验
犯罪
- 抛弃
- 删除分支
- 移除遥控器
- 将分支重置为提交
- 需要注意的是 GitKraken 客户端的撤销按钮只会撤销你最近的 Git 操作。在最近一次 Git 操作之后撤销任何操作都需要使用 Git revert、Git reset 或 Git rebase。
- 去重置
Git revert 使用前向更改来撤销提交,而 Git reset 的操作正好相反。
Git reset 是一种及时返回到特定提交的方法,并且将您的活动位置重置为分支提交历史中所选的提交。
然而,正如科幻电影所描绘的那样,改变历史进程会带来各种各样的副作用。例如,如果您返回到一个带有重置的提交,您传递的所有提交可能会进入一个悬空状态,它们存在,但没有任何东西引用它们。此外,如果您执行“硬”复位,您可能会丢失没有正确备份的本地工作。
如果您需要对不是上次提交的提交进行修改,最好的解决方案是通过恢复旧的提交来创建新的提交。作为 Git 的最佳实践,您应该避免做任何需要您强制推送——并重写历史——您的主要分支的事情。
仍然决定执行 Git 重置吗?这里有一个指南来帮助你尽可能少的重启。
Git Rebase
现在,假设您想通过回到过去来撤销 Git 提交,但是您不想完全重置历史。
您不是在错误提交后放弃提交,而是希望再次应用它们,并逐个提交地处理更改的历史记录的影响。
对于那些想要对历史修订过程进行更多手动控制的人,Git 提供了交互式 rebase 工具。使用交互式 rebase,您将看到一个提交列表,该列表显示了到您的分支历史上的指定点为止的提交。从这一点来看,每次提交都有不同的选项:
Pick: 您可以将提交保留在历史记录中
**删除:**从历史记录中删除提交
**挤压:**将提交与其之前的提交合并
**改写:**更改提交消息
获得关于如何执行 Git rebase 的分步说明。
- Git 修正
- 如果您碰巧在提交后立即发现了错误,您可以使用 Git amend 命令快速撤销错误。也许您在最后一次提交时忘记了存放文件,或者在提交消息中出现了拼写错误,或者甚至在代码中出现了错误,但是还没有提交任何其他内容。
- 如果你想修改历史中的最后一次提交,你可以用修改来修改 Git 提交。例如,您可以通过更改 Git 提交消息或描述来修改之前的提交,或者您甚至可以暂存您忘记包含的文件。
- 类似地,如果您之前提交的代码中有错误,您可以修复错误,甚至在修改之前添加更多的更改。Git amend 是一个单次提交撤销工具,它只影响分支历史中的最后一次提交。
与 Git 重置和 Git 重置一样,修改是一个历史重写过程,或者说是一个逆向变化,而不是一个正向变化。在幕后,Git amend 创建了一个全新的提交,并用新的提交替换您的上一次提交。因此,它应该受到同等程度的关注;一旦您将提交推送到共享分支中,修改该提交并推送到修改后的变更可能会对处理该提交的任何人产生副作用。
改变未来的最佳方式
撤销 Git 提交很像时间旅行的现代描述,每个 Git 命令都允许您以独特的方式改变和影响历史。由您决定哪个命令适合您的用例,并从那里应用它。旅行愉快!
让我们做一个最后的总结。
Git 回复
不要重写你的回购历史
消除指定提交的影响
通常在与合作者一起工作时,用于“撤消”命令的最佳命令
去重置
将您的活动位置重置为所选的提交,可能会删除后面的所有提交
要求您使用 Git 强制推送
会给你的队友带来麻烦
- Git Rebase
- 本质上是移动提交并保留一些提交历史
- 使用交互式 rebase 工具,您可以手动选择每次提交时要做的事情,包括拾取、丢弃、挤压、重绕
Git 修正
“重写历史”命令
- 只能在您最近一次提交时执行
- 可用于更改提交消息、添加文件、调整代码等。
- 会给你的队友带来麻烦
GitKraken 客户端使恢复 Git 提交的过程变得简单,风险也小得多。帮你的工作流程一个忙,今天就试试 GitKraken 客户端吧。
Git Rebase
- 本质上是移动提交并保留一些提交历史
- 使用交互式 rebase 工具,您可以手动选择每次提交时要做的事情,包括拾取、丢弃、挤压、重绕
Git 修正
“重写历史”命令
- 只能在您最近一次提交时执行
- 可用于更改提交消息、添加文件、调整代码等。
- Can be used to change a commit message, add a file, adjust code, etc.
GitKraken 客户端使恢复 Git 提交的过程变得简单,风险也小得多。帮你的工作流程一个忙,今天就试试 GitKraken 客户端吧。
GitKraken Client makes the process of reverting a Git commit simple and with far less risk. Do your workflow a favor and try GitKraken Client today.
使用 Git 回到过去
时间行程
你有没有发现自己在想这样的事情:‘几个月前我的项目看起来怎么样?’去年春天我的网站看起来怎么样?
有时,审查代码的过去版本可能是推进项目的最佳方式。谢天谢地,Git 使这成为可能,GitKraken 使这变得容易。
跳上我们的 Git 时间机器,我们一起回到过去!
确认你的目的地
首先,你要问自己:*‘我需要回溯到多远?’。*然后,记住你的日期范围,在 GitKraken 中打开你的回购协议,浏览你的图表,寻找最接近目标日期的承诺。
浏览你的图表,寻找最接近目标日期的承诺。
浏览你的图表,寻找最接近目标日期的承诺。
如果您不确定在哪里找到日期,请选择一个提交并查看右侧的日期戳。
选择提交以查看日期戳。
如果你正在处理一个有超过 2000 个提交的糟糕的回购协议,你可能需要单独或者隐藏分支来回到更远的时间。
单飞或隐藏树枝。
信任,但要核实
一旦你选择了一个提交,GitKraken 将在右边的面板中显示修改过的文件列表。然而,如果您点击View all files
选项,您将获得整个项目的树形视图。
查看所有文件。
单击一个文件,打开左侧的 diff。这应该能帮你找到你要找的东西。🎉
打开文件 diff。
开始工作
如果您只需要复制和粘贴代码,从树视图中查看文件的差异可能就足够了。然而,假设你需要运行一个本地版本的网站,或者你希望从这个提交开始构建。这就是创建新分支的关键所在。
右键单击提交,并选择Create branch here
。
在此创建分支。
现在您可以签出该分支,您的回购将会改变,以匹配文件在您返回的时间点的状态。
其他时间旅行选项
啊,是的,模糊发现者。如果你在 Mac 上使用Command + P
或者在 Windows 和 Linux 上使用Ctrl + P
来打开模糊查找器,你可以输入“History”,然后在 GitKraken 中搜索文件名。
使用模糊查找器搜索您的文件历史记录。
选择该文件,您将跳转到该文件的整个历史。File View
选项可用于快速复制/粘贴您需要的内容。
选择文件视图。
这怎么可能呢?!
Git 跟踪您的项目变更,当您在历史中分支一个提交时,您是在告诉 Git 应用变更的特定子集。这使得浏览项目历史变得容易,尤其是在 GitKraken 中。
选择该文件,您将跳转到该文件的整个历史。File View
选项可用于快速复制/粘贴您需要的内容。
选择文件视图。
这怎么可能呢?!
Git 跟踪您的项目变更,当您在历史中分支一个提交时,您是在告诉 Git 应用变更的特定子集。这使得浏览项目历史变得容易,尤其是在 GitKraken 中。
Git tracks your project changes, and when you branch off a commit in your history, you are telling Git to apply a specific subset of changes. This makes it easy to travel through your project’s history, especially with GitKraken.
VS 代码中隐藏的宝石| GitKon 2022 | Reynald Adolphe,微软
原文:https://www.gitkraken.com/gitkon/reynald-adolphe-visual-studio-code-hidden-gems
https://www.youtube.com/embed/9mPBXV7hVA0?feature=oembed
视频
在他的 GitKon 2022 会议上,微软高级开发人员 Reynald Adolphe 探索了一些与 Visual Studio 代码(VS 代码)相关的隐藏宝石,许多人都没有意识到。涵盖了两个主要主题:分支管理和文档管理。
如果你在 VS 代码中使用 Git,尝试使用世界上最流行的扩展,现在有了团队协作特性。
Visual Studio 中的分支管理代码
在分支管理方面,大多数开发人员都知道,他们可以使用 VS Code 的 UI 作为从终端执行 Git 命令的替代方法来管理分支,包括像创建 Git 分支、重命名 Git 分支、删除 Git 分支等等。
然而,有许多开发人员没有意识到,您可以在幕后观察 Git 命令与代码在使用其 UI 时的执行情况。
为此,导航到终端的输出并从下拉菜单中选择Git
,如下所示。
下面,您可以看到一些常见的 Git 命令是如何使用 VS 代码完成的,并与 VS 代码实际执行的命令进行了比较。事情并不总是像你想的那样。
例如,对于创建分支和切换 Git 分支,VS 代码分别使用 Git checkout 命令,而不是 Git 分支和 Git 开关。
创建 Git 分支:
- Git 终端中的选项:
git branch branch-name
git checkout branch-name
- VS 代码执行 :
git checkout -q -b branch-name
- 切换 Git 分支:
Git 终端中的选项:
git switch branch-name
git checkout branch-name
- VS 代码执行 :
git checkout -q branch-name
- 重命名 Git 分支:
- VS 代码执行 :
- Git 终端中的选项:
git branch -m new-branch-name
VS 代码执行 : git branch -m new-branch-name
删除 Git 分支:
- Git 终端中的选项:
git branch –d branch-name
- VS 代码执行 :
git branch –d branch-name
- Git 终端中的选项:
像这样的信息对于那些刚接触 Git 和不熟悉终端命令,但对 VS 代码在幕后做什么很好奇的人来说非常有用。但是这个输出屏幕对于那些已经熟悉终端并对新命令感兴趣的人来说也很方便。
- Git 终端中的选项:
git branch –d branch-name
- Git 新手?查看 GitKraken Learn Git 中心,通过教程、文章和备忘单探索初级、中级和高级操作。
- Git 终端中的选项:
Visual Studio 代码中的文档管理
VS 代码通常用于文档管理。虽然 VS 代码的文档管理功能不经常被提及,但它是一个非常有用的隐藏的瑰宝。
VS 代码中的文档管理可用于以下任务(但不限于):
简单记笔记
技术 API
跟踪代码片段
降价
- Markdown 是 VS 代码中用于文档管理的主要语法,尽管还有其他的选择。
- 开始使用 markdown 的一些优秀资源包括:
- 跟踪代码片段
Markdown 本质上是 HTML 的一种更简单的形式,所以学习曲线很低,这带来了好处。
有很多扩展可以用来简化在 VS 代码中使用 markdown 的过程,比如 GitDoc ,它通过自动提交到存储库来将您的 markdown 视为 word 文档。这只是它的众多特性之一。
其他 feutres GitDoc 产品包括:
自动拉动
挤压版本
撤销版本
还原版本
VS 代码中文档管理需要考虑的其他扩展包括:
- 自动拉动
- 您可以将文档保存到一个私有的存储库中,这样就可以在任何地方访问它。更好的是,如果你使用的是 vscode.dev ,你可以在任何浏览器上修改你的文档和代码,甚至是在 iPad 上。
- 文档管理的重要性,尤其是 VS 代码的易用性,是不应该被忽视的瑰宝。
- 还原版本
用 Visual Studio 代码管理分支和文档
缺乏适当的分支和文档管理会使开发人员的生活变得困难,而掌握这些技术,并利用像 VS Code 的 GitLens 和本文中提到的其他工具可以使您的工作生活更加顺利。
您可以将文档保存到一个私有的存储库中,这样就可以在任何地方访问它。更好的是,如果你使用的是 vscode.dev ,你可以在任何浏览器上修改你的文档和代码,甚至是在 iPad 上。
文档管理的重要性,尤其是 VS 代码的易用性,是不应该被忽视的瑰宝。
用 Visual Studio 代码管理分支和文档
缺乏适当的分支和文档管理会使开发人员的生活变得困难,而掌握这些技术,并利用像 VS Code 的 GitLens 和本文中提到的其他工具可以使您的工作生活更加顺利。
吉拉销售力量集成
团队之间的协作是有效开发的核心原则,但是有时快速共享或获取信息需要太多的步骤,最终不会那么快。通过吉拉 Salesforce 集成,您可以在一个中心位置的团队之间快速轻松地共享相关数据,从上次客户通信到最近对开放问题的评论。
在本文中,我们将讨论如何使用 Salesforce &吉拉 Atlassian app 的 连接器连接 Salesforce 和吉拉。
吉拉 Salesforce 集成可以帮助您的团队的原因有很多,但以下是一些最常见的好处:
- **对您的数据充满信心–**通过吉拉 Salesforce 集成,您的信息将被自动同步,评论将被汇总,并且您的数据将以简洁、易于理解的形式呈现,以确保提供世界一流的服务。
- **卓越的客户服务–**这种集成使您能够快速有效地管理客户问题和期望。将所有相关信息放在一个地方会让每个人都成为专家,从支持人员到开发人员,您的客户会觉得他们获得了“白手套”体验。
- **自动化工作流程–**这种集成使您能够自动化工作流程,这样您就可以将时间花在重要的事情上。例如,当客户在 Salesforce 中提出支持请求时,可以在吉拉中自动创建相关票证。
- **提高工作效率–**随着吉拉销售团队的整合,通过电子邮件向另一个团队发送最新信息的需求已经成为过去。让所有信息随时可用和可访问意味着您的团队可以收回宝贵的时间,并防止项目在收集数据时被搁置。
安装 Salesforce &吉拉的连接器
要安装适用于 Salesforce &吉拉的 Connect,请执行以下操作:
登录到您的吉拉实例
点击
Apps
下拉菜单并选择Explore more apps
搜索
Connector for Salesforce & Jira
,点击 app 标题点击
Try it for free
开始免费试用,并开始安装按照提示,点击
Close
,弹出Ready to Go
即可!
Salesforce 和吉拉定价的连接器
吉拉 Salesforce 与 Salesforce &吉拉 Atlassian marketplace 应用程序的连接器集成的定价取决于两个因素:有多少用户,以及吉拉有多少云或数据服务器实例。请参见下面的细分:
吉拉云
吉拉云按用户计费,前 10 名用户的固定费用为 10 美元。云应用按月或按年订购出售。只要您的订阅有效,您就有资格获得支持和自动版本更新。
当您的订阅每月续订时,系统会根据您实例中的用户数量自动向您收取应用费用。
如果首次购买后应用程序价格发生变化,有 60 天的保护期,在此期间,您可以根据旧价格续订。
吉拉数据中心
吉拉数据中心按 50 个用户为一组计费,数据中心应用按年度订阅出售。只要您的订购有效,您就有资格获得支持和版本更新。
如果首次购买后应用程序价格发生变化,有 60 天的保护期,在此期间,您可以根据旧价格续订。
也是 Git 用户?
如果您在日常工作中也使用 Git,请查看吉拉的 Git 集成。这个高度评价的 Atlassian 应用程序很受欢迎,因为它可以帮助开发人员消除上下文切换,并释放新的生产力水平。Git Integration for 吉拉使得直接在吉拉查看和使用 Git 存储库数据(包括提交、分支、标记和拉请求)变得容易,从而实现无缝跟踪和管理。
如果首次购买后应用程序价格发生变化,有 60 天的保护期,在此期间,您可以根据旧价格续订。
也是 Git 用户?
如果您在日常工作中也使用 Git,请查看吉拉的 Git 集成。这个高度评价的 Atlassian 应用程序很受欢迎,因为它可以帮助开发人员消除上下文切换,并释放新的生产力水平。Git Integration for 吉拉使得直接在吉拉查看和使用 Git 存储库数据(包括提交、分支、标记和拉请求)变得容易,从而实现无缝跟踪和管理。
Also a Git User?
If you also use Git in your daily work, check out Git Integration for Jira. This highly rated Atlassian app is popular because it helps developers eliminate context switching and unlock new levels of productivity. Git Integration for Jira makes it easy to view and work with Git repository data, including commits, branches, tags, and pull requests, directly in Jira for seamless tracking and management.
使用 Cloudflare CDN 节省带宽(和资金)
原文:https://www.gitkraken.com/blog/saving-bandwidth-and-money-with-cloudflare-cdn
挑战
不久前,我们的产品副总裁带着一个有趣的问题来找我们。我们在一个私有的集中数据中心托管了一些服务器,这些服务器带来了大量的带宽,我们用这些带宽来托管 Git kraken Git 客户端的发布服务器。发布服务器处理客户端从我们网站的所有下载,还提供我们的客户收到的所有更新。
然而,随着我们将更多的东西转移到公共云(AWS/Azure)中,并淘汰私有数据中心的服务器,所包含的大部分带宽缩小了,不再足以满足我们的需求。支付超额费用或额外带宽过去是、现在仍然是成本高昂的。
寻找解决方案
我们需要一个符合以下标准的解决方案来分发我们的下载和更新:
快的
- 便宜的
- 无停机时间(并与现有客户端配合使用)
- 带宽很贵
GitKraken 不是脸书,但也不小。事实上,我们最近打破了一百万用户的记录!我们的小发布服务器每天可以持续提供数 TB 的 GitKraken 下载/更新。仅通过 AWS 提供服务会让我们为带宽买单,这比我们愿意支付的要高得多。作为参考,150 TB/月的成本超过 11,500 美元。
不要为带宽付费
因为带宽是昂贵的,我们试图保持低成本,我们认为最好的办法是消除带宽成本。Cloudflare 不收带宽费;不管体积大小,你都不需要额外付费。此外,由于 Cloudflare 的 CDN 在世界各地都有存在点(pop ),我们的发布文件可以更快地提供给客户。
避免停机
因为我们喜欢我们的客户成功团队,并希望避免失败下载的罚单,所以避免停机对这一过渡极其重要。我们还需要在不编辑 GitKraken 代码的情况下完成所有这些工作。因为我们的客户已经有了客户端,并且客户端知道如何以及从哪里获得它的更新,所以这个改变对于已经下载到我们客户的计算机上的 GitKraken Git 客户端来说是完全未知的。
因为带宽是昂贵的,我们试图保持低成本,我们认为最好的办法是消除带宽成本。Cloudflare 不收带宽费;不管体积大小,你都不需要额外付费。此外,由于 Cloudflare 的 CDN 在世界各地都有存在点(pop ),我们的发布文件可以更快地提供给客户。
步骤 1:设置一个新域名
当您使用 Cloudflare 时,它实际上成为了 DNS 提供商。出于各种原因,我们不准备对整个 gitkraken.com 域这样做。相反,我们决定创建 axocdn.com 域并在 Cloudflare 上托管该域。这将允许我们快速行动,做出我们需要的更改,而不会影响我们的 DNS 和基础架构的其余部分。
因为我们喜欢我们的客户成功团队,并希望避免失败下载的罚单,所以避免停机对这一过渡极其重要。我们还需要在不编辑 GitKraken 代码的情况下完成所有这些工作。因为我们的客户已经有了客户端,并且客户端知道如何以及从哪里获得它的更新,所以这个改变对于已经下载到我们客户的计算机上的 GitKraken Git 客户端来说是完全未知的。
步骤 2:创建 AWS 基础设施
利用 CloudFormation,我们创建了运行发布服务器代码的必要基础设施。
当您使用 Cloudflare 时,它实际上成为了 DNS 提供商。出于各种原因,我们不准备对整个 gitkraken.com 域这样做。相反,我们决定创建 axocdn.com 域并在 Cloudflare 上托管该域。这将允许我们快速行动,做出我们需要的更改,而不会影响我们的 DNS 和基础架构的其余部分。
步骤 3:用发布文件播种新的发布服务器
将发布文件复制到新的发布服务器上,这样它就可以为客户端提供更新。
利用 CloudFormation,我们创建了运行发布服务器代码的必要基础设施。
步骤 4:减少 release.gitkraken.com 的 DNS TTL
我们想为最坏的情况做准备。如果出现问题,我们希望回滚或交换到新的服务器,我们不希望必须等待 24 小时以上才能将 DNS 更改传播到所有客户端。
第五步:翻转域名系统
我们更改了 release.gitkraken.com 的 DNS 条目,使其指向 AWS 中新创建的发布服务器,这样流量就会开始流入其中。利用 Nginx,我们将所有从 release.gitkraken.com 到新发布服务器的流量重定向回 release.axocdn.com。因为 axocdn.com 托管在 Cloudflare 之后,任何现在连接到发布服务器的用户都将访问缓存我们下载的 Cloudflare 路由。
步骤 4:减少 release.gitkraken.com 的 DNS TTL
步骤 6:监控性能和带宽
虽然我们运行的测试表明一切正常,但我们希望继续监控以确保一切运行顺利。在我们做出改变的最初几个小时,很大一部分请求都是发送到我们的原始服务器,这让我们有点担心。但是随着 Cloudflare 的 pop 充满了我们的下载工件,到达我们原始服务器的流量急剧下降。
结果呢
Cloudflare 的 CDN 将我们发布服务器的带宽减少了 100%。
从技术上讲,并不是所有的流量,但它非常接近 100%,以至于 Cloudflare 的分析仪表板将其四舍五入。实际上,Cloudflare 的 CDN 缓存了大约 99.5%的带宽。
我们将继续监控我们的新设置,以确保它的行为符合预期,但除了在我们创建新版本时新的更新文件必须传播到 pop 之外,我们希望流量保持在相当一致的水平。
虽然我们运行的测试表明一切正常,但我们希望继续监控以确保一切运行顺利。在我们做出改变的最初几个小时,很大一部分请求都是发送到我们的原始服务器,这让我们有点担心。但是随着 Cloudflare 的 pop 充满了我们的下载工件,到达我们原始服务器的流量急剧下降。
结果呢
Cloudflare 的 CDN 将我们发布服务器的带宽减少了 100%。
从技术上讲,并不是所有的流量,但它非常接近 100%,以至于 Cloudflare 的分析仪表板将其四舍五入。实际上,Cloudflare 的 CDN 缓存了大约 99.5%的带宽。
我们将继续监控我们的新设置,以确保它的行为符合预期,但除了在我们创建新版本时新的更新文件必须传播到 pop 之外,我们希望流量保持在相当一致的水平。
We will continue to monitor our new setup to ensure it behaves as expected, but apart from new update files having to propagate out to the POPs as we create new releases, we expect traffic to remain at a fairly consistent level.
安全软件开发| GitKon 2022 |微软 Audrey Long
原文:https://www.gitkraken.com/gitkon/secure-software-development-audrey-long
https://www.youtube.com/embed/2SQJ2OvykuE?feature=oembed
视频
不幸的是,数据泄露并不罕见;每天大约有 30,000 次对网站的攻击。数据泄露会对公司的公众形象和客户的利益产生重大影响。这是一个严重的问题,根据网络安全风险投资的数据,2021 年全球的成本为 6 万亿美元。
许多组织很幸运地拥有专业的安全工程师,即使他们有,他们也可能对软件工程师如何工作缺乏一些了解,反之亦然。在同一组织中工作的安全工程师和软件工程师需要了解彼此的目标和最佳实践,这样每个人才能说同一种语言。
安全软件开发工具
需要开发人员易于理解和使用的安全工具,并且本质上还需要模块化,以便在创建和更新它们时,或者在出现更好的工具时,可以将它们交换进来。
安全性是动态的,因此开发人员需要可伸缩的、动态的软件解决方案和工具,但是这些解决方案很难创建、构建和维护。
弥合软件和安全之间的鸿沟
软件和安全往往是非常孤立的,两者之间没有太多明确的理解。
为了补救这一点,安全工程师需要“左移”以更好地理解并直接与软件工程师和他们工作的项目一起工作。这种理解导致了攻击媒介的发现和预防,以及我们可以在许多软件项目中采用和重用的更强的缓解策略。
您是否需要安全和软件团队之间更好的沟通和协作?GitKraken Client 可以通过问题跟踪集成和减少上下文切换的功能在团队之间架起一座桥梁。
DevSecOps
我们在安全领域看到的当前趋势是 DevSecOps 的概念:开发、安全和操作。
什么是 DevSecOps?从本质上讲,DevSecOps 指的是正常的自动化 DevOps 管道上的一个附加安全层,它专注于构建强大而安全的代码,并确保公司的运营部门也通过精细的梳理来查看安全事件。
可以创建专注于 DevSecOps 的 Sec 或安全部分的工具,以解决整个开发过程中的许多安全问题,因此我们可以确保开发人员不允许他们的管道中存在安全漏洞。
由于其自动化的性质,该策略可以帮助解决风险,而不会严重阻碍开发,允许在整个过程中持续实施良好的安全实践。DevSecOps 是朝着弥合安全和软件之间的鸿沟的正确方向迈出的一步,但作为一个行业,我们仍需要做更多的工作。
由于其自动化的性质,该策略可以帮助解决风险,而不会严重阻碍开发,允许在整个过程中持续实施良好的安全实践。DevSecOps 是朝着弥合安全和软件之间的鸿沟的正确方向迈出的一步,但作为一个行业,我们仍需要做更多的工作。
Yelp 发现秘密
目前,软件开发工程师仍在通过不在软件项目中实践 DevSecOps 来努力实现安全代码卫生。
实现安全软件开发的一个策略是包装开源证书扫描器,Yelp 检测将被摄取并用于 Azure DevOps (ADO)管道的秘密。这种方法很有价值,因为它包装了一个开源工具,并立即将它们导出到 ADO backlog 中,以跟踪管道中当前的错误和潜在的凭据泄漏。
安全形势总是在变化,因此我们需要在安全实践中尽可能地保持动态,并了解香肠是如何制成的。
GitKraken 的一套开发工具有助于使 Git 更加安全、强大、易于理解,无论您是在桌面上工作,还是在 IDE 或问题跟踪器中工作。今天就免费试用我们的工具: GitKraken 客户端,VS 代码的 GitLens,吉拉的 Git 集成。
GitKraken 的一套开发工具有助于使 Git 更加安全、强大、易于理解,无论您是在桌面上工作,还是在 IDE 或问题跟踪器中工作。今天就免费试用我们的工具: GitKraken 客户端,VS 代码的 GitLens,吉拉的 Git 集成。
安全升级| GitKon 2022 | Matias Madou,安全代码战士
原文:https://www.gitkraken.com/gitkon/security-upskilling-matias-madou-secure-code-warrior
https://www.youtube.com/embed/BPXLrgJAM4U?feature=oembed
视频
知识与行为:为什么糟糕的编码模式持续存在
这里有一个严肃的问题:你曾经做过你知道对你有害的事情吗?也许你为自己点了一份美味的汉堡作为晚餐,毫无疑问,你知道这不会符合你的饮食目标,也不会帮助你吃掉冰箱里那些枯萎的营养蔬菜。或者你可能为了快速的游戏而避开了健身房,这很快就变成了一个通宵,因为喝了太多的能量饮料。
我们有时都会做一些不是最健康的选择,即使我们有知识去探索一条更神圣的道路。但是这和软件开发有什么关系呢?
根据与 Evans Data 合作的新研究,发现 48%的开发人员故意在他们的代码中留下漏洞。《2022 年开发人员驱动的安全状况》调查深入研究了 1,200 名活跃开发人员的关键见解和经验,阐明了他们在安全领域的态度和挑战。很明显,就代码创建中习得的——更不用说强化的——行为而言,我们可以做出更健康的安全选择。
对于开发团队来说,安全性的优先级较低
调查中的一个重要发现是只有 14%的开发人员在编写代码时优先考虑安全性。我们已经知道,在开发人员的世界中,功能构建是王道,但总的来说,他们仍然没有准备好让安全性成为他们 DNA 的一部分。我们需要揭开开发者世界中安全性的神秘面纱。
即使在最好的情况下,网络安全也是错综复杂的,虽然安全编码只是整体景观的一部分,但它是系统中一个复杂的齿轮,需要专家的关注。
调查显示,对于普通开发人员来说,使用安全代码的概念通常是孤立的,他们的关注点仅限于一个类别,而不是对基础和其他方面的整体看法。开发人员表示依赖于使用现有的或预先批准的代码,而不是从头开始编写没有漏洞的新代码。虽然关于第三方组件的安全意识是最重要的,但是测试现有代码也是最重要的;仅仅这些还不足以成为一个全面的、精通安全技术的开发人员。
代码级漏洞通常是由那些学习了糟糕的编码模式的开发人员引入的,他们缺乏对在 KPI 中编写安全代码的重视,这只是强化了这一可接受的标准。
安全领导者可以通过首先确保向开发团队展示安全编码需要什么以及如何处理一系列常见问题和陷阱的完整画面,来大大提高初始意识并确定最紧迫的知识差距领域。减少漏洞需要在有效使用的语言和框架中进行良好、安全的编码模式实践培训。
上下文在开发人员安全技能提升中至关重要,当涉及到业务的安全目标时,开发人员需要被带上旅程。
实施安全编码的努力
Evans 数据研究显示,86%的开发人员发现实践安全编码具有挑战性,92%的开发经理也承认他们的团队需要更多的安全框架培训。如前所述,48%的受访者承认他们故意在代码中留下漏洞。
这描绘了一幅非常令人担忧的画面。一般来说,开发人员似乎没有得到频繁、充分的培训,也没有得到足够的良好安全实践和卫生知识。
从字里行间来看,它强调了问题的症结所在:对于开发者来说,在他们的工作中考虑安全性根本就不是优先考虑的事情,快速发布特性仍然是首要任务。此外,他们接受的培训不能建立信心或实践技能,也不能帮助他们理解他们发布易受攻击代码的决定的影响。
如果开发人员在选择发布易受攻击的代码时知道真正的风险是什么,他们会很快发现不存在可以接受的商业风险。随着数据泄露的平均成本达到 435 万美元,我们必须现在就花时间和金钱在开发人员的安全升级上,以避免以后潜在的灾难。
提升开发人员驱动的安全性需要相当大的文化转变,它始于让工程师和安全团队更加清晰的教育途径。随着与安全相关的标准和技能的不断改进,我们可以让开发人员拥有更健康的安全习惯成为新标准。
GitKraken Client 帮助团队系统化工作流程,因此您可以确保团队开发人员的安全最佳实践,无论他们的经验水平如何。
使用语义版本和 Git 标签管理发布
原文:https://www.gitkraken.com/gitkon/semantic-versioning-git-tags
https://www.youtube.com/embed/4wPjo5C-v8Y?feature=oembed
视频
麻省理工学院斯隆管理学院网站,像许多网站和应用一样,使用 Git 来管理其代码库。像任何系统一样,当需要部署到生产环境时,代码被打包成工件发布。那个工件是在特定时间点的一套标准化的代码版本。
您维护项目的时间越长,发布管理就会变得更加混乱和复杂。如果您和您的团队缺乏一个标准的、简洁的方法来确定一个发布意味着什么,那么发布管理就会变得混乱。如果您没有可靠的方法来确定不同版本之间您的代码库发生了什么变化,那么当您查看过去的版本时,您可能不明白哪个版本中推出了什么。
一种已经被证明有助于随时间管理版本的方法是语义版本化。与 Git 标签一起使用,语义版本控制允许您轻松地指出生产代码中的变化程度,并在将来查看它们时理解这些变化。让我们看看语义版本化、Git 标记的基础,以及如何将两者结合起来创建语义 Git 版本。
GitKraken 漂亮的提交图将帮助您以一种快速理解的方式可视化您的项目回购,使版本发布和管理过去的版本变得安全和容易。
定义语义版本
本质上,语义版本化只是一个编号模式。这是一种行业标准的软件开发实践,用于指示自上一个产品发布以来的变化程度。
如果你看看你今天使用的任何一个软件,产品的开发团队很可能使用语义版本化来跟踪它们的变化。例如,您的操作系统和 web 浏览器都将有一个语义版本号。几乎每个人都在使用它,因为语义版本化是一种清晰、简洁的方式来表示变更的级别。
语义版本号有三个部分:
主要号码
次要编号
路径号
当这些增量中的每一个时,它意味着不同程度的变化已经进入你的代码库。
我们先来看补丁号。当你有一个补丁发布时,比如从版本 1.0.1 升级到版本 1.0.2,这表明已经有了错误修复或者微小的更新。这些并不是对应用程序功能的重大改变。
一个小版本,比如从版本 1.0.2 到 1.1.0,表示功能上有变化。这可以是功能更改、添加全新功能或删除现有功能。
主要版本,如从版本 1.1.0 到版本 2.0.0,表示可能破坏向后兼容性或显著改变功能的变化。这可能是从移除不推荐使用的代码到引入应用程序的完整重新架构的所有事情。主要版本号告诉人们已经发生了重大变化,有些东西可能不再像在旧版本上那样工作,或者需要遵循新的步骤才能获得相同的功能。
When each one of these increments, it means a different degree of changes has gone into your codebase.
Let’s first look at the patch number. When you have a patch release, like going from version 1.0.1 to version 1.0.2, this indicates that there have been bug fixes or trivial updates. These are not major alterations to your application’s functionality.
A minor release, like going from version 1.0.2 to 1.1.0, indicates that there’s been a change to functionality. This can be a functionality change, adding completely new functionality, or removing existing functionality.
A major release, like going from version 1.1.0 to version 2.0.0, indicates changes that might break backward compatibility or significantly alter functionality. This could be everything from removing deprecated code to introducing a complete re-architecture of your application. Major version numbers tell people that there have been major changes and some things may no longer work as they did on the old version, or that there are new steps that need to be followed to get the same functionality.
语义版本一旦确定,就应该被认为是一成不变的。一旦发布,该版本的代码就不能更改。一旦你用一个语义版本标记了你的代码库的一个版本,你就不应该改变那个版本指向的代码状态。如果你已经发布了 1.3.0 版本,一个次要版本,并且你意识到你错过了一些东西,你不能随意地把它添加到你的 Git 库中,然后重新标记这个提交。如果您已经发布了一个需要更新的版本,那么您将不得不创建一个新的发布,用一个新的语义版本号来完成。
在最坏的情况下,如果您发布了应用程序的 2.0.0 版本,然后意识到您忘记向 repo 中添加一堆文件,您将不得不创建一个新的主要版本,立即从 2.0.0 版本升级到 3.0.0 版本。这对任何人来说都不好玩。在你的项目中使用语义版本化意味着在你发布你的代码之前要负责仔细检查你的版本号。一旦您的代码被发布到生产环境中,您必须假设有人正在使用该代码,并且您不应该更改版本号。对于公开发布的代码来说尤其如此,比如 npm 包。
A semantic version, once set, should be considered set in stone. Once released, that version of the code cannot be changed. Once you’ve marked a version of your codebase with a semantic version, you are not supposed to change which state of your code that version points to. If you’ve released version 1.3.0, a minor release, and you realize you missed something, you can’t just arbitrarily add it to your Git repository and then re-tag that commit. If you’ve released a version that needs to be updated, you will have to create a new release, complete with a new semantic version number.
添加 Git 标签
因为语义版本是一成不变的,这使得它们非常适合与 Git 标签结合使用。Git 标签是一种给 Git 提交添加标记的方式,以表明这是一个有意义的提交。
有两种不同类型的 Git 标签。
首先是轻量级标签。轻量级标签基本上只是指向提交的命名指针。这是一个人类可读的名称,可以分配给 Git 提交散列。要在 Git CLI 中生成一个轻量级标记,您可以使用git tag
命令,后跟标记名,然后可能是您希望标记应用到的提交的散列。如果您只想让标记引用当前提交,可以省略提交散列。
Because semantic versions are set in stone, this makes them perfect for combining with Git tags. A Git tag is a way to add a marker to a Git commit to signify that it’s a meaningful commit in some way.
There are two different types of Git tags.
First are lightweight tags. Lightweight tags are basically just named pointers to a commit. It’s a human-readable name that you can assign to a Git commit hash. To generate a lightweight tag in the Git CLI, you use the git tag
command followed by the tag name, and then potentially the hash of the commit you want that tag applied to. If you only want the tag to reference the current commit, you can omit the commit hash.
在 GitKraken 中,您可以简单地右键单击中心图中的任何提交,然后单击Create tag here
到分配一个 Git 标签。其他类型的 Git 标签被称为注释标签。这些是推荐在您的项目中使用的标记类型,因为它们除了是与 Git 提交散列相关联的人类可读名称之外,还是 Git 数据库中的完整对象。在不深入了解数据库 Git 结构的情况下,“完整对象”意味着对象可以被校验和。
带注释的 Git 标签也是推荐使用的标签类型,因为它们包含关于提交的附加信息,比如谁创建了标签,何时创建的,以及除了提交消息之外还提供标签消息。对于公共项目,可以使用像 PGP 或 GPG 这样的系统对它们进行签名和验证。
使用git tag
命令可以创建一个轻量级的标签,但是添加-a
标志会将它表示为一个带注释的标签。添加-m
标志将提供某种注释消息,以及标签所应用到的提交的散列。
Annotated Git tags are also the recommended type of tags to use as they contain additional information about the commit, like who created the tag, when they created it, as well as providing tag messages in addition to the commit message. For public projects, they can be signed and verified using systems like PGP or GPG.
Using the git tag
command can be used to make a lightweight tag, but appending the -a
flag will denote it as an annotated tag. Adding the -m
flag will provide some sort of annotation message, and the hash for the commit you’re applying the tag to.
在 GitKraken 中,同样像轻量级标签一样,您所需要做的就是右键单击中央图中的特定提交,然后选择Create annotated tag here
选项。GitKraken 会指导你完成剩下的过程。
In GitKraken, again like lightweight tags, all you need to do is right-click on a particular commit from the central graph and select the Create annotated tag here
option. GitKraken will guide you through the rest of the process.
无论您喜欢 GUI 提供的视觉效果,还是 CLI 的控制,GitKraken 都能满足您的需求。
带注释的 Git 标签+语义版本化
使用语义版本号命名带注释的标签有很大的价值。这种实践生成语义发布,有时称为语义版本构建号,它允许您在 Git 存储库中用特定的版本号标记提交。如果您更改了主版本号、次版本号或补丁版本号,那么您就表明了自上一个 Git 标记以来的更改级别。这是一个非常有用的方法来展示你的代码库的变化水平。
在 Git 存储库中使用语义发布可以让您更容易地回顾您的历史,并跟踪您的代码库是如何以及何时被修改的。这对你很有帮助,对你的团队和潜在的用户也很有帮助,尤其是在查看你的发布说明的时候。
许多产品界面都支持对 Git 标签使用语义版本控制。例如,GitKraken 支持本地工作的语义版本控制,GitHub 支持在线存储库的语义版本控制。许多系统都很容易暴露版本号或标签接口。这些界面可以快速帮助您找到哪些版本是补丁更新,哪些版本包含主要功能更改。
Using semantic releases in a Git repository allows you to more easily review your history and track how and when changes were made in your codebase. This is really helpful to you, but also to your team and potentially your users, especially when viewing your release notes.
The use of semantic versioning for your Git tags is supported by many product interfaces. For example, semantic versioning is supported by GitKraken for working locally, and GitHub for online repositories. Many systems make it easy to expose a release number or tag interface. These interfaces can quickly help you find which releases were patch updates and which ones included major functionality changes.
自动化的语义发布
使用语义版本号来命名您的注释标签也有助于自动化您的过程。当使用自动化工具进行生产部署时,例如 CircleCI、,您可以在config.yaml
中指明只应在某些标签上执行作业。如果您使用语义版本控制,您可以放入一个非常简单的正则表达式来跟踪这种变化,并且只在匹配语义版本结构的标签上触发动作。您也可以在其他系统中这样做,如 Bitbucket 管道、 Jenkins 或 Travis CI 。
观看 GitKon speaker 的一个剪辑,Michael Miles 通过终端和使用 GitKraken 添加带注释的标签并将标签推送到 GitHub repo 来完成创建语义发布的过程。
Using semantic version build numbers for naming your annotated tags also helps with automating your process. When using automation tools for your production deployments, such as CircleCI, you can indicate in your config.yaml
that a job should only be executed on certain tags. If you use semantic versioning, you can put in a very simple regular expression to track that change and trigger actions only on tags matching the structure of a semantic version. You can do this in other systems like Bitbucket Pipelines, Jenkins, or Travis CI as well.
有了 GitKraken 强大的搜索和过滤功能,您再也不会丢失标签。此外,您只需点击两下就可以创建新标签。💯
语义版本和发布说明
虽然语义发布对于从事项目的内部团队非常有用,但是如果您打算在发布说明中对外公开这些发布号,仍然有一些额外的考虑。有多种方法可以创建发行说明——大多数软件发行版都会推出附带的文档——但在每种情况下,目标都是提供不仅仅是“代码被更新了”的信息如果您只是在这些发行说明中公开语义版本构建号,这可以提供一定程度的更改,但是它不提供任何有关更改的信息。虽然对于补丁发布来说,您可能能够做到这一点,但对于次要或主要的更新来说,这是不够的。
微小的变化,或者引入新功能的任何变化,至少需要公开注释消息并提供使用细节。理想情况下,这些细节可以包含在注释消息中。
主要版本,或者任何需要人们进行某种升级的版本,应该让人们了解他们需要采取的任何行动。
Minor changes, or any change that introduces new functionality, needs, at a very minimum, to expose the annotation messages and provide usage details. Ideally, these details could be included in the annotation message.
Major releases, or any release that requires people to do some sort of upgrade, should give people an understanding of any actions that they will need to take as a result.
对于完全私有的存储库和项目,详细的发行说明可能没有保证。然而,随着时间的推移,让内部团队了解变化仍然很重要。至少,生成两次发布之间发生的提交消息的列表可以作为注释标签的消息。这可以节省大量时间来跟踪何时引入了某些更改,即使您正在用 GitKraken 可视化您的 Git 历史。
用语义版本和 Git 标签让生活更美好
观看一段视频,其中有一些关于如何使用语义版本和 Git 标签做更多事情的建议。
将语义版本化和 Git 标签结合到你的项目中有很多好处,无论是对你的开发团队还是阅读发布说明的最终用户。基于语义发布方法的标准化允许您更好地自动化您的过程,并以未来开发人员肯定会欣赏的方式公开变更。GitKraken 可以让您在创建和查看标签的过程中更加轻松,从而让您的生活更加美好。立即下载 GitKraken Git 客户端 ,它包括一个 GUI 和 CLI ,并开始语义发布之路。
Making Your Life Better with Semantic Versioning and Git Tags
Watch a clip with some ‘extra credit’ advice on how to do even more with semantic versioning and Git Tags.
There are a lot of advantages to combining semantic versioning and Git tagging for your projects, both for your dev team and for your end users reading the release notes. Standardizing on a semantic release approach allows you to better automate your processes and exposes changes in a way that future developers will certainly appreciate. GitKraken can help make your life even better by making tagging a lot less painless, both in creating and viewing your tags. Download the GitKraken Git client today, which includes a GUI and CLI, and get started down the path to semantic releases.
Shell 命令 CLI 简介第 2 部分
在 CLI 介绍系列的第 1 部分:CLI 代表什么?,我们概述了您为什么想要使用 CLI,这样做的一些好处,以及一些 CLI 历史和术语。在第 2 部分 Shell 命令介绍中,准备好卷起袖子深入了解终端。
在我们继续之前,花点时间庆祝一下你自己。🎉很多人都不敢冒险走到这一步。你正在学习一些令人敬畏的技能,我的朋友,这是值得承认的。虽然在概念变得清晰之前,您可能需要多次运行我们将要探索的一些命令,但要知道这是完全正常的,事实上大多数刚接触 Git CLI 的人都会经历同样的经历。请相信您很快就会成为 CLI 专家,因为这是事实!
在 shell 命令系列的这一部分中,我们将讨论:
1.壳牌基本面
2。用 Shell 命令在文件系统中移动
3。用 Shell 命令与文件和文件系统交互
4。阅读手册
5。便捷的 Shell 命令列表
让我们开始吧。
从命令行学习 Git 基础知识?GitKraken 客户端为文件路径和常用命令提供了有用的自动完成建议。
从命令行学习 Git 基础知识?GitKraken 客户端为文件路径和常用命令提供了有用的自动完成建议。
外壳命令基础
外壳命令基础
贝壳以为我是谁?
当与命令行 shell 交互时,定义“谁”正在与 shell 交互是很重要的。对您来说,显然您正在与 shell 交互,但是每个系统都有用户角色和 root 或管理员角色的概念。这些不同的角色有不同的权限,每个角色对系统的影响也不同。你作为用户所做的任何事情都将被限制在你的帐户之内,而作为根用户可以影响整个机器和所有帐户。小心 root 访问。
要看电脑认为你是谁,用:
$ whoami
当与命令行 shell 交互时,定义“谁”正在与 shell 交互是很重要的。对您来说,显然您正在与 shell 交互,但是每个系统都有用户角色和 root 或管理员角色的概念。这些不同的角色有不同的权限,每个角色对系统的影响也不同。你作为用户所做的任何事情都将被限制在你的帐户之内,而作为根用户可以影响整个机器和所有帐户。小心 root 访问。
要看电脑认为你是谁,用:
$ whoami
在这里,我们可以看到询问whoami
时返回的用户名dwaynemcdaniel
。这在以后查看权限和安装程序时变得很重要。现在,只要确保你用你的用户名而不是root
登录。
在这里,我们可以看到询问whoami
时返回的用户名dwaynemcdaniel
。这在以后查看权限和安装程序时变得很重要。现在,只要确保你用你的用户名而不是root
登录。
导航您的文件系统
在命令行环境中,相对于您正在工作的文件夹执行操作。知道你在操作系统文件夹结构中的位置是非常重要的。你工作的地方被称为你的“当前工作目录”
使用 CLI 查看你所在操作系统的文件结构,使用以下命令:
$ pwd
pwd
命令使用格式/User/username/foldername
返回当前工作目录的绝对或完整路径。这个完整路径可以从左到右读:/
的根目录位置;接下来是Users
目录,它跟踪系统上的所有用户;其次是用户的配置文件目录;最后,路径的其余部分是指定用户文件系统中的文件夹。知道完整路径以及如何访问它对移动或复制文件、安装程序或克隆库非常有帮助。
关于提示的说明
此时,您可能对上面示例中出现在pwd
之前的文本感到疑惑。这些信息被称为 shell 的“命令提示符变量”默认情况下,它们会告诉您谁登录了以及机器的名称。
%
只是指示你应该从哪里开始输入。命令的例子通常以一个$
或一个%
开始,告诉你实际的命令从哪里开始。在本文中,我们将使用$
。您的提示可能与这些示例中的有所不同,这是意料之中的。您可以完全控制在该提示之前打印的内容。在本系列的后面,我们将研究定制,包括修改那些命令提示符变量和创建您自己的快捷方式。现在,只要知道不管您的命令提示符是什么样子,本文中的示例命令都是在$
之后开始的。
使用 CLI Shell 命令列出目录的内容
知道你在哪里是一个好的开始,但是你需要一种方法来查看当前工作目录中有什么。
要列出当前工作目录的内容,使用以下 shell 命令:
$ ls
这相当于用 Mac 的 Finder 或 Window 的文件浏览器打开文件夹。它只显示可见文件夹的名称。文件夹或目录通常在其名称和文件末尾没有文件扩展名,但并非总是如此。在这个例子中,您可以看到docs
、build
和overrides
没有文件扩展名,这意味着您假设它们都是目录是正确的。还可以看到README.md
和mkdocs.yml
都有文件扩展名,确实都是文件。
知道你在哪里是一个好的开始,但是你需要一种方法来查看当前工作目录中有什么。
要列出当前工作目录的内容,使用以下 shell 命令:
使用 Shell 命令查看所有文件夹内容
要查看文件夹的所有内容,包括隐藏的文件夹和文件,请使用以下 shell 命令:
$ ls -a
使用选项-a
意味着“列出所有目录内容,包括隐藏的文件夹和文件。”隐藏的文件夹和文件名称以句号.
开头。例如,一个隐藏文件夹是.git
文件夹,一个隐藏文件是.gitignore
。-a
选项显示所有内容,包括隐藏的文件和文件夹。
特殊隐藏字符
项目.
和..
实际上是非常方便的特殊字符,它们总是出现在文件系统的每个目录中。读作“点”的.
表示“当前目录”,而..
或“点点”表示“上一级目录”
$ ls -a
更详细地查看所有文件夹内容
关于如何通过使用选项来显示ls
命令所显示的信息,有很多不同的方式。要查看关于当前工作目录内容的更多信息,请使用下面的 shell 命令:
$ ls -l
使用选项-a
意味着“列出所有目录内容,包括隐藏的文件夹和文件。”隐藏的文件夹和文件名称以句号.
开头。例如,一个隐藏文件夹是.git
文件夹,一个隐藏文件是.gitignore
。-a
选项显示所有内容,包括隐藏的文件和文件夹。
信息量真大!让我们把它分解一下,看看每一部分。
-l
标志代表“长格式选项”这些信息比您通常工作所需的信息要多,但是在您需要时能够获得这些信息是很有帮助的。现在让我们继续,但重点是,对于如何在 CLI 中列出目录的内容,有更多的选项来最大限度地满足您的需求。
CLI Shell 命令的组合选项
在继续学习其他 CLI shell 命令之前,最后一点需要注意:您可以组合任何选项,有时称为标志。对于任何有选项的 shell 命令都是如此。
要查看关于目录中所有文件的更多信息,使用以下 shell 命令:
$ ls -al
使用 Shell 命令在文件系统中移动
要在其他目录中工作,您需要移动您在系统中的参考点。
要改变当前的工作目录,使用下面的 shell 命令:
$ cd <target-directory>
下面是一个向下移动一级目录到build
文件夹的例子:
CLI Shell 命令的组合选项
通过在 shell 命令中指定完整路径,可以移动到文件系统中的任何目录。例如,macOS 上应用程序文件夹的完整路径是/Applications
。无论您在文件系统的哪个位置,如果您使用的是 macOS,您都可以使用以下 shell 命令切换到应用程序目录:
$ cd /Applications
$ ls -al
导航文件系统意味着记住其他目录的路径。GitKraken 客户端中的 CLI 可以通过自动建议可用文件夹来提供帮助!
使用 Shell 命令在文件系统中移动
上移一个目录
还记得之前我们运行ls -a
时的那个【点点】..
?这些点对于在文件系统中上移一级非常方便。
要在文件系统中向上移动一个目录,使用下面的 shell 命令:
$ cd ..
还记得之前我们运行ls -a
时的那个【点点】..
?这些点对于在文件系统中上移一级非常方便。
要在文件系统中向上移动一个目录,使用下面的 shell 命令:
$ cd ..
向上移动多个目录级别
因为每个文件夹都包含..
,所以您可以调用这个标志来移动到比任何目录更高的一级,即使您不知道更高一级目录的名称。
要向上移动两级目录,请使用以下 shell 命令:
$ cd ../..
要上移 3 级目录,使用下面的 shell 命令:
$ cd ../../..
$ cd ../..
要上移 3 级目录,使用下面的 shell 命令:
$ cd ../../..
上移一个目录
切换到最后一个目录
如果你曾经使用过电视遥控器,那么你可能熟悉“最后一个频道”按钮,它将频道切换回前一个频道。CLI shells 也有这个选项和-
符号。
要将目录改回上一个,使用下面的 shell 命令:
$ cd -
如果你曾经使用过电视遥控器,那么你可能熟悉“最后一个频道”按钮,它将频道切换回前一个频道。CLI shells 也有这个选项和-
符号。
要将目录改回上一个,使用下面的 shell 命令:
$ cd -
向上移动多个目录级别
相对于原点的变化
在 CLI shell 中,~
符号具有非常特殊的含义;这是您的个人文件夹路径的简写。不必从整个操作系统的根目录/
指定文件夹路径,您可以使用~
从您的/username
文件夹开始一个路径,它被称为您的Home
文件夹。你会在网上的例子中看到这种速记符号,它节省了大量的打字时间。
要将目录更改到您的/Users/*username*/Documents/
文件夹中,请使用以下 shell 命令:
cd ~/Documents
使用 Shell 命令与文件和文件系统交互
在文件结构中移动并能够查看是任何 shell 的主要目标之一。使用 shell 的另一个主要目标是能够操作文件系统并与文件交互。这包括创建、移动、重命名、更新和删除文件。
切换到最后一个目录
制作新目录
要新建一个目录或文件夹,使用下面的 shell 命令:
$ mkdir <newfoldername>
要新建一个目录或文件夹,使用下面的 shell 命令:
$ mkdir <newfoldername>
相对于原点的变化
默认情况下,运行mkdir
会在当前工作目录中创建新文件夹。但是,您可以通过提供想要创建它的路径来指定系统上的任何位置。
要在子目录中创建一个新目录,使用以下 shell 命令:
$ mkdir path/to/target/location/newdirectoryname
$ mkdir path/to/target/location/newdirectoryname
制作新文件
创建新文件有多种方法。您可以使用文本编辑器打开并保存一个新文件,这将在本系列的下一部分中讨论,或者使用您的 GUI 创建一个文件。但是创建新的空白文件的最快方法之一是使用touch
命令。
创建一个新的空白文件,使用下面的 shell 命令:
$ touch f<ile-name.extention>
制作新目录
要新建一个目录或文件夹,使用下面的 shell 命令:
$ mkdir <newfoldername>
你不仅仅局限于.txt
扩展名。您可以在这里添加任何您想要的文件扩展名,如.js
、.php
、.sh
,甚至是.jpg
或.mp4
。对于 shell 来说,这些仍然是可编辑的文本文件。其他程序将使用文件扩展名来确定如何处理文件内容以及应该用什么来打开它们。
移动文件
要将文件移动到文件系统中的新位置,请使用以下 shell 命令:
$ mv file newfile-location
$ mv file newfile-location
您也可以移动与当前工作目录不在同一目录中的文件,但您需要指定其路径。
创建新文件有多种方法。您可以使用文本编辑器打开并保存一个新文件,这将在本系列的下一部分中讨论,或者使用您的 GUI 创建一个文件。但是创建新的空白文件的最快方法之一是使用touch
命令。
创建一个新的空白文件,使用下面的 shell 命令:
$ touch f<ile-name.extention>
在上面的例子中,您会看到没有指定文件夹的路径,而是使用了特殊字符.
。圆点的意思是“我的当前位置”但是由于我们想要移动的文件在另一个目录中,我们使用了文件系统中的相对路径。给出完整路径也可以,但更常见的是只使用相对路径。
您还可以使用 shell 命令:mv
移动整个目录,如下所示。
在上面的例子中,您会看到没有指定文件夹的路径,而是使用了特殊字符.
。圆点的意思是“我的当前位置”但是由于我们想要移动的文件在另一个目录中,我们使用了文件系统中的相对路径。给出完整路径也可以,但更常见的是只使用相对路径。
您还可以使用 shell 命令:mv
移动整个目录,如下所示。
你不仅仅局限于.txt
扩展名。您可以在这里添加任何您想要的文件扩展名,如.js
、.php
、.sh
,甚至是.jpg
或.mp4
。对于 shell 来说,这些仍然是可编辑的文本文件。其他程序将使用文件扩展名来确定如何处理文件内容以及应该用什么来打开它们。
用‘mv’给东西重新命名
要使用mv
shell 命令重命名文件,请使用以下命令:
$ mv filename newfilename
$ mv file newfile-location
$ mv file newfile-location
起初,这似乎不是一个显而易见的用例,但是如果你退后一步,想想计算机如何将文件从 A 点移动到 B 点,这实际上是很有意义的。不像在房子里移动物理物品,操作系统不会把它们捡起来带走,它只是改变了物品被引用的方式。更改引用的名称就像更改位置一样简单。
您也可以移动与当前工作目录不在同一目录中的文件,但您需要指定其路径。
使用 Shell 命令复制文件
要复制一个文件,使用下面的 shell 命令:
$ cp filename newfilename
在上面的例子中,您会看到没有指定文件夹的路径,而是使用了特殊字符.
。圆点的意思是“我的当前位置”但是由于我们想要移动的文件在另一个目录中,我们使用了文件系统中的相对路径。给出完整路径也可以,但更常见的是只使用相对路径。
您还可以使用 shell 命令:mv
移动整个目录,如下所示。
In the above example, you will see that instead of specifying a path to a folder, the special character .
was used. Dot just means “my current location.” But since the file we wanted to move was in another directory, we used the relative path to where we were in the file system. Giving the full path would have also worked, but it’s much more common to just use relative paths.
You can also move entire directories using the shell command: mv
, as shown below.
就像移动文件一样,您可以将文件从任何路径复制到任何路径,只要您指定它们的位置。
用‘mv’给东西重新命名
使用 Shell 命令复制目录
与移动文件和目录不同,默认情况下,shell 不允许您复制整个目录。如果你尝试,你会得到一个错误cp: foldername is a directory (not copied).
幸运的是,有一个选项我们可以用来安全地覆盖它。
要复制一个目录,使用下面的 shell 命令:
$ cp -r foldername newfoldername
与移动文件和目录不同,默认情况下,shell 不允许您复制整个目录。如果你尝试,你会得到一个错误cp: foldername is a directory (not copied).
幸运的是,有一个选项我们可以用来安全地覆盖它。
要复制一个目录,使用下面的 shell 命令:
$ cp -r foldername newfoldername
在上面的例子中,-r
代表递归。
在上面的例子中,-r
代表递归。
使用 Shell 命令删除文件
要删除文件,请使用以下 shell 命令:
$ rm -i filename
这里有几件事需要注意。在上面的例子中,您将看到一个确认步骤:remove text1.txt?
,用户必须输入yes
才能继续。这被称为交互模式操作,通过使用-i
标志触发。这是一个非常好的主意,尤其是当你第一次学习使用命令行来使用rm
的交互模式时,每次运行它只是为了确保你正在删除你想要删除的东西。
要删除一个没有仔细检查的文件,使用下面的 shell 命令:
$ rm filename
还要注意文件去了哪里。与桌面 GUI 将文件移动到垃圾箱不同,CLI shell 只是将它们从文件系统中删除。没有办法拿回那些文件。这是关于使用终端键入 shell 命令的更“危险”的部分之一,也是在使用版本控制时尽早并且经常提交的另一个好理由。
就像移动文件一样,您可以将文件从任何路径复制到任何路径,只要您指定它们的位置。
用 Shell 命令删除目录
移除整个目录需要的不仅仅是rm
。就像 cp shell 命令一样,您需要指定 -r
标志。如果你非常非常确定要删除一个目录,你可以跳过交互模式,用强制选项强制删除:-f
。但是要小心,这个命令不能撤销。一旦文件被删除,如果没有版本控制的备份,它们将永远消失。
要强制删除一个目录,使用下面的 shell 命令:
rm -rf directoryname
与移动文件和目录不同,默认情况下,shell 不允许您复制整个目录。如果你尝试,你会得到一个错误cp: foldername is a directory (not copied).
幸运的是,有一个选项我们可以用来安全地覆盖它。
要复制一个目录,使用下面的 shell 命令:
$ cp -r foldername newfoldername
Unlike moving files and directories, the shell does not allow you to copy entire directories by default. If you try, you will get an error of cp: foldername is a directory (not copied).
Luckily, there is an option we can use to override this safely.
To copy a directory, use the following shell command:
$ cp -r foldername newfoldername
注意:这是一个非常强大的命令,无论何时使用-f
的强制选项都应该非常小心。安全护栏的存在是有原因的,如果有其他可行的方法,我们总是建议避免超越它们。
在上面的例子中,-r
代表递归。
随着您需要学习的命令列表的增长,GitKraken 客户端的 CLI 可以简化找到正确命令的过程!它将帮助您可视化地跟踪您的 Git 项目。
使用 Shell 命令删除文件
阅读手册
在本文的前面,你已经了解了一些选项,或者说标志,它们是用ls
、cp
和rm
命令来完成特定技能所需要的。这是很多人开始担心要记住一长串可能选项的地方。不要慌!除了记住一些方便的标志,大多数用户,像本系列的作者一样,在做更复杂的事情时需要查找选项。CLI shell 最棒的一点是文档是内置的!
要访问任何 shell 命令的手册,使用以下命令:
$ man command
例如,下面是来自$ man ls
的输出
这里有几件事需要注意。在上面的例子中,您将看到一个确认步骤:remove text1.txt?
,用户必须输入yes
才能继续。这被称为交互模式操作,通过使用-i
标志触发。这是一个非常好的主意,尤其是当你第一次学习使用命令行来使用rm
的交互模式时,每次运行它只是为了确保你正在删除你想要删除的东西。
要删除一个没有仔细检查的文件,使用下面的 shell 命令:
$ rm filename
还要注意文件去了哪里。与桌面 GUI 将文件移动到垃圾箱不同,CLI shell 只是将它们从文件系统中删除。没有办法拿回那些文件。这是关于使用终端键入 shell 命令的更“危险”的部分之一,也是在使用版本控制时尽早并且经常提交的另一个好理由。
There are a couple of things to note here. In the above example, you will see a confirmation step: remove text1.txt?
where the user had to enter yes
to continue. This is called operating in interactive mode, triggered by using the -i
flag. It is a really good idea, especially when first learning to use the command line to use the interactive mode of rm
every time you run it just to make very sure you are removing what you intend to remove.
To delete a file without double checking, use the following shell command:
$ rm filename
Also of note is where the file went. Unlike your desktop GUI that moves things to a trash folder, the CLI shell simply deletes them from the file system. There is no way to get those files back. This is one of the more ‘dangerous’ parts about using the terminal to type shell commands and another good reason to Git commit early and often when using version control.
每个内置的 shell 命令都有一个这样的条目。它甚至可以在你的电脑完全离线的情况下工作。虽然这听起来像一些枯燥的阅读,但它实际上是一种非常令人满意的方式,可以了解所有的选项是什么,哪些可能有一天会派上用场。你越深入具体的用例,man
将会成为一个非常有用的盟友。
移除整个目录需要的不仅仅是rm
。就像 cp shell 命令一样,您需要指定 -r
标志。如果你非常非常确定要删除一个目录,你可以跳过交互模式,用强制选项强制删除:-f
。但是要小心,这个命令不能撤销。一旦文件被删除,如果没有版本控制的备份,它们将永远消失。
要强制删除一个目录,使用下面的 shell 命令:
rm -rf directoryname
一个简单的 Shell 命令列表
现在,您已经了解了导航文件系统以及创建、移动和删除文件和目录的基础知识,您可以放心地开始探索内置于 CLI shell 中的其他命令了。有很多 shell 命令,我们没有时间在这里讨论,但是让我们来讨论几个非常有用的命令。
有用的 Shell 命令:
$ clear
–这只是清除终端的屏幕。
$ reset
–重启终端会话,清除进程中的屏幕。
$ history
–显示您最近运行的命令列表。
$ ps
–显示正在运行的进程。
$ cat filename
–将文件内容连接到屏幕上。基本上,这将为您打印出文件内容。有些命令的名字比其他命令更奇怪。
$ head
–在终端窗口打印出一个文件的前 10 行。您可以通过使用-n
命令后跟您想要查看的行数来指定您想要打印的行数。例如head -n 50 file.txt
会将 file.txt 的前 50 行打印到屏幕上。
$ tail
–打印出文件的最后 10 行。像head
一样,您可以指定要显示的行数,但是tail
还有一个非常有用的跟随选项:-f
。使用此选项时,终端会在文件更新时连续打印文件的底部行。这在查看日志文件时特别有用。
$ tail
–打印出文件的最后 10 行。像head
一样,您可以指定要显示的行数,但是tail
还有一个非常有用的跟随选项:-f
。使用此选项时,终端会在文件更新时连续打印文件的底部行。这在查看日志文件时特别有用。
外壳命令的键盘提示
在我们结束本节之前,这里有一些每个 CLI shell 用户都应该知道的有用的键盘技巧。注:ctl
指键盘上的控制键。
ctl+r
:Bash 中的“reverse-i-search”或者 Zsh 中的“bck-i-search”。这个热键选项将允许您键入部分命令并重新执行它们,而无需完全重新键入它们。这对于有很多选项的非常复杂的命令来说非常方便。
ctl+c
:结束当前正在执行的事情。如果你想停止或放弃某个动作,这个键盘组合是你最好的朋友。
The up arrow
:按向上箭头🔼使用上一个命令填充命令提示符。再往上推,它会在你的整个历史中循环。这样可以节省很多打字的时间。
键入命令、文件名或目录路径的一部分后,按 tab 键将告诉 shell 尝试自动完成您正在键入的内容。假设您有一个包含index.html
的文件夹。你可以键入in
并按下tab
键,而不是键入index.html
。系统假设您想用index.html
自动完成该行并填充它。GitKraken Client 实际上提供了相同的功能,并在您键入时自动建议自动完成选项!
键入命令、文件名或目录路径的一部分后,按 tab 键将告诉 shell 尝试自动完成您正在键入的内容。假设您有一个包含index.html
的文件夹。你可以键入in
并按下tab
键,而不是键入index.html
。系统假设您想用index.html
自动完成该行并填充它。GitKraken Client 实际上提供了相同的功能,并在您键入时自动建议自动完成选项!
掌握命令行需要练习
干得好,走了这么远!您正在成为一名命令行向导!但是掌握这项技能,就像生活中的许多事情一样,需要的不仅仅是阅读理论和尝试一两次命令。这需要练习和坚持。但是不要害怕——没有帮助你不需要这样做!GitKraken CLI 是深入终端的一种令人惊叹的方式,这要归功于自动完成的建议,它可以帮助您探索 shell 命令和选项。
在下一节中,我们将深入研究可以通过 CLI 使用的工具,包括 Git,以及如何获取和安装更多工具!
一个简单的 Shell 命令列表
GitKraken 客户端旨在帮助开发人员专注于重要的事情,而不是记住命令参数和用法。它是管理您的 Git 项目的最佳工具,并释放了命令行的全部力量!
$ cat filename
–将文件内容连接到屏幕上。基本上,这将为您打印出文件内容。有些命令的名字比其他命令更奇怪。
$ head
–在终端窗口打印出一个文件的前 10 行。您可以通过使用-n
命令后跟您想要查看的行数来指定您想要打印的行数。例如head -n 50 file.txt
会将 file.txt 的前 50 行打印到屏幕上。
$ tail
–打印出文件的最后 10 行。像head
一样,您可以指定要显示的行数,但是tail
还有一个非常有用的跟随选项:-f
。使用此选项时,终端会在文件更新时连续打印文件的底部行。这在查看日志文件时特别有用。
$ tail
– Print out the last 10 lines of a file. Like head
, you can specify the number of lines to show, but tail
also has a very useful follow option: -f
. When this option is in use, the terminal will continually print the bottom lines of a file as it’s updated. This is exceptionally helpful when watching log files.
外壳命令的键盘提示
在我们结束本节之前,这里有一些每个 CLI shell 用户都应该知道的有用的键盘技巧。注:ctl
指键盘上的控制键。
ctl+r
:Bash 中的“reverse-i-search”或者 Zsh 中的“bck-i-search”。这个热键选项将允许您键入部分命令并重新执行它们,而无需完全重新键入它们。这对于有很多选项的非常复杂的命令来说非常方便。
ctl+c
:结束当前正在执行的事情。如果你想停止或放弃某个动作,这个键盘组合是你最好的朋友。
The up arrow
:按向上箭头🔼使用上一个命令填充命令提示符。再往上推,它会在你的整个历史中循环。这样可以节省很多打字的时间。
键入命令、文件名或目录路径的一部分后,按 tab 键将告诉 shell 尝试自动完成您正在键入的内容。假设您有一个包含index.html
的文件夹。你可以键入in
并按下tab
键,而不是键入index.html
。系统假设您想用index.html
自动完成该行并填充它。GitKraken Client 实际上提供了相同的功能,并在您键入时自动建议自动完成选项!
tab
: Pressing the tab key after typing part of a command, filename, or directory path will tell the shell to attempt to autocomplete what you’re typing. Imagine you have a folder containing index.html
. Instead of typing out index.html
you could type in
and hit the tab
key. The system assumes you want to autocomplete the line with index.html
and fills it in. GitKraken Client actually offers the same functionality as well as automatically suggesting the autocomplete options as you type!
掌握命令行需要练习
干得好,走了这么远!您正在成为一名命令行向导!但是掌握这项技能,就像生活中的许多事情一样,需要的不仅仅是阅读理论和尝试一两次命令。这需要练习和坚持。但是不要害怕——没有帮助你不需要这样做!GitKraken CLI 是深入终端的一种令人惊叹的方式,这要归功于自动完成的建议,它可以帮助您探索 shell 命令和选项。
在下一节中,我们将深入研究可以通过 CLI 使用的工具,包括 Git,以及如何获取和安装更多工具!
In the next section, we will dive into tools you can use through the CLI, including Git, and how to get and install many more!
GitKraken 客户端旨在帮助开发人员专注于重要的事情,而不是记住命令参数和用法。它是管理您的 Git 项目的最佳工具,并释放了命令行的全部力量!
Shell 脚本 CLI 简介第 5 部分
在 CLI 介绍系列的前几篇文章中,我们已经讨论了为什么要掌握使用命令行、一些命令行基础知识和工具,以及定制 CLI shell 的技巧。如果您错过了任何内容,请随时使用以下链接进行补充:
第 1 部分:CLI 的作用和原因第 2 部分:Shell 命令介绍 第 3 部分:命令行工具 第 4 部分:定制您的 CLI Shell
现在,您将学习 shell 脚本的基础知识,以自动化复杂的工作并构建全新的应用程序!
如果您足够高级,能够编写 shell 脚本,您可能不认为您需要 Git 客户机。虽然这可能是真的,但有了它,生活会变得更好,尤其是有内置终端的手机。🤯
Shell 脚本–自动化和构建新应用
当你看一部电影或一个流媒体系列时,你真正看到的是一个演员和工作人员在执行一个剧本。该脚本从上到下从左到右阅读,直到他们到达结尾。类似地,计算机已经变得非常擅长阅读脚本并完全按照它们说的去做。
这些脚本可以很长,做的事情比如通过管理 Docker 提供本地开发环境,就像 Docksal 的情况一样,这些脚本也可以很简单,比如“ hello world ”。
在本文中,我们将讨论一些与 shell 脚本相关的主题以及一些您可以运行的特定 shell 脚本。
Hello World 脚本
要编写一个 hello world 脚本,完成以下步骤:
1 .在文本编辑器中打开一个名为hello-world.sh
的新文件。
2.在新文件中键入以下内容:
`#!/bin/bash
# This script prints Hello World to the screen
echo "Hello World"`
3.保存文件。
4。在与hello-world.sh
相同的目录中,从终端运行以下命令:
$ chmod 755 hello-world.sh:
5.接下来,运行命令:
$ ./hello-world.sh
6.你现在应该看到Hello World
打印在屏幕上。
6.你现在应该看到Hello World
打印在屏幕上。
恭喜你!您刚刚从头开始编写并执行了您的第一个 shell 脚本!这是成为一名经验丰富的开发人员的一大步!
尽管 hello world 脚本很简单,但这里有很多东西需要解开。真正令人惊讶的消息是,所有的 shell 脚本本质上都以相同的方式工作,因此理解hello-world.sh
和 CLI shell 基础意味着您将能够阅读几乎任何脚本。
尽管 hello world 脚本很简单,但这里有很多东西需要解开。真正令人惊讶的消息是,所有的 shell 脚本本质上都以相同的方式工作,因此理解hello-world.sh
和 CLI shell 基础意味着您将能够阅读几乎任何脚本。
用 Shebang 调用 Shell 解释器
让我们从hello-world.sh
:
#!/bin/bash
的第一行开始,那第一部分,#!
被称为射棒。shebang 告诉操作系统接下来应该调用的程序是读取和执行文件的其余内容。这个程序被称为脚本解释器。在这种情况下,它调用位于/bin
文件夹中的bash
。bin
代表二进制。
你的/bin
文件夹里有很多文件。您可以通过运行以下命令来查看计算机上该文件夹的所有内容:
$ ls /bin
在您的/bin
文件夹中,除了bash
和zsh
之外,您可能还会识别出一些您的操作系统可以执行的文件,比如date
、cp
、ls
和mv
等等。这是这些命令的可执行二进制文件在系统中的位置。
当您运行以#!/bin/bash
开头的 shell 脚本时,您实际上是在告诉计算机打开一个非交互式、非登录的 shell 来运行文件中的命令。
即使它是非交互式的,计算机仍然可以访问您执行 shell 脚本的终端,并且能够接受输入和打印运行它的会话的输出。这可能有点令人困惑,所以如果你想深入了解,这里有一个关于非交互式 shell 和 shell 脚本的更加详细的解释。出于本文的目的,我们需要知道的是,在第一行之后,一切都只是 CLI shell 命令和一些 Bash 脚本语法。
Bash 脚本与 Zsh 脚本
您可能会问自己,为什么对 shell 使用 Zsh,对 shell 脚本语言使用 Bash。非常简单的答案是,Bash 更像是一个脚本工具,所以编写 Bash 脚本意味着您的代码将在更多的机器上工作。
无论你是在 Fedora、Ubuntu、macOS、FreeBSD 还是任何其他NIX 操作系统上,hello world 脚本都会以同样的方式运行。您可以放心地在几乎任何nix 服务器或您可以访问的远程系统上使用 Bash 脚本。这是一种将命令行工具捆绑在一起的通用语言。Zsh 是一个令人惊叹的交互式 CLI shell,但它并没有被普遍采用。
即使它是非交互式的,计算机仍然可以访问您执行 shell 脚本的终端,并且能够接受输入和打印运行它的会话的输出。这可能有点令人困惑,所以如果你想深入了解,这里有一个关于非交互式 shell 和 shell 脚本的更加详细的解释。出于本文的目的,我们需要知道的是,在第一行之后,一切都只是 CLI shell 命令和一些 Bash 脚本语法。
GitKraken 客户端配备了 GUI 和 CLI,为所有操作系统的高级开发人员提供了最佳体验。⬇️自己试试
其他 Shell 脚本选项
如果您已经精通另一种语言,如 Perl、Python、Ruby,甚至 PHP,您完全可以使用它们来解释和运行您的 shell 脚本。您可以自由地告诉您的计算机使用任何已安装的程序来尝试评估文件的内容。
举个例子,用 Python3 评估一个文件,你需要做的就是在你的 Python 脚本顶端加上这一行:
#!/usr/bin/python3
你的 hello world 脚本的第二行是:
# This script prints Hello World to the screen
在 Bash 脚本中,#
字符表示同一行中该符号之后的所有内容都是 shell 脚本注释,在执行脚本时应该忽略。您会注意到,当您运行hello-world.sh
时,shell 脚本注释不会打印到屏幕上。
代码中添加的 Shell 脚本注释被称为行内注释。它们对于解释一段代码是如何工作的或者预期的结果是什么非常有帮助。Shell 脚本注释是一种方便的方式,可以向以后将处理相同代码的任何其他开发人员解释您的工作。
外壳脚本回显
hello world 脚本的第三行也是最后一行是:
echo "Hello World"
shell 脚本 echo 告诉计算机将随后出现的内容打印到标准输出,默认情况下是终端屏幕。echo 命令也可以在 shell 脚本之外工作。如果您现在尝试将该行脚本作为命令粘贴到您的终端中,您应该会看到:
重定向外壳输出
默认情况下,命令执行的输出会打印到终端屏幕上。这就是“标准输出”。在 CLI 系列介绍的第 3 部分中,我们回顾了重定向相同的输出,特别是在使用管道操作符|
时。
例如,如果您运行$ ls -a | grep .git
,那么ls -a
命令的输出将被传送到grep
的输入中,并且只搜索该输入或匹配模式.git
。
外壳脚本回显
重定向输出的另一种方法是使用重定向操作符>
和>>
。这些运算符最常用于将命令的输出传输到文件中。
T5>
覆盖任何文件内容。例如,如果您运行:
$ echo "Hello" > hello.txt
…您将得到一个新文件,其中只有“Hello”一行。
然后,如果您要运行以下命令:
$ echo "World" > hello.txt
….该文件将包含单行“World ”,覆盖了该文件以前的内容。小心这个操作员!
默认情况下,命令执行的输出会打印到终端屏幕上。这就是“标准输出”。在 CLI 系列介绍的第 3 部分中,我们回顾了重定向相同的输出,特别是在使用管道操作符|
时。
例如,如果您运行$ ls -a | grep .git
,那么ls -a
命令的输出将被传送到grep
的输入中,并且只搜索该输入或匹配模式.git
。
>>
操作符将命令的输出附加到现有内容下的文件中。以
为例,继续上一个例子,如果你要运行:
$ echo 'Hello World' >> hello.txt
…当您查看内容时,应该会看到两行:第一行是“World”,第二行是“Hello World”。
重定向输出的另一种方法是使用重定向操作符>
和>>
。这些运算符最常用于将命令的输出传输到文件中。
T5>
覆盖任何文件内容。例如,如果您运行:
$ echo "Hello" > hello.txt
…您将得到一个新文件,其中只有“Hello”一行。
然后,如果您要运行以下命令:
重定向操作符的一个非常常见的用途是为应用程序创建和更新日志文件。当您开始调试自己的应用程序时,特别是当它们的规模和复杂性增加时,将脚本输出重定向到一个您可以搜索和查看的文件中是非常有帮助的。
sh 文件扩展名
既然您已经查看了 hello world 脚本示例的内部,那么让我们后退一步,查看文件本身以及它是如何执行的。
文件扩展名.sh
代表“shell 脚本”,实际上只是为了便于阅读。对于 shell 来说,sh 文件扩展名只是一个文本文件。因为操作系统从第一行开始读取以确定如何解释文件内容,所以文件的实际名称对机器来说并不重要,但是当您使用文件扩展名时,将文件的性质传达给其他开发人员甚至您自己会容易得多。
让我们通过将hello-world.sh
重命名为hello-world
来快速测试一下,并尝试以与之前相同的方式再次运行它。
…当您查看内容时,应该会看到两行:第一行是“World”,第二行是“Hello World”。
…when you look at the contents, you should see two lines: the first being “World”, and the second being “Hello World”.
运行外壳脚本的权限
创建并保存hello-world.sh
后的下一步是运行这个看起来很奇怪的命令:
chmod 755 hello-world.sh
sh 文件扩展名
了解 Shell 中的文件系统权限
文件系统中的每个文件都有权限设置,也称为模式,允许三类不同的潜在用户读取、写入或执行文件。潜在用户的类别有:
1.用户-文件所有者
2。group–一组指定的用户,他们在机器
3 上共享相同的文件权限。其他——上述两个类别之外的任何人
1.用户-文件所有者
2。group–一组指定的用户,他们在机器
3 上共享相同的文件权限。其他——上述两个类别之外的任何人
ls
命令允许您查看文件和目录的详细信息。ls -l
实际上向我们展示了谁拥有什么权限。
运行外壳脚本的权限
创建并保存hello-world.sh
后的下一步是运行这个看起来很奇怪的命令:
与 hello world 脚本相关联的行是:
-rwxr-xr-x 1 dwaynemcdaniel staff 79 Feb 4 09:46 hello-world
让我们快速分解一下上面所说的内容。
第一列:-rwxr-xr-x
说明你的文件权限。第一个字符告诉你这是一个文件-
还是一个目录d
。
接下来的三个字符:rwx
告诉你文件所有者可以读、写、执行文件。
中间三个字符:r-x
表示一个组中指定的任意用户的权限。在这种情况下,组中的任何人都可以读取或执行该文件,但不能写入。组起源于 Unix 系统,它涉及所有用户共享同一个物理机器。
第一列中的最后三个字符:r-x
表示任何其他用户或代理的权限,比如 Bash 同样,在这种情况下,他们可以读取或执行文件,但不能写入文件。这一行的其余部分告诉您:
–第 2 列:从系统的其他地方到该文件有多少个链接
–第 3 列:文件所有者的名称
–第 4 列:哪个组拥有该文件
–第 5 列:以字节为单位的文件大小
–第 6 列:文件的最后修改日期
–第 7 列:文件或目录名
1.用户-文件所有者
2。group–一组指定的用户,他们在机器
3 上共享相同的文件权限。其他——上述两个类别之外的任何人
更改文件访问以运行 Shell 脚本
chmod
让我们重新分配每个文件夹或目录的权限,影响读取、写入或执行(可能时)文件或文件夹的能力。
运行hello-world.sh
的指令中使用的755
告诉计算机为用户、组和其他人设置权限,遵循一个非常简洁的数学符号。
可能的文件权限有:
–0 =无权限
–1 =仅执行
–2 =仅写入
–3 =写入并执行(1+2 = 3)
–4 =只读
–5 =读取并执行(1+4 = 5)
–6 =读取并写入(2+4 = 6)
–7 =读取并执行(1 + 2 + 4 = 7)
与 hello world 脚本相关联的行是:
用chmod
设置文件访问模式还有其他多种方式,但是编号系统容易记忆,非常方便。755
通常被认为是本地运行的安全选择,因为它为 Bash 和任何其他用户提供了一种读取和执行 shell 脚本的方法,而无需修改它正在读取的文件。
第一列中的最后三个字符:r-x
表示任何其他用户或代理的权限,比如 Bash 同样,在这种情况下,他们可以读取或执行文件,但不能写入文件。这一行的其余部分告诉您:
评估文件以运行 Shell 脚本
运行$ ./hello-world.sh
实际上是执行 shell 脚本。第一部分:./
,告诉操作系统评估路径末尾的文件。
.
指的是 shell 当前工作的目录。当操作系统评估一个文件时,它读取第一行并寻找 shebang,#!
,以便打开一个新的非交互式 shell 来执行它在下面指定路径的末尾找到的任何命令。在这种情况下,/bin/bash
,这一点我们已经在上面介绍过了。
你可能想知道为什么不能像调用其他命令如ls
、mv
或bash
一样直接调用命令hello-world.sh
。嗯,您可以通过将您的 shell 脚本添加到$PATH
的一个文件夹中来实现这一点。
路径环境变量
path 环境变量或$PATH
很重要,因为 shell 使用它来跟踪包含可执行文件的目录列表。当您键入类似于ls
的命令时,shell 会在$PATH
中列出的默认文件夹列表中进行搜索,直到找到一个名为ls
的可执行文件,然后执行该文件。这是您的 CLI shell 运行所有命令的方式,除了您告诉它特别评估的文件,就像您对脚本示例所做的那样。
要查看当前存储在您计算机上的$PATH
中的内容,您可以运行以下命令:
echo $PATH
如果您使用的是 macOS,默认情况下,您的路径可能会是这样的:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
$PATH 存储为冒号分隔的列表,这意味着每个条目由一个:
分隔。这些是操作系统检查的默认目录:
–/usr/local/bin
–/usr/bin
–/bin
–/usr/sbin
–/sbin
你可能想知道为什么不能像调用其他命令如ls
、mv
或bash
一样直接调用命令hello-world.sh
。嗯,您可以通过将您的 shell 脚本添加到$PATH
的一个文件夹中来实现这一点。
花点时间看看每个文件夹里都有什么。了解哪些命令是可用的总是一个好主意,即使您不经常运行一些命令。
路径环境变量
终端的环境变量
我们刚刚讨论了 path 环境变量(或$PATH
)。作为一个环境变量意味着 shell 脚本存储了一个值,该值可以被整个操作系统环境中的任何进程访问。
$Path
只是众多环境变量中的一个。例如,另一个是$HOME
,尽管在本系列中我们通过它的自动特殊别名(代字号~
)来介绍它,作为导航文件系统的一部分。
如果你在你的 CLI shell 中运行$ echo $HOME
,你会看到它指向什么目录。最好不要修改$HOME
。另一方面,T5 经常被修改。
要向$PATH
添加一个新目录,您需要向您的.zshrc
文件夹中添加一行,如下所示:
export PATH=path/to/directory:$PATH
export
命令使环境变量对外壳和外壳产生的任何进程可用。该命令的其余部分将$PATH
设置为您新指定的目录加上$PATH 的现有内容。
您安装的一些程序会让您添加一行代码,将路径导出到您的.zshrc
,这又会在每次加载 shell 时更新$PATH
。例如,像 PHP、Python3、Mamp、NodeJS 和 npm 这样的工具会自动添加或者要求您添加特定的行到您的.zshrc
文件中,作为它们安装过程的一部分。
$PATH 存储为冒号分隔的列表,这意味着每个条目由一个:
分隔。这些是操作系统检查的默认目录:
从文件系统中的任何地方运行 Shell 脚本
为了将hello-world.sh
作为命令执行,无论你的 PWD 是什么,你有三种选择:
1.将文件的目录添加到$PATH
2。将文件移动到已经在$PATH
3 中的系统目录中。结合其他选项,新建一个文件夹,把可执行文件移到那里,添加到$PATH
1.将文件的目录添加到$PATH
2。将文件移动到已经在$PATH
3 中的系统目录中。结合其他选项,新建一个文件夹,把可执行文件移到那里,添加到$PATH
所有这三种方法产生了相同的最终结果:你将能够从任何地方调用hello-world.sh
。
因为经常重用一个 shell 脚本将需要处理$PATH
,所以许多开发人员选择在这一点上放弃.sh
,就像我们在前面的例子中所做的那样。
以下是将脚本重命名为hello-world
后,任何选项的结果:
外壳脚本逻辑
现在,您已经创建了一个简单的 shell 脚本,更改了权限,并执行了 shell 脚本。下一步是理解如何向脚本添加编程逻辑。简单的 shell 脚本只是执行一个又一个命令,并在完成后停止。然而,一个好的 CLI shell 脚本的真正威力来自于这样一个事实,即您可以添加逻辑,以便只在某些情况下多次运行命令,甚至等待用户输入继续运行。
虽然这不是一个详尽的列表,也不意味着是一个完整的教程,但让我们快速介绍一些最常见和最有用的脚本逻辑操作。
从文件系统中的任何地方运行 Shell 脚本
用一个工具来执行命令,这个工具为常见的动作提供了自动建议和自动完成…这才是逻辑。
外壳脚本变量
要创建一个变量(即保存赋值的已定义实体),只需将其声明为等于一个值:
VARIABLE1=1
要在 shell 脚本中使用一个变量,您需要在前面添加一个$
来标记它为一个在命令执行中读取的变量。
echo $VARIABLE1
虽然不是必需的,但是 shell 脚本变量的一个常见的最佳实践是用大写字母命名它们。一些开发人员认为这使得阅读脚本和理解正在发生的事情变得更加容易。
虽然不是必需的,但是 shell 脚本变量的一个常见的最佳实践是用大写字母命名它们。一些开发人员认为这使得阅读脚本和理解正在发生的事情变得更加容易。
Shell 脚本中的 If Else 语句
shell 脚本中的 if/else 语句使用以下过程:
测试一个条件,看它是否为真,如果为真,执行某些命令,否则,执行其他操作:
if [[ true ]]; then
command
else
command
fi
Shell 脚本 While 循环
shell 脚本中的 while 循环使用以下过程:
测试某个条件是否为真,如果为真,则重新执行命令,否则,停止并转到脚本的下一部分:
```
while [[ true ]]; do
command
done
循环的外壳脚本
shell 脚本中的 for 循环使用以下过程:
评估变量或文件,并重复运行某些命令,直到满足定义的条件或到达列表的末尾。
为 loop 编写 shell 脚本最常见的两种语法是:
1。定义变量`i`,每次执行列表时,将`i`的值增加 1。如果`i`等于或大于 10 则停止:
for (( i=0; i<10; i++)
do
Commands
done
2。对列表中的每个值运行一次命令,当没有值时停止。您可以引用命令中的值:
for value in list
do
commands
done
虽然不是必需的,但是 shell 脚本变量的一个常见的最佳实践是用大写字母命名它们。一些开发人员认为这使得阅读脚本和理解正在发生的事情变得更加容易。
接收用户输入的 Shell 脚本
接受用户输入的 shell 脚本的工作方式如下:
## `read`命令将在继续之前等待 shell 用户的输入,并将输入保存到一个变量中。
`read VARIABLE`
高级 Shell 脚本示例
尽管 hello world 脚本示例相当不错,但让我们来看看一个更复杂的高级 shell 脚本示例,它采用了我们刚刚介绍的逻辑。每一步都将通过行内注释来解释。虽然您可以复制/粘贴整个示例,但我们鼓励您实际输入它以获得一些肌肉记忆。
#!/bin/bash
Clear the screen when this script runs
clear `
`# Ask for the user name and await user input, store the input in NAME
echo "What is your first name" && read NAME`
# Print NAME to screen in a greeting echo "Hi $NAME" echo ""
#Create a list of things to like or dislike LIKELIST='dogs cats movies books'
# Loop through each value on the list that just was created for LIKE in $LIKELIST do # Ask the user if they like the current value from the list and store the answer in LIKEANSWER echo "Do you like $LIKE? (Answer only y or n)" && read LIKEANSWER
# If they reply with a lower case 'y', print a positive reply if [[ $LIKEANSWER == 'y' ]]; then echo "Awesome! I like $LIKE too!" echo "" # Echoing "" prints a new line to the screen.
`echo "That's OK. I understand not everyone is a $LIKE person "
echo ""`
fi
done
`# Tell the user thank you
echo "Thanks for running this script!"
echo ""```
在保存文件、运行chmod 755
并执行脚本之后,您应该会看到如下内容:
read
命令将在继续之前等待 shell 用户的输入,并将输入保存到一个变量中。
read VARIABLE
上面的例子使用了本系列中没有介绍的一些语法和命令,旨在鼓励您更多地探索 shell 脚本。有许多很棒的指南和大量的文档可用——只需在网上搜索一下!
Git 挂钩是 Shell 脚本
在您的存储库的.git
文件夹中有一个名为hooks
的目录。默认情况下,该文件夹包含 13 个文件名为commit-msg.sample
、pre-push.sample
、pre-rebase.sample
的文件。
#!/bin/bash
# Clear the screen when this script runs
clear `
`# Ask for the user name and await user input, store the input in NAME
echo "What is your first name" && read NAME`
所有这些文件都是对应于 Git 工作流中特定事件的 shell 脚本。要允许 Git 在相关触发发生时运行这些 shell 脚本,只需从文件名中删除`.sample`。Git 专门寻找没有扩展名的文件。
这些文件中有各种各样的例子来帮助你更好地利用 Git,你可以编写自己的 shell 脚本来自动化任何事情。
为了好玩,试着在`commit-msg`钩子上添加下面一行:
`curl -s [https://icanhazdadjoke.com](https://icanhazdadjoke.com) && echo ""`
`#Create a list of things to like or dislike
LIKELIST='dogs cats movies books'`
`# Loop through each value on the list that just was created
for LIKE in $LIKELIST
do
# Ask the user if they like the current value from the list and store the answer in LIKEANSWER
echo "Do you like $LIKE? (Answer only y or n)" && read LIKEANSWER`
虽然可能不是最专业的例子,但您现在知道如何向 Git 挂钩添加逻辑了!爱德华·汤普森从他的工具 git-dad 中获得的灵感[归功于](https://github.com/ethomson/git-dad)[。](https://www.gitkraken.com/gitkon/history-of-git)
`echo "That's OK. I understand not everyone is a $LIKE person "
echo ""`
GitKraken 客户端支持各种各样的钩子操作,比如提交、重置、推送等等,使得设置 Git 钩子变得轻而易举,甚至对于脚本初学者也是如此。
`done`
CI/CD 管道依赖于 Shell 脚本
作为现代开发人员,您需要 shell 脚本技能的一个更实际的原因是因为它们在 CI/CD 管道中的使用。从简化的角度来看,CI/CD 服务只是在远程服务器上运行 shell 脚本来引发操作。当然,还有许多附加功能,如内置于 CI/CD 平台的秘密管理和应用程序监控,如 [CircleCI](https://circleci.com/) 、 [GitHub Actions](https://github.blog/2022-02-02-build-ci-cd-pipeline-github-actions-four-steps/) 和 [GitLab](https://docs.gitlab.com/ee/ci/) ,但在本质上,它们只是执行脚本。
例如,下面是 GitLab 的 [Bash 工作流模板的一部分:](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Bash.gitlab-ci.yml)
before_script: - echo "Before script section"
- echo "For example you might run an update here or install a build dependency" - echo "Or perhaps you might print out some debugging details"after_script: - echo "After script section"
虽然您可能没有使用 Bash 作为实际的 shell 脚本语言,但是一旦您了解了一种脚本语言的工作原理,您就基本上理解了所有脚本语言的工作原理,尽管语法会有所不同。
每一个 CI/CD 平台的细节都需要花时间去深入学习,但是拥有基本的 shell 脚本知识意味着您可以走得更远、更快。
每一个 CI/CD 平台的细节都需要花时间去深入学习,但是拥有基本的 shell 脚本知识意味着您可以走得更远、更快。
考虑为开源做贡献
在我们结束 CLI 系列介绍之前,我想最后鼓励大家分享您的工作,并考虑为开源做出贡献。本系列中的所有内容都来自于研究开源工具的文档和阅读许多代码示例。
所有的开发人员都站在巨人的肩膀上,大多数时候不知道你的共享代码的哪一部分可能会对其他人有所帮助。
但是,注意不要在公共存储库中共享密码和配置信息,但是如果您编写了一个简洁的脚本来解决特定的问题,可以考虑在公共存储库中共享它,并在自述文件中写下它是如何帮助您的。
Shell 脚本资源
有许多资源可以用来学习更多关于 shell 脚本的知识。以下是四点建议:
已经踏上探索和学习之旅的开发人员社区也是一个惊人的资源;我们都曾经是个彻头彻尾的菜鸟。永远不要害怕寻求帮助。
感谢您了解 CLI 的含义。无论你是谁,如果你使用计算机,学习使用命令行界面是变革性的。没什么好害怕的,学习这些工具的好处远远超过了成本。GitKraken 的一套 Git 工具旨在帮助开发人员加速学习之旅。 GitKraken CLI 的自动完成建议将帮助你浏览文件系统,并像专业人士一样使用 Git。GitLens 将帮助你更好地与其他开发者合作,让每一行的作者和提交历史更加清晰。我们邀请您下载并安装这两者,以便在您的旅程中充分利用 CLI shell!
`before_script:
- echo "Before script section"`
`- echo "For example you might run an update here or install a build dependency"
- echo "Or perhaps you might print out some debugging details"after_script:
- echo "After script section"`
虽然您可能没有使用 Bash 作为实际的 shell 脚本语言,但是一旦您了解了一种脚本语言的工作原理,您就基本上理解了所有脚本语言的工作原理,尽管语法会有所不同。
每一个 CI/CD 平台的细节都需要花时间去深入学习,但是拥有基本的 shell 脚本知识意味着您可以走得更远、更快。
The ins and outs of every CI/CD platform takes time to learn deeply, but having basic shell scripting knowledge means you can get a lot further, a lot faster.
考虑为开源做贡献
## 在我们结束 CLI 系列介绍之前,我想最后鼓励大家分享您的工作,并考虑为开源做出贡献。本系列中的所有内容都来自于研究开源工具的文档和阅读许多代码示例。
所有的开发人员都站在巨人的肩膀上,大多数时候不知道你的共享代码的哪一部分可能会对其他人有所帮助。
但是,注意不要在公共存储库中共享密码和配置信息,但是如果您编写了一个简洁的脚本来解决特定的问题,可以考虑在公共存储库中共享它,并在自述文件中写下它是如何帮助您的。
Shell 脚本资源
有许多资源可以用来学习更多关于 shell 脚本的知识。以下是四点建议:
## [Codecademy 的 Bash/Shell 课程](https://www.codecademy.com/catalog/language/bash)
[巴什学院](https://guide.bash.academy/)
1. [Ryans 教程–Bash 脚本教程](https://ryanstutorials.net/bash-scripting-tutorial/)
2. [LinuxHint 的 30 个 Bash 脚本示例](https://linuxhint.com/30_bash_script_examples/)
3. [Ryans Tutorials – Bash Scripting Tutorial](https://ryanstutorials.net/bash-scripting-tutorial/)
4. 已经踏上探索和学习之旅的开发人员社区也是一个惊人的资源;我们都曾经是个彻头彻尾的菜鸟。永远不要害怕寻求帮助。
感谢您了解 CLI 的含义。无论你是谁,如果你使用计算机,学习使用命令行界面是变革性的。没什么好害怕的,学习这些工具的好处远远超过了成本。GitKraken 的一套 [Git 工具](https://www.gitkraken.com/)旨在帮助开发人员加速学习之旅。 [GitKraken CLI](https://www.gitkraken.com/cli) 的自动完成建议将帮助你浏览文件系统,并像专业人士一样使用 Git。GitLens 将帮助你更好地与其他开发者合作,让每一行的作者和提交历史更加清晰。我们邀请您下载并安装这两者,以便在您的旅程中充分利用 CLI shell!
The community of developers who have been on this journey of discovery and learning is an amazing resource as well; we’ve all been a complete noob at one point. Never be afraid to ask for help.
Thank you for learning what the CLI stands for. No matter who you are, if you use a computer, learning to use the CLI shell is transformative. There is nothing to fear and the benefits of learning these tools far and away outweigh the costs.
GitKraken’s set of [Git tools](https://www.gitkraken.com/) are designed to help speed developers on your learning journey. The [GitKraken CLI](https://www.gitkraken.com/cli)‘s autocomplete suggestions will help you navigate the file system and use Git like a pro in no time. [GitLens](https://www.gitkraken.com/gitlens) will help you collaborate better with other developers by making each line’s authorship and commit history more clear. We invite you to download and install both to make the best use of the CLI shell on your journey!
# 利用吉拉和 Slack |开发人员指南最大限度地提高工作效率
> 原文:<https://www.gitkraken.com/jira-integrations/slack>
优秀的开发人员能够找到有助于简化他们工作的工具。优秀的开发人员集成他们的工具来简化他们的工作流程。吉拉和 Slack 是许多开发者技术堆栈中的两个流行工具。
在本文中,我们将介绍如何集成吉拉和 Slack,以及集成带来的好处。
## 整合吉拉和 Slack 的好处
以下是连接吉拉和 Slack 的一些好处:
* 提高沟通效率:通过提供实时通知和允许在 Slack 中进行协作来改善团队沟通。通过避免在吉拉和 Slack 之间来回切换,这节省了开发人员的时间。
* 实时通知:提供更新和更改的实时通知,以帮助开发人员保持消息灵通和响应迅速。
如何连接吉拉和 Slack
## 与吉拉和 Slack 的集成只需点击几下鼠标,以下是要遵循的步骤:
[选择此链接,将吉拉云松弛应用](https://atlassian-slack-integration.services.atlassian.com/api/slack/login?source=sac-docs)安装到您的松弛工作区。
1. 一旦提示授权吉拉延期,选择`allow`。(如果您尚未登录 Slack,您需要先登录。)
2. 您将收到来自吉拉应用程序的直接消息,提供额外配置的后续步骤以及如何使用集成的示例。
3. 您将收到来自吉拉应用程序的直接消息,提供额外配置的后续步骤以及如何使用集成的示例。
优化您的吉拉松弛集成
## 以下是一些可以改善您的集成体验的技巧:
邀请吉拉 Bot 进入通道:您可以邀请吉拉 Bot 进入通道,以便在该通道中接收特定吉拉项目的通知。为此,在 Slack 中导航至所需频道,并键入`@jira`。然后,继续指定应该向通道发送通知的项目。
* 邀请吉拉 Bot 进入通道:您可以邀请吉拉 Bot 进入通道,以便在该通道中接收特定吉拉项目的通知。为此,在 Slack 中导航至所需频道,并键入`@jira`。然后,继续指定应该向通道发送通知的项目。
[](https://www.gitkraken.com/wp-content/uploads/2023/02/image3-2.png)
配置个人通知设置:配置通知可确保您的工作组在宽限时间内收到正确的更新。要调整通知设置,请使用斜线命令`/jira notify`。
* 配置个人通知设置:配置通知可确保您的工作组在宽限时间内收到正确的更新。要调整通知设置,请使用斜线命令`/jira notify`。
[](https://www.gitkraken.com/wp-content/uploads/2023/02/image4-1.png)
邀请成员:如果您在某个频道中共享了一个吉拉链接,而该频道的成员无法查看该链接,集成将提供邀请他们(如果您有正确的权限)或向管理员发送请求的能力。
* 邀请成员:如果您在某个频道中共享了一个吉拉链接,而该频道的成员无法查看该链接,集成将提供邀请他们(如果您有正确的权限)或向管理员发送请求的能力。
集成吉拉和 Git 以增强协作
## 如果你正在全力以赴地将吉拉与你的其他开发工具集成在一起,以释放新的生产力水平,那么你会想看看吉拉的 Git 集成。这个强大的工具将您的 Git 存储库数据(如提交、分支、标记和拉请求)引入吉拉,并消除会减慢您的开发工作流的破坏性上下文切换。
顺便说一下,如果你正确地使用吉拉的 Git 集成,你可以花更多的时间写代码,而不是用你已经添加到提交消息中的东西更新吉拉。
在这篇[吉拉 Git 提示](https://www.gitkraken.com/blog/jira-git-tips)的博客文章中,了解更多关于吉拉 Git 集成如何帮助开发者节省时间,更有效地协作,轻松地让吉拉与[吉拉智能提交](https://www.gitkraken.com/jira/git-smart-commits)保持同步。
在这篇[吉拉 Git 提示](https://www.gitkraken.com/blog/jira-git-tips)的博客文章中,了解更多关于吉拉 Git 集成如何帮助开发者节省时间,更有效地协作,轻松地让吉拉与[吉拉智能提交](https://www.gitkraken.com/jira/git-smart-commits)保持同步。
让您的项目管理更上一层楼
## 只需点击几下,你就可以将吉拉连接到 Slack,帮助你的团队改善沟通,简化工作流程,并在一个地方获得实时通知。关于这个集成所提供的一切的更多信息,你可以点击这里查看完整的特性列表。
只需点击几下,你就可以将吉拉连接到 Slack,帮助你的团队改善沟通,简化工作流程,并在一个地方获得实时通知。关于这个集成所提供的一切的更多信息,你可以点击这里查看完整的特性列表。
# 堆叠拉动请求| GitKon 2022 | Tomas Reimers,Graphite
> 原文:<https://www.gitkraken.com/gitkon/stacked-pull-requests-tomas-reimers>
[https://www.youtube.com/embed/U8wJoxxmskM?feature=oembed](https://www.youtube.com/embed/U8wJoxxmskM?feature=oembed)
视频
### **保持畅通并快速发展的工作流程**
假设你是一家社交媒体公司的软件开发人员。您的公司有帖子,现在想添加评论和反应。评论是对帖子的回应,反应是对评论的回应。
## **大量拉取请求的问题**
作为一名勤奋的开发人员,您为评论特性发布了一个 [Git pull 请求](https://www.gitkraken.com/learn/git/tutorials/what-is-a-pull-request-in-git) (PR)。假设你想在你的 PR 评论里增加 2000 行左右;在这种情况下,您有几个选择。
1. 添加对评论的反应。这使得 PR 更长,甚至更不可能被审查。
2. 麻烦一个评论家接受你的公关,这样你就可以合并它,继续发展。在这种情况下,您已经中断了您的团队成员的工作流程,并请求加速评审,这导致了在低质量的评审中错误被合并的风险。
3. 你可以继续做别的事情。
因为当前的特性分支模型要求你从主分支中分支出来,所以当开发人员需要将代码合并回主项目时,他们会感到受阻。
许多开发人员不知道这里实际上有一个隐藏的选项 4:如果您不必从 main 分支会怎么样?相反,如果我们从评论分支分出并开始反应分支会怎么样?
更进一步说,您甚至需要对拉取请求进行注释吗?在大多数情况下,注释描述了一组相关的更改:一个针对数据库,一个针对服务器,一个针对客户端。如果你能把它们分解成单个的 PRs 会怎么样?
## **堆叠拉取请求**
这将产生一组较小的拉请求,其好处众所周知。根据 [GitHub Pull 请求作者指南](https://google.github.io/eng-practices/review/developer/small-cls.html),较小的 PRs 会导致:
1. 更好的评论,因为评论者不太可能沮丧和盲目盖章。
2. 更快的合并,因为审阅者将能够更快地审阅。
3. 更少的 [Git 合并冲突](https://www.gitkraken.com/learn/git/tutorials/how-to-resolve-merge-conflict-in-git),因为更少的工作意味着更少的冲突。
所有这些听起来都很理想,那么为什么堆栈式拉取请求工作流没有变得更常见呢?有几个原因:
1. Git rebases 是一场噩梦。到目前为止,最大的障碍是,如果你需要改变你分支的公关会发生什么。如果你这样做了,任何依赖的分支都需要在新的分支上重定基础,并且任何依赖于那些分支的分支本身也需要重定基础。
2. 很难跟踪依赖关系。对于作者和审阅者来说,一旦您开始管理具有三个或更多拉取请求的堆栈,就很难记住 PR 的位置。
3. 怎么一次合并很多东西?你应该如何用现代的[代码审查](https://www.gitkraken.com/blog/code-review)工具做到这一点呢?您可以合并一个,必须将 back base upstack 放在上面,然后合并下一个。
好消息是有质量开发工具[可以帮助管理堆叠的拉请求工作流。](https://www.gitkraken.com/)
管理栈的工具有很多;例如, [Graphite](https://graphite.dev/) 将自动为您处理重定基础,可视化堆栈,并为合并堆栈提供自动化。
比使用任何特定工具更重要的是开始堆叠您的更改,这样您就可以编写更小的拉式请求,获得更好的评论,并更快地发布特性。
## **获得石墨堆叠& GitKraken** 客户端
除了使用 Graphite 管理堆叠的 PRs 之外,还可以考虑将 [GitKraken 客户端](https://www.gitkraken.com/git-client)添加到您的工具带上。交互式拉式请求管理允许您在不离开应用程序的情况下查看、评论、合并和批准拉式请求。
# #144 学生开发者 Keif | GitKraken
> 原文:<https://www.gitkraken.com/keif-gallery/student-developer-keif>
# 第 144 名学生开发者 Keif
# 如何切换 Git 分支?Git 问题的解决方案
> 原文:<https://www.gitkraken.com/learn/git/problems/switch-git-branch>
当您使用 Git 存储库中的分支时,经常会出现切换到另一个分支的需求。你可能需要在另一个分支上执行工作,或者帮助队友进行代码审查。
在 Git 中,切换操作也被称为“签出”。为了使用终端切换到另一个 Git 分支,您将使用`git checkout`命令。
首先,让我们看看如何使用 checkout 命令在本地 Git 分支之间切换。
### 如何在本地 Git 分支之间切换?
首先运行`git branch`命令来查看您的本地分支列表,这样您就知道您必须使用哪个分支,以及您当前已经签出了哪个分支。
接下来,您将使用`git checkout`命令来检出或者切换到一个不同的本地分支。它应该是这样的:
```
$ git checkout <name-of-branch-you-want-to-switch-to>
```
### 如何在 Git 中签出远程分支?
按照类似的过程,您将签出远程分支,以便切换到新的分支。
参见[如何在 Git](https://www.gitkraken.com/learn/git/problems/git-checkout-remote-branch) 中签出远程分支的流程。
### 如何切换 Git 分支名称?
现在,如果你正在寻找如何改变一个 Git 分支的名称,你将会想要回顾我们的参考资料[如何重命名一个 Git 分支](https://www.gitkraken.com/learn/git/problems/rename-git-branch)。
### **如何使用 GitKraken 切换 Git 分支?**
让我们比较一下在 Git 客户端的帮助下切换 Git 分支的体验。GitKraken 提供的一个巨大而明显的好处是能够快速方便地查看您的本地和远程分支机构列表。不需要记住名字,也不需要花时间调出你的 Git 分支列表。
在 GitKraken 的左侧面板或中央图形中,您只需双击或右键单击您希望切换到的分支的名称,并从上下文菜单中选择`Checkout`。
此外,您可以使用键盘快捷键`Cmd/Ctrl + P`打开 GitKraken Fuzzy Finder,输入“checkout ”,然后输入您希望切换到的分支名称。
简化切换 Git 分支的过程并优化您的工作流程。下载适用于 Windows、Mac 和 Linux 的跨平台 [GitKraken Git GUI](https://www.gitkraken.com/git-client) 。
# 团队的 GitKraken 客户端
> 原文:<https://www.gitkraken.com/git-client/team-features>
了解回购的历史
容易恢复,樱桃采摘等
GUI +终端一体机
了解回购的历史
容易恢复,樱桃采摘等
GUI +终端一体机
# #145 生活在| GitKraken 的北海巨妖
> 原文:<https://www.gitkraken.com/keif-gallery/the-kraken-who-lived>
#145 活着的北海巨妖
# #145 The Kraken Who Lived
# 面向开发人员的 10 大企业工具
> 原文:<https://www.gitkraken.com/blog/top-10-enterprise-tools-developers>
当涉及到软件开发时,企业团队面临独特的挑战。管理更多的开发人员意味着管理更多的代码、更多的项目、更多的后勤工作……不胜枚举。
许多技术企业团队已经采用了 DevOps 策略来帮助弥合代码开发和操作之间的差距。当开发人员与系统架构师协同工作来打破孤岛时,会对组织的生产力和文化产生难以置信的影响。但是真正采用 DevOps 需要重大的改变,包括发展员工的思维方式,引入合适的工具,以及教授你的团队新的技能。
***在我们的 2020 年 DevOps 报告中,查看哪些开发人员工具和策略在 DevOps 生命周期的每个部分中排名。***
[**阅读报告**](https://www.gitkraken.com/resources/devops-report-2020)
那么,对于开发团队来说,最好的企业软件产品是什么?我们询问了我们的全球开发人员社区,他们依赖哪些工具来实现 DevOps 的成功,并提供了您的必备企业开发工具列表,用于自动化、配置、安全性、监控、问题跟踪、项目规划等。
我们列出的最佳企业软件工具包括:
## **十大企业开发工具**
### **1。版本控制:Git**
版本控制是一种跟踪和管理软件代码变更的方法。源代码控制管理(SCM)系统是帮助团队和开发人员跟踪他们的项目历史的工具。版本控制允许开发人员查看完整的修订历史,并在需要时恢复到项目或文件的以前版本。
Git 现在是全球开发者最广泛使用的 SCM。它的价格点(咳咳…免费)和功能性为开发者提供了比它的替代品更大的灵活性,包括 [Perforce](/blog/migrating-perforce-git) 和 [SVN](/blog/migrating-git-svn) ,它越来越受欢迎表明 Git 是未来的发展方向。
### **2。Git 托管服务**
为了在使用 Git 时保存您的项目历史,您需要为您的存储库提供一个托管服务——或者您可以在内部托管它们。
在决定使用哪种托管服务时,公司会考虑价格、存储容量、与当前工具的集成等。对于企业团队来说,在多个服务上托管他们的回购协议也并不罕见。
#### **面向企业开发团队的顶级 Git 托管服务有哪些?**
GitHub 是一个开源平台,允许用户托管、审查和管理他们的代码。
GitLab 宣传自己是一个完整的 DevOps 平台,在一个界面中提供代码托管和完整的 CI/CD 工具链。
Atlassian 产品 Bitbucket ,提供代码管理、项目规划、协作、测试和部署服务。
微软产品 Azure DevOps 提供云托管的私有 Git repos,帮助团队协作并构建更好的代码。
### **3。Git GUI(图形用户界面)**
与智能手机上的界面类似,Git GUI 将 Git 下发生的事情转化为你的眼睛和大脑可以轻松理解的界面。
***增强您的 DevOps 策略,并在您的组织中使用 GitKraken 扩展 Git。***
[**了解更多**](https://www.gitkraken.com/knowledge-center)
GitKraken Git GUI ,连续四年被评为 [#1 开发工具](/reports/top-developer-tools-2020),允许开发人员在一个漂亮的彩色图形中可视化他们 Git repos 的历史和代码更改,它将复杂的 Git 命令简化为拖放动作。
> 没有 Git GUI,企业很难在他们的开发团队中标准化和扩展 Git。
该工具不应被视为奢侈品,而是您的 DevOps 战略不可或缺的一部分。通过利用 GUI 的优势,使用 Git 的开发人员将拥有更高效的工作流程,这些工具让协作成为了一个梦想。
在 [2020 DevOps 报告](/reports/devops-report-2020#git-scm-clients)中了解更多关于 Git 客户端的采用如何成就或破坏您的战略。
特别是 GitKraken 的建造考虑到了协作。该图允许用户清楚地看到谁在处理哪些文件,以及他们何时进行了更改。每个团队成员很容易通过他们的 Gravatar 图像区分开来,协作者和他们相关的提交以独特的颜色显示在图形上。
[GitKraken Enterprise](https://www.gitkraken.com/gitkraken-enterprise) 和 GitKraken Pro 许可证取决于您团队的环境要求。 [GitKraken Pro](https://www.gitkraken.com/pricing) 如果你能接入互联网,就可以使用,而 GitKraken Enterprise 是为处于断开连接或防火墙环境中的团队设计的。GitKraken Enterprise 和 Pro 都具有强大的帐户管理功能,非常适合负责大型团队或多个部门的经理。
GitKraken 不仅可以在 Linux、Mac 和 Windows 上工作,它还可以与上一节中列出的所有我们推荐的 Git 托管服务集成: [GitHub](https://www.gitkraken.com/github) 、 [GitLab](https://www.gitkraken.com/gitlab) 、 [Bitbucket](https://www.gitkraken.com/bitbucket) 和 [Azure DevOps](https://www.gitkraken.com/azure-devops) 及其相关的企业产品。
最后,GitKraken 的 Git GUI 最好的部分之一是它对于刚接触 Git 的开发人员来说非常容易理解。引入该工具后,用于新团队成员入职的资源将显著减少。此外,GitKraken 提供了相同的用户体验,包括应用程序的 UI 和性能,跨操作系统,所有开发人员都可以协作工作,无论他们喜欢哪个操作系统。
***通过使用这些学习 Git 教程和资源,让您的团队成员快速开始使用 GitKraken。***
[**跟 GitKraken** 学 Git ](https://www.gitkraken.com/learn-git)
### **4。IDE(集成开发环境)**
ide 越来越受软件开发人员的欢迎,因为它们提供了便利。IDE 是一个软件套件,它将开发人员用来编写和测试软件的许多工具整合到一个用户界面中。
没有 IDE,开发人员必须花时间选择、配置,然后学习如何使用他们采用的每个新工具。IDE 将一切都集中在一个简单的框架和一致的用户界面下。
ide 通常包含以下基本开发工具:
1. 代码编辑器
2. 编译器或解释器
3. 调试器
ide 还可能包括:
代码库
1. 单元测试器
2. 测试平台
3. 对于企业开发团队来说,最好的 ide 是什么?
[微软的 IDE Visual Studio](https://visualstudio.microsoft.com/)连续四年被票选为 top 20 #MustHaveDevTool。
#### 其他入选 2020 年顶级开发工具名单的流行 ide 包括 [IntelliJ IDEA](https://www.jetbrains.com/idea/) 、 [PhpStorm](https://www.jetbrains.com/phpstorm/) 、 [Android Studio](https://developer.android.com/studio) 和 [PyCharm](https://www.jetbrains.com/pycharm/) 。
[了解 ide 如何融入 DevOps 生命周期的代码部分](https://www.gitkraken.com/resources/devops-report-2020#ides)。
Other popular IDEs that made the [Top Developer Tools for 2020](/reports/top-developer-tools-2020) list include [IntelliJ IDEA](https://www.jetbrains.com/idea/), [PhpStorm](https://www.jetbrains.com/phpstorm/), [Android Studio](https://developer.android.com/studio), and [PyCharm](https://www.jetbrains.com/pycharm/).
**5。问题跟踪器**
问题跟踪的概念已经存在了几十年,但任务跟踪工具的发展在最近几年意义重大。特别是,许多工具都精心添加了专门为软件开发人员和开发团队设计的特性。
### [软件开发的任务跟踪](https://www.gitkraken.com/resources/devops-report-2020#project-management)允许个人和团队记录并跟踪任务从开始到完成的过程。在团队中工作时,这些工具可以提供有价值的透明度和问责制,确保每个人在谁负责什么以及最后期限临近时都保持一致。
***今天免费报名 GitKraken 板:***
[Task tracking for software development](https://www.gitkraken.com/resources/devops-report-2020#project-management) allows individuals and teams to record and follow the progress of tasks from start to completion. When working on a team, these tools can provide valuable transparency and accountability, ensuring everyone is on the same page when it comes to who is responsible for what and when deadlines are approaching.
用于任务和问题跟踪的 Glo 板允许用户在看板板、日历视图或仪表板中可视化他们的任务。
Glo 直接与 GitHub 集成,并允许用户使用 GitHub 里程碑跟踪大项目。此外,用户可以使用 GitHub Actions 自动操作 Glo 板上的卡片。这些特性允许更少的上下文切换,并使开发人员能够从同一工具跨平台执行和跟踪任务。
Glo 还提供了时间表视图,这是由 GitKraken Timelines 提供的,该工具旨在帮助企业开发团队规划和交流项目目标和里程碑。
Glo integrates directly with GitHub and allows users to track big projects with GitHub Milestones. Furthermore, users can [automate the manipulation of cards on your Glo Board using GitHub Actions](/blog/gitkraken-glo-boards-support-github-actions). These features allow for less context switching and gives devs the ability to perform and track tasks across platforms from the same tool.
**6。自动化服务器**
软件开发团队一直在努力满足有竞争力的交付期限,并按时按预算向客户交付高质量的软件。没有花时间优化其开发运维工作流的企业团队通常会遇到挑战,因为在配置构建或将代码从试运行环境迁移到生产环境的过程中会遇到不可预见的复杂性。
### 通过引入[自动化服务器](https://dzone.com/articles/why-do-we-need-an-automation-server),可以很容易地避免这些问题,自动化服务器可以加快打包和交付软件的过程,并允许自动化和一致的配置。
当出现问题时,自动化服务器会提供快速反馈。如果提交中断了构建,开发人员或团队会收到警告(基于您设置的配置)。这不仅有助于维护有问题的构建的完整性,还可以防止团队中的其他开发人员检查出错误的提交并进一步传播问题。
*Travis CI 自动化工具*
最后,自动化服务器让您的开发人员有更多的自由在操场上测试,而不用担心影响最终交付。
*Travis CI Automation Tool*
**面向企业架构的顶级自动化服务器有哪些?**
领先的开源自动化服务器 Jenkins 提供了一组多样化的插件,用于构建、部署和自动化您的项目。
#### Travis CI 是一个持续集成服务,非常适合使用 GitHub 托管的 repos 构建和测试项目。
[Jenkins](https://jenkins.io/), the leading open source automation server, offers a diverse group of plugins for building, deploying, and automating your projects.
**7。测试框架**
测试框架对于成功的 DevOps 策略是不可或缺的,因为它们有助于为创建和设计测试用例提供高层次的指导方针;它们提供了实践和工具的组合,旨在帮助 QA 团队更有效地进行测试。
### *Jest 测试框架工具*
这些工具对企业团队很有帮助,因为它们提高了团队的测试速度,提高了准确性,减少了维护成本,并降低了出错的风险。又一个帮助你按时按预算发布软件的工具。
大多数测试框架包括:
编码标准
管理测试数据的方法
1. 对象仓库
2. 存储测试结果的过程
3. 关于如何访问外部资源的信息
4. Process for storing test results
5. 测试框架用于直接测试功能和代码,其中许多位于代码库中。因此,这些工具中的许多被指定给一种编码语言,因为每种语言可以有不同的语法、模式和范例。
**企业开发团队的顶级测试框架有哪些?**
Jest 是一个 JavaScript 测试框架,可以与 Babel、TypeScript、Node、React、Angular、Vue 等一起工作。
#### 另一方面,Selenium 用于许多语言,是 UI/自动化测试的驱动程序。
其他受欢迎的测试框架工具包括 [JUnit](https://junit.org/junit5/) 和 [PHPUnit](https://phpunit.de/) 。
[参见 2020 年开发运维报告](https://www.gitkraken.com/resources/devops-report-2020#testing)中的测试工具如何影响开发运维生命周期。
Other well-liked testing framework tools include [JUnit](https://junit.org/junit5/) and [PHPUnit](https://phpunit.de/).
**8。集装箱管理系统**
容器已经成为致力于改进其 DevOps 策略的企业团队的一大焦点,这是旨在帮助您满足交付和预算目标的另一个工具。你看到趋势了吗?😉
### 顶级企业应用开发工具之一, [containers](https://www.docker.com/resources/what-container) 帮助软件在从一个计算环境转移到另一个计算环境时更加可靠地运行。这可能是从单个开发人员的机器到测试环境,从试运行到生产,或者从数据中心的物理机器到学校的虚拟机。
当两个支持软件环境不相同时,可能会出现问题;软件并不是唯一的复杂因素。网络拓扑、安全策略和存储能力的差异也会导致问题。
容器包含整个运行时环境——应用程序及其所有依赖项、库和其他二进制文件,以及配置文件——并将所有内容方便地放在一个包中。
容器化的应用程序运行单一的操作系统,这使得它们比虚拟机更轻量级。由于它们的规模,单个服务器可以托管更多的容器,最大限度地减少企业团队需要投资的资源。容器几乎可以立即启动并运行,这使得它们有可能在最后一分钟到来并从灾难性的构建中拯救一天。
Containers take an entire runtime environment—application and all its dependencies, libraries and other binaries, and configuration files—and put everything conveniently in one package.
**企业架构的顶级容器管理工具有哪些?**
公认的容器市场之王是 [Docker](https://www.docker.com/) ,它允许团队在全球范围内安全地构建和共享应用。
#### Kubernetes ,一个起源于 Google 的开源容器管理系统,可用于部署、维护和扩展容器化的应用程序。
Docker 和 Kubernetes 被评为 [2020 DevOps 报告](https://www.gitkraken.com/resources/devops-report-2020#containers)中排名前两位的容器管理工具。
[Kubernetes](https://kubernetes.io/), an open source container management system that originated at Google, can be used for deploying, maintaining, and scaling containerized applications.
**9。配置管理工具**
配置管理是一个创建和维护产品性能一致性的过程,旨在确保所有系统资源(计算机系统、服务器和其他资产)都是已知和可信的。毕竟,系统安全是最重要的,尤其是对企业而言。
### 为了有效地满足上述目标,配置管理需要大量的自动化。这就是配置管理工具发挥作用的地方。
自动化使得团队更容易构建检查和冗余任务;它还降低了人为错误的风险,并使企业团队更好地管理大型系统。
To effectively meet the aforementioned goals, configuration management requires a significant amount of automation. Here is where configuration management tools come in to play.
**企业安全的顶级配置工具有哪些?**
Ansible 为自动化各种系统提供简单的解决方案,包括基础设施、应用、网络、容器、安全等。
#### [Chef](https://www.chef.io/configuration-management/) 支持跨 IT 流程的持续自动化,帮助企业团队更高效地工作。
[Ansible](https://www.ansible.com/) provides simple solutions for automating a variety of systems from infrastructure, applications, networks, containers, security, and more.
10。数据监控工具
收集和评估数据有助于企业团队准确规划发布时间表和实现目标。根据您有兴趣分析的数据类型,有许多数据监控工具可供选择。
### *Grafana 数据监控工具*
企业开发团队的常见数据点包括:
完成任务所需的时间
团队速度和能力
1. 项目状态和进度时间表
2. Team velocity and capacity
3. 因为企业团队希望跟踪的确切数据点可能会有很大差异,所以数据监控工具提供的一个巨大价值是将您定制的数据亮点汇总到一个仪表板中,以便产品经理可以轻松地可视化和并排评估分析。
**有哪些顶级的企业监控&报告工具?**
开源分析和监控解决方案 Grafana 为团队提供了一个分析平台,用于跟踪您想要的所有指标。无论指标存储在哪里,用户都可以对其进行查询、可视化、警报和理解。
#### Axosoft 的发布计划器专注于监控进度,以便企业团队能够按时按预算交付软件。仪表板提供了一个燃尽图来可视化开发团队的进度,显示速度的速度计,等等。
查看 2020 年 DevOps 报告中哪些工具在[分析和监控](https://www.gitkraken.com/resources/devops-report-2020#monitor)方面名列前茅。
[Axosoft’s Release Planner](https://www.axosoft.com/scrum-bug-tracking#release-confidently) focuses on monitoring progress so enterprise teams can deliver software on time and on budget. The dashboard offers a burndown chart to visualize the progress of a development team, speedometer that displays velocity, and more.
**实现您的 DevOps 企业目标**
现在,我们已经回顾了企业团队应该在他们的战略中使用的工具类型,以实现 DevOps 的成功,并提供了我们推荐的一些最流行的工具,我们希望您对实现 2020 年的软件目标更有信心。
## 如果您觉得仍然需要帮助,我们的技术实施专家将随时为您提供帮助。
Now that we’ve reviewed the types of tools enterprise teams should work into their strategy to achieve DevOps success, and provided our recommendations of some of the most popular tools, we hope you feel more confident about reaching your software goals for 2020.
And if you feel like you still need a helping hand, our technical implementation specialists are always here to assist.
# 掌握 Git 需要知道的 10 大 Git 命令
> 原文:<https://www.gitkraken.com/blog/top-10-git-commands>
今天,如果不使用 [Git](https://git-scm.com/) ,开发人员的典型工作日将是不完整的。是的,Git 已经成长为我们正常开发过程的一个重要组成部分,它极大地促进了我们与他人的合作。
一个人必须熟悉它是如何运作的,才能有效地使用它并充分利用它。如果你是 Git 新手,你能做的最糟糕的事情就是复制和粘贴你在网上找到的答案,而不知道它们是做什么的或者什么时候会用到它们。
Git 有很多命令,学习如何使用它们需要时间。然而,某些命令比其他命令使用得更频繁。在这篇博客中,我们将帮助你学习 10 个信息丰富的 [Git 命令](https://www.gitkraken.com/learn/git/commands),它们将把你的开发提升到一个全新的水平。
## 10 个最有用的 Git 命令
让我们列出 10 个关键的 Git 命令,您需要熟悉这些命令才能像专家一样管理您的 GitHub 库。
Git config
### Git 需要在使用之前进行配置。Git config 命令用于输入您希望与您的提交相关联的登录和电子邮件地址。
***#用你的名字*设置 Git**
`git config --global user.name "<Your-Full-Name>`******
*`git config --global user.name "<Your-Full-Name>`
****#用你的邮箱*设置 Git**
`git config --global user.email "<your-email-address>"`
去吧,林特克
Git init 命令用于启动一个新的存储库。结果是在当前工作目录中创建一个. git 文件夹。
### `$ git init`
一个空的。上面的命令创建了 git 存储库。考虑在您的桌面上创建一个 Git 存储库。为此,您必须在桌面上打开 Git Bash 来运行上面的命令。
名为“”的新子目录。git”将由上面的命令创建,它包含所有需要的存储库文件。Git 存储库的概要可以在。git 子目录。
Git clone
命令“git clone”用于从远程存储库下载当前源代码(例如像 [GitHub](https://github.com/) )。Git clone 本质上是在存储库中创建一个项目最新版本的精确副本,并将其存储在您的计算机上。
有几种方法可以下载源代码,但我倾向于使用 *https 克隆*方法:
`$ git clone [https://github.com/](https://github.com/)<repo-url> `
### Git clone
例如,要从 GitHub 获得一个项目,我们只需点击下载或克隆按钮,从框中复制 URL,然后粘贴到 Git clone 命令之后。通过这样做,将在您的本地工作空间中创建一个项目的副本,允许您开始使用它。
Git status
Git status 命令是理解 Git 的关键。它将让我们知道 Git 正在处理什么,以及 Git 如何感知我们的存储库的状况。
`$ git status`
当您第一次启动时,您应该总是使用 Git status 命令!在任何其他命令之后启动它是一个聪明的想法。它将帮助您学习 Git,并防止您假设文件或存储库的当前状态。
去把它给我
### 使用 Git add 命令,可以将文件从工作目录转移到临时索引。要将本地版本与远程存储库中的版本进行比较,可以使用 Git add 命令将文件中的修改保存到临时区域。在提交之前,使用 Git add 命令将新的或修改过的文件包含在临时区域中。
要添加特定文件,请使用命令:
`$ git add <file1> <file2> … <fileN>`
要添加所有文件:
`$ git add -A`
去吧,Committee
### 经常使用的可能是 Git 命令。使用此命令–保存对 Git 存储库所做更改的日志消息和提交 id。Git 提交可以将修改存储在本地存储库中。
每次修改代码时,都必须提供一条关于所做更改的提交消息。这个提交消息使其他人更容易理解所做的更改。
`$ git commit –m "<Type your commit message here>"`
Git 分支
在 Git 领域,分支是基础。通过使用分支,多个开发人员可以同时协作处理同一个项目。git branch 命令可以创建、列出甚至删除分支。
`$ git branch <branch-name>`
`$ git add -A`
您可以使用此命令在本地创建一个分支。如果您想要将新的分支推入远程存储库,请使用以下命令。
### `$ git push-u <hybrid> <section-list>`
Git checkout
我们可以使用 Git checkout 命令创建并切换到一个新的分支或者一个现有的分支。要实现这一点,您必须能够在本地系统上访问您希望切换到的分支,并且您必须在切换之前提交或隐藏对当前分支的任何修改。
以下命令也可用于签出文件。
`$ git checkout <branch-name>`
### Git branch
如果要创建并切换到新分支,请使用命令:
`$ git checkout -b <new-branch-name>`
Git merge
一旦你完成了你的分支的开发,并且一切正常,最后一步就是将分支和父分支合并。Git merge 命令用于实现这一点。
要将不同的分支合并成一个分支,可以使用 Git merge 命令。请注意,您必须首先位于要与特征分支合并的特定分支上。要将您的特性分支合并到开发分支中,您需要使用以下命令切换到开发分支:
`$ git checkout dev`
### Git checkout
然后使用以下命令更新本地 dev 分支:
`$ git fetch`
最后,使用以下命令合并它:
`$ git merge <branch-name>`
Git 推拉
提交更改后,接下来的步骤是将它们发送到远程服务器。Git push 会将您的提交更新到远程存储库中。
`$ git push`
### 要创建新品牌并上传,请使用以下命令:
`$ git push --set-upstream`
要将不同的分支合并成一个分支,可以使用 Git merge 命令。请注意,您必须首先位于要与特征分支合并的特定分支上。要将您的特性分支合并到开发分支中,您需要使用以下命令切换到开发分支:
另一方面,您可以使用 Git pull 命令从远程存储库中获取更新。当您使用这个命令时,Git fetch 和 Git merge 操作都被执行,更新本地更改并将更新上传到远程存储库。
`$ git pull`
将你的新 Git 技能付诸行动
就是这样!我们已经学习了最常用的 Git 命令来帮助您简化开发,并将您的生产力提升到一个新的水平。
Git 是一个分布式版本控制系统,是一个开源软件。它使得处理各种源代码版本更加容易。Git 现在是所有开发人员的必备工具&要完全使用它们,开发人员必须熟悉它的命令。随着您将在开发过程中继续使用这些命令,您会发现它们有更多的用途。
如果你在执行 Git 命令时遇到问题,你可以随时[雇佣印度程序员](https://www.esparkinfo.com/hire-dedicated-developers-india.html)来简化你的编码之旅。
`$ git merge <branch-name>`
Git 推拉
### 提交更改后,接下来的步骤是将它们发送到远程服务器。Git push 会将您的提交更新到远程存储库中。
`$ git push`
要创建新品牌并上传,请使用以下命令:
`$ git push --set-upstream`
To create a new brand and upload it, use the command:
另一方面,您可以使用 Git pull 命令从远程存储库中获取更新。当您使用这个命令时,Git fetch 和 Git merge 操作都被执行,更新本地更改并将更新上传到远程存储库。
`$ git pull`
将你的新 Git 技能付诸行动
就是这样!我们已经学习了最常用的 Git 命令来帮助您简化开发,并将您的生产力提升到一个新的水平。
Git 是一个分布式版本控制系统,是一个开源软件。它使得处理各种源代码版本更加容易。Git 现在是所有开发人员的必备工具&要完全使用它们,开发人员必须熟悉它的命令。随着您将在开发过程中继续使用这些命令,您会发现它们有更多的用途。
## 如果你在执行 Git 命令时遇到问题,你可以随时[雇佣印度程序员](https://www.esparkinfo.com/hire-dedicated-developers-india.html)来简化你的编码之旅。
That’s it! We have learned the most frequently used Git commands to help you ease your development and take your productivity to the next level.
Git is a distributed version control system that is open-source software. It makes handling various source code versions easier. Git is now a necessary tool for all developers & to use them in complete capacity, developers must be acquainted with its commands. As you will continue using these commands in your development process, you’ll find more use for such.
And if you face concerns about executing the Git commands, you can always[hire Indian Coders](https://www.esparkinfo.com/hire-dedicated-developers-india.html) to simplify your coding journey.**
# 2018 年 20 大开发工具
> 原文:<https://www.gitkraken.com/reports/top-developer-tools-2018>
为了开发出优秀的软件,你需要最好的开发工具——或者至少它们会让你的生活变得更容易!在 Axosoft,我们以构建像 Axosoft 这样的伟大工具而自豪,AXO soft 是一个 [Scrum 项目管理软件](https://www.axosoft.com/);GitKraken,[跨平台 Git GUI 客户端](https://www.gitkraken.com/);和 Glo 板,一个[问题和任务跟踪系统](https://globoards.com/)。我们喜欢在内部使用许多其他优秀的工具,但是我们想知道哪些开发工具在行业中使用得最广泛。
因此,为了找到答案,我们要求我们的社区使用 [#MustHaveDevTools](https://twitter.com/search?src=typd&q=%23MustHaveDevTools) 发布他们的 5 大开发工具。有超过 1000 条推文——是去年的两倍!
**顶部选择:**
GitKraken:传说中适用于 Windows、Mac 和 Linux 的 Git GUI 客户端。
###
***在票数上连续两年***
###
**#1️⃣ * in votes for 2 years in a row***
当然,我们期望 GitKraken 是我们用户的首选,但是名单的其他部分是我们很乐意与你分享的!现在,我们开始看到每年使用哪些工具的趋势,哪些工具在开发人员中是新的,哪些工具是旧的。
为了让今年变得更加激动人心,我们正式承认前三名开发工具(除了 GitKraken)获得了金北海巨妖奖!
And to make it a little more exciting this year, we’re officially recognizing the top 3 dev tools (other than GitKraken) with the Golden Kraken Awards!
**🏆✨The 金克拉肯奖授予…**
## **🏆✨The Golden Kraken Awards go to…**
2. [Visual Studio Code](https://code.visualstudio.com/) :一款免费的轻量级工具,用于编辑和调试 web 应用。
***比去年多 1 个点***
2. [Visual Studio Code](https://code.visualstudio.com/): A free, lightweight tool for editing and debugging web apps.
**⬆️ * 1 spot from last year***
* * *
3.GitHub:一个基于 web 的 Git 存储库托管服务。
⬆️ ***去年的 2 个名额***
3. [GitHub](https://github.com/): A web-based Git repository hosting service.
⬆️ *** 2 spots from last year***
* * *
4. [Git](https://git-scm.com/) :免费开源的分布式版本控制系统。
***连续两年***
4. [Git](https://git-scm.com/): A free and open source distributed version control system.
**#4️⃣ *for 2 years in a row***
**前 5-20 名开发工具**
## **Top 5-20 dev tools**
5.Chrome DevTools :谷歌 Chrome 内置的一套网页创作和调试工具。
⬆️ ***去年的 3 个名额***
5. [Chrome DevTools](https://developer.chrome.com/devtools): A set of web authoring and debugging tools built into Google Chrome.
⬆️ *** 3 spots from last year***
* * *
6.Atom:21 世纪的可破解文本编辑器。
⬇️ ***去年的 4 个名额***
6. [Atom](https://atom.io/): A hackable text editor for the 21st Century.
⬇️*** 4 spots from last year***
* * *
7.Sublime Text :一个用于代码、标记和散文的复杂的文本编辑器。
**#*****连续两年***
7. [Sublime Text](https://www.sublimetext.com/): A sophisticated text editor for code, markup, and prose.
**#**7️⃣ ***for 2 years in a row***
* * *
8. [Slack](https://slack.com/) :现代团队的实时消息传递、归档和搜索。
⬆️ ***去年的 7 个名额***
8. [Slack](https://slack.com/): Real-time messaging, archiving, and search for modern teams.
⬆️ ***7 spots from last year***
* * *
9. [Postman](https://www.getpostman.com/) :一个强大的 GUI 平台,让你的 API 开发更快&更容易。
⬆️ ***去年的 4 个名额***
9. [Postman](https://www.getpostman.com/): A powerful GUI platform to make your API development faster & easier.
⬆️ ***4 spots from last year***
* * *
10.Docker :开发人员和系统管理员构建、发布和运行分布式应用程序的开放平台。
⬇️ ***比去年增加 1 点***
10. [Docker](https://www.docker.com/): An open platform for developers and system administrators to build, ship, and run distributed applications.
⬇️ ***1 spot from last year***
* * *
11.IntelliJ IDEA :来自 JetBrains 的 Java IDE。
**#*****连续两年***
11. [IntelliJ IDEA](https://www.jetbrains.com/idea/): A Java IDE from JetBrains.
**#**1️⃣1️⃣ ***for 2 years in a row***
* * *
12.GitLab : Git 仓库管理、代码审查、问题跟踪、活动提要和维基。
⬇️ ***去年的 2 个名额***
12. [GitLab](https://about.gitlab.com/): Git repository management, code reviews, issue tracking, activity feeds, and wikis.
⬇️ *** 2 spots from last year***
* * *
13. [Visual Studio](https://www.visualstudio.com/) :面向任何平台、任何语言的开发者工具和服务。
⬇️ ***去年的 7 个名额***
13. [Visual Studio](https://www.visualstudio.com/): Developer tools and services for any platform with any language.
⬇️ ***7 spots from last year***
* * *
14.PhpStorm :一个商业的、跨平台的 PHP IDE。
⬇️ ***去年的 2 个名额***
14. [PhpStorm](https://www.jetbrains.com/phpstorm/): A commercial, cross-platform IDE for PHP.
⬇️ ***2 spots from last year***
* * *
15. [ZSH](http://www.zsh.org/) :一个 Unix shell,可以用作交互式登录 shell 和 shell 脚本的强大命令解释器。
*️⃣*新入榜 *
15. [ZSH](http://www.zsh.org/): A Unix shell that can be used as an interactive login shell and a powerful command interpreter for shell scripting.
*️⃣ *** new to the list***
* * *
16. [Node.js](https://nodejs.org/en/) :开源、跨平台的 JavaScript 运行时环境,用于执行 JavaScript 代码服务器端。
*️⃣*新入榜 *
16. [Node.js](https://nodejs.org/en/): An open-source, cross-platform JavaScript run-time environment for executing JavaScript code server-side.
*️⃣ ***new to the list***
* * *
17.火狐开发者工具(Firefox Developer Tools):一组内置于火狐的开发者工具。
*️⃣*新入榜 *
17. [Firefox Developer Tools](https://developer.mozilla.org/en-US/docs/Tools): A set of developer tools that are built into Firefox.
*️⃣ *** new to the list***
* * *
18. [Stack Overflow](http://stackoverflow.com/) :程序员学习、分享知识和推进职业发展的最大在线社区。
⬆️ ***去年的 2 个名额***
18. [Stack Overflow](http://stackoverflow.com/): The largest online community for programmers to learn, share knowledge, and advance their careers.
⬆️ ***2 spots from last year***
* * *
19. [iTerm2](https://www.iterm2.com/) :一个 GPL 授权的 macOS 终端仿真器。
*️⃣*新入榜 *
19. [iTerm2](https://www.iterm2.com/): A GPL-licensed terminal emulator for macOS.
*️⃣ ***new to the list***
* * *
20.[Eclipse IDE](https://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/keplersr1):Java 开发者创建 Java EE 和 web 应用的工具。
*️⃣*新入榜 *
20. [Eclipse IDE](https://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/keplersr1): Tools for Java developers creating Java EE and web applications.
*️⃣ ***new to the list***
**年同比趋势**
## **Year-over-year trends**
去年的几个顶级开发工具今年没有入围:ReSharper、PyCharm、Android Studio、Notepad 和 Xcode。
* 2018 年上榜的新工具是 ZSH、Node.js、Firefox 开发者工具、iTerm2 和 Eclipse IDE。
* Chrome DevTools 比去年上升了 3 位,Firefox Developer Tools 排名第 17。
* GitHub 今年上升了 2 位,排名第 3,扩大了与 GitLab 的差距,GitLab 下降了 2 位,排名第 12。
* Slack 的受欢迎程度同比上升最多,上升了 7 位,排在第 8 位。
* Visual Studio 的受欢迎程度下降幅度最大,下降了 7 位,排在第 13 位。
* Visual Studio had the biggest decline in popularity, dropping 7 spots to number 13.
# 2019 年 20 大开发者工具
> 原文:<https://www.gitkraken.com/reports/top-developer-tools-2019>
当涉及到构建伟大的软件时,有很多挑战。每年,越来越多的软件产品上市,这意味着高效工作变得越来越重要。如果你不是第一个上市的,最便宜的,或者最好的,你的软件产品将不会在这个竞争激烈的市场中胜出。
作为一家公司,Axosoft 自 2002 年以来一直在开发能够提高开发人员工作效率的软件产品。我们是在一个同名的 Scrum 项目管理软件 上成立的。在我为公司工作的近五年时间里,我们又开发了两个产品:GitKraken,一个跨平台的 [**Git 客户端**](https://www.gitkraken.com/git-client) ,以及 Glo Boards,一个任务和[问题跟踪系统](https://www.gitkraken.com/glo)。
我们在构建自己的产品时投入了大量的精力,并且我们使用了许多其他令人惊叹的软件来帮助我们更快地发布产品,并且减少错误。我们本可以整理出我们自己的最佳开发工具列表,但是在过去的两年里,我们却向我们的社区询问。
按照传统,我们让来自世界各地精英组织的软件工程师使用[**# mustavedevtools**](https://twitter.com/search?src=typd&q=%23MustHaveDevTools)在推特上发布他们最喜欢的 5 种开发工具。在仔细汇总了 1,000 多条推文的数据后,我很高兴与您分享 20 个最佳开发工具——按投票最多的顺序排列。
**顶部选择:**
## GitKraken :传奇的 Git GUI 客户端,适用于 Windows、Mac 和 Linux。
[GitKraken](https://www.gitkraken.com/git-client): The legendary Git GUI client for Windows, Mac, and Linux.
**#1️⃣** ***在票数上连续 3 年***
### **#1️⃣ ***** in votes for 3 years in a row***
我们在 2018 年达到了超过[100 万用户](https://www.gitkraken.com/customers),我们很荣幸连续第三年获得最多的投票!
We reached over [one million users](https://www.gitkraken.com/customers) in 2018, and we’re honored to have received the most votes for the third year in a row!
让我们深入了解哪些开发人员工具逐年流行起来,哪些是新出现的,哪些已经落伍了。金北海巨妖奖承认其他三个最高投票工具。今年,我们祝贺一个新人和两个资深工具!
Let’s dive into which other developer tools have grown in popularity year-over-year, which are new to the scene, and which have fallen from the ranks. The Golden Kraken Awards acknowledge the other three highest-voted tools. This year, we congratulate a newcomer and two veteran tools!
**🏆✨The 金克拉肯奖授予…**
## **🏆✨The Golden Kraken Awards go to…**
2. [**Visual Studio 代码**](https://code.visualstudio.com/) :用于构建和调试 web 和云 app 的代码编辑器。
**#2️⃣** ***连续 2 年。🌟VSCode 不会消失。***
** #2️⃣ ***** for 2 years in a row. 🌟 VSCode isn’t going anywhere. ***
* * *
3. [**Docker**](https://www.docker.com/) :使用容器快速构建、测试、部署应用的平台。
**⬆️** ***比去年多了 7 个名额。🚢所有人都上船!***
** ⬆️** ***7 spots from last year. 🚢 All aboard this ship!***
* * *
4. [**Git**](https://git-scm.com/) :免费开源的分布式版本控制系统。
**#4️⃣** ***连续 3 年。🗂 Git 是现在使用最广泛的版本控制系统。***
** #4️⃣ *****for 3 years in a row. 🗂 Git is now the most widely used version control system.***
**前 5-20 名开发工具**
## **Top 5-20 Dev Tools**
5. [**邮差**](https://www.getpostman.com/) :强大的 GUI 平台让你的 API 开发更快&更轻松。
⬆️ ***去年 4 个点,最近 2 年 8 个点。👀值得一看!***
⬆️ ***4 spots from last year, and 8 spots in the last 2 years. 👀 It’s one to watch!***
* * *
6. [**Visual Studio**](https://www.visualstudio.com/) :面向任何平台、任何语言的开发者工具和服务。
⬆️ ***比去年上升 7 位,与 Docker 并列第一。***
⬆️ ***7 spots from last year, and tied with Docker for the largest year-over-year gain.***
* * *
7. [**Chrome DevTools**](https://developer.chrome.com/devtools) :谷歌 Chrome 内置的一套网页创作和调试工具。
⬇️ ***比去年多了 2 位。***
⬇️ *** 2 spots from last year.***
* * *
8. [**GitLab**](https://about.gitlab.com/) : Git 仓库管理、代码审查、问题跟踪、活动提要和维基。
⬆️ ***比去年多 4 个名额。🦊小心 GitHub!***
⬆️ *** 4 spots from last year. 🦊 Watch out GitHub!***
* * *
9. [**崇高文本**](https://www.sublimetext.com/) :一个复杂的代码、标记和散文文本编辑器。
⬇️ ***比去年多了 2 位。***
⬇️ *** 2 spots from last year.***
* * *
10. [**IntelliJ IDEA**](https://www.jetbrains.com/idea/) :来自 JetBrains 的 Java IDE。
⬆️ ***比去年上升 1 位。***
⬆️ *** 1 spot from last year.***
* * *
11. [**GitHub**](https://github.com/) :基于 web 的 Git 仓库托管服务。
⬇️ ***比去年多了 8 个名额。GitHub 的排名同比下降幅度最大。***
⬇️ *** 8 spots from last year. GitHub had the largest drop in rankings year-over-year.***
* * *
12.[](https://slack.com/)**:现代团队的实时消息传递、存档和搜索。**
**⬇️ ***比去年多 4 个名额。***
⬇️ ***4 spots from last year.***
* * *
13. [**Atom**](https://atom.io/) :一个免费开放的源代码编辑器。
⬇️ ***比去年多了 7 个名额。***
⬇️*** 7 spots from last year.***
* * *
14. [**Azure**](https://azure.microsoft.com/en-us/) :云计算平台和服务,由微软打造。
*️⃣ ***新上榜,热门来袭!【T2****🔥*
*️⃣ *** New to the list, and coming in hot! ****🔥*
* * *
15. [**特雷罗**](https://trello.com/) :基于网络的项目管理应用。
*️⃣ ***新入榜。你见过***[***Glo 板与 Trello***](https://blog.axosoft.com/gitkraken-glo-boards-vs-trello/) ***相比如何?***
*️⃣ *** New to the list. Have you seen ***[***how Glo Boards compares to Trello***](https://blog.axosoft.com/gitkraken-glo-boards-vs-trello/)***?***
* * *
16: [**谷歌**](https://www.google.com/) :互联网相关服务,包括搜索引擎、云计算和软件。
*️⃣ ***新入榜。🔍谷歌将 Stack Overflow 这样的工具从列表中剔除。***
*️⃣ *** New to the list. 🔍 Google knocked tools like Stack Overflow off the list.***
* * *
17:[**Android Studio**](https://developer.android.com/studio/index.html):Android 平台开发官方 IDE。
*️⃣ ***新进名单;自从它出现在我们 2017 年的榜单第 17 位以来,它又卷土重来了。***
*️⃣ *** New to the list; making a comeback since its appearance in our 2017 list at #17.***
* * *
18.**[Xcode](https://developer.apple.com/xcode/)**:MAC OS/和 iOS 开发的 IDE。
*️⃣ ***新进名单;自从它出现在我们 2017 年的榜单第 19 位以来,它又卷土重来了。***
*️⃣ *** New to the list; making a comeback since its appearance in our 2017 list at #19.***
* * *
19.[**Eclipse IDE**](https://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/keplersr1):Java 开发者创建 Java EE 和 web 应用的工具。
⬆️ ***比去年上升 1 位。***
⬆️ *** 1 spot from last year.***
* * *
20. [**Linux**](https://www.linux.org/) :围绕 Linux 内核构建的开源软件操作系统。
*️⃣ ***新入榜。🐧***
*️⃣ *** New to the list. 🐧***
**年同比趋势**
## Docker 就是看的工具!现在排名第三,这位冉冉升起的明星在一年内人气上升了 7 位。
* Visual Studio 与 Docker 并列受欢迎程度年度同比增幅最大——上升 7 位,从第 13 名升至第 6 名。
* 2019 年有四个新工具上榜:Azure、Trello、谷歌和 Linux。
* 一款任务追踪工具首次上榜。现在想象一下,如果它在你最喜欢的其他工具中,比如 VSCode 和 Atom……见开发者的[***Glo 如何超越 Trello***](https://blog.axosoft.com/gitkraken-glo-boards-vs-trello/) !
* 两个工具从我们的 2017 年名单中重新浮出水面:Android Studio 和 Xcode。
* 邮递员的排名继续攀升,在过去的两年里上升了 8 位。又是一个值得看的!
* 去年的六个顶级开发工具今年没有入围:PhpStorm、ZSH、Node.js、Firefox 开发工具、Stack Overflow 和 iTerm2。
* GitLab 让 GitHub 望尘莫及!GitLab 上升了 4 位,第一年超过了 GitHub。而 GitHub 的排名跌幅最大,从第 3 位跌至第 11 位。
* Git 连续第三年保持第四的位置——巩固了大多数组织为了版本控制而迁移到 Git 的趋势。
* Git held onto the number 4 position for the third year in a row—solidifying the trend that most organizations are migrating to Git for version control.**
# 2020 年 20 大开发工具
> 原文:<https://www.gitkraken.com/reports/top-developer-tools-2020>
谈到最受欢迎的技术,我们期待 Stack Overflow 的 **[开发者调查 2019](https://insights.stackoverflow.com/survey/2019#most-popular-technologies)** 找到答案。JavaScript 连续 7 年继续成为最常用的编程语言,而 Python 是增长最快的。
如果您想了解这些开发人员正在使用什么工具,这就是我们调查的目的。Axosoft 连续第四年要求我们的全球软件开发人员社区发布他们的前 5 名**[# mustavedevtools](https://twitter.com/search?q=%23MustHaveDevTools&src=typed_query)**。今年,我们收到了 700 份回复,并根据大多数投票对这些工具进行了排名。
让我们深入了解 2020 年软件开发的最佳 ide、平台和应用!我们将看看哪些工具继续逐年增加,哪些已经失宠,以及哪些新工具已经进入该领域。
## **软件开发人员的首选工具**
1. **[GitKraken](https://www.gitkraken.com/git-client)** :传说中的 Windows、Mac、Linux 的跨平台 Git GUI。
***#1️⃣连续 4 年!还在 [2020 年 DevOps 工具报告](https://www.gitkraken.com/resources/devops-report-2020)中被评为 Git GUI 第一名。***
自 2014 年推出 GitKraken 以来, **[数百万开发人员](https://www.gitkraken.com/customers)** 现在依靠 GitKraken 结合其他顶级工具,如 GitHub (#7)和 GitLab (#14),高效地利用 Git (#6)进行源代码管理。
关于我们已经说得够多了;让我们看看其他 19 个最好的开发工具,并讨论一下发展趋势!
## **北海巨妖金像奖颁给…**
2. [**Visual Studio 代码**](https://code.visualstudio.com/) :构建和调试 web 和云应用的流行代码编辑器。
**#🥈连续三年。👏还在 Stack Overflow 的年度** [**2019 开发者调查**](https://insights.stackoverflow.com/survey/2019#technology-_-most-popular-development-environments) **中投票选出最受欢迎的开发环境。**
* * *
3. [**Postman**](https://www.getpostman.com/) :更快 API 开发的协作平台。
**⬆️2019 年 2 个景点,2018 年 7 个景点【2017 年 10 个景点👏,邮差是一颗冉冉升起的明星!🚀**
* * *
4. [**Visual Studio**](https://visualstudio.microsoft.com/) :不要和 VS 代码混淆,这个集成开发环境包括了所有平台和语言的工具和服务。
来自 2019 年的⬆️ 2 spots 和来自 2018 年的 9 spots,这个 IDE 被许多开发者所依赖。
## **前 5-20 名开发者工具**
5. [**Docker**](https://www.docker.com/) :构建、管理、保护应用的容器平台。
从去年开始,Docker 仍然被开发人员广泛使用和喜爱。
* * *
6. [**Git**](https://git-scm.com/) :跟踪源代码变更的分布式版本控制系统。
⬇️比去年上升了两位,但 Git 不会离开。Git 是公认的 VCS,被超过 90%的开发人员使用。
* * *
7. [**GitHub**](https://github.com/) :超过 1 亿个 Git 仓库的托管站点。
**⬆️ 4 点从 2019 年开始,毫无疑问,GitHub 迄今为止已经拥有超过 4000 万开发者的不断增长的社区。**
* * *
8. [**Sublime Text**](https://www.sublimetext.com/) :代码、标记、散文的跨平台文本编辑器。
**⬆️第一名去年,这位文字编辑自 2017 年以来一直在我们的榜单上保持第 7-9 名。**
* * *
9.[**IntelliJ IDEA**](https://www.jetbrains.com/idea/):Jetbrains 打造的 Java IDE,为编码软件提供快速直观的体验。
**⬆️去年排名第一,自 2017 年以来,该 IDE 一直在我们的榜单上保持第 9-11 位。**
* * *
10(平手)。 [**命令行**](https://git-scm.com/book/en/v2/Getting-Started-The-Command-Line) :以连续文本行的形式向计算机程序发出命令的文本接口。
***️⃣新入榜。看看** [**GitKraken GUI 与 CLI**](https://blog.axosoft.com/git-gui-vs-cli/) **相比如何。**
* * *
10(平手)。[**PHP storm**](https://www.jetbrains.com/phpstorm/):PHP 的 Jetbrains’IDE;兼容 Symfony,Laravel,Drupal,WordPress 等等。
**🔁在 2019 年短暂缺席后,PhpStorm 又回来了,比 2018 年上升了 4 个百分点。**
* * *
12. [**哦我的 Zsh**](https://ohmyz.sh/) :管理 Zsh 配置的开源框架。
***️⃣新入榜。火热登场!🔥这个社区驱动的工具值得关注。**
* * *
13.[](https://slack.com/)**:现代团队的实时消息传递、存档和搜索。**
****⬇️今年 1 斑。这已经成为包括我们在内的团队之间不可或缺的沟通工具。**
* * *
14.[](https://about.gitlab.com/)**:作为单一应用交付的完整 DevOps 平台。**
**从去年开始,GitLab 的衰落似乎是为了应对 GitHub 的崛起。
* * *
15. [**Chrome DevTools**](https://developers.google.com/web/tools/chrome-devtools) :一套直接内置在谷歌 Chrome 浏览器中的开发者工具。
**⬇️2018 年 8 个景点,2017 年 10 个景点。**
* * *
16.[**ITER m2**](https://iterm2.com/):MAC OS 的终端仿真器。
**🔁在 2019 年缺席后,iTerm2 又回来了,比 2018 年上升了 3 位。**
* * *
17. [**Atom**](https://atom.io/) :免费、开源、跨平台的文本编辑器。
**⬇️2019 年 4 个名额,2018 年 11 个名额,2017 年 15 个名额。这种下降似乎是对 VSCode 等编辑器和 Visual Studio 等 ide 接管的回应。**
* * *
18.[**Android Studio**](https://developer.android.com/studio):Android 平台开发官方 IDE。
⬇️去年排名第一,但仍是移动开发者的最爱。
* * *
19.[**py charm**](https://www.jetbrains.com/pycharm/):Python 的 Jetbrains’IDE。
**🔁在 2018 年和 2019 年缺席后,PyCharm 回来了,但比 2017 年下降了 3 位。**
* * *
20. [**Unity**](https://unity.com/) :开发 2D、3D、VR、AR 游戏的跨平台工具。
***️⃣新入榜。游戏开始。🎮**
## **年同比趋势**
* 邮差就是看的工具!自从首次在 2017 年榜单上排名第 13 位以来,这一工具的排名持续上升。在获得今年的北海巨妖铜奖之前,在 2018 年的榜单上排名第 9,在 2019 年的榜单上排名第 5。
* 前 20 名开发者工具中有 13 个已经连续 4 年上榜!
* Jetbrains 在今年的榜单上有三个工具:IntelliJ IDEA 排名第九,PhpStorm 排名第十,PyCharm 排名第十九。
* 哦,我的 Zsh 和 Unity 是第一次排名的唯一两个工具。
* GitHub 获得了年度同比增幅最大的奖项,从 2019 年的第 11 位上升到 2020 年的第 7 位。这种收益似乎是以牺牲 GitLab 为代价的。
* 受人喜爱的 Linux 平台在出现在我们的 2019 年 顶级开发工具 **[名单中后,今年没有入选;还有 Azure、Trello、Xcode 和 Eclipse IDE。](https://blog.axosoft.com/top-developer-tools-2019/)**
* Chrome DevTools 的跌幅最大,在 2019 年榜单上排名第七,在 2020 年下滑 8 位至第 15 位。
* iTerm2 首次在 2018 年 的 **[顶级开发工具中排名第 19。虽然它没有在去年的榜单中排名,但在 2020 年它又回到了第 16 位!](https://blog.axosoft.com/top-developer-tools-2018/)**
* PhpStorm 首先在我们的 2017 年 顶级开发工具列表中排名第 12,然后在我们的 2018 年列表中排名第 14。这个工具去年没有获得足够的票数上榜,但看起来它在 2020 年再次受到欢迎,排名第十。
* PyCharm 在 2017 年的榜单上排名第 16 位后,连续两年跌出榜单。这个工具已经在 2020 年的#19 中重新出现。
* 在 2017 年排名第二之后,凌动的排名继续下降,到 2020 年,它已经稳步下降到第 17 位。
* Git 首次下滑,在连续三年排名第四后,升至第六位。根据 Stack Overflow 的 [Developer Survey 2018](https://insights.stackoverflow.com/survey/2018#work-_-version-control) ,几乎 90%的开发人员通过 Git 检入他们的代码,这现在已经成为常态。****
# 软件开发中的顶级影响者
> 原文:<https://www.gitkraken.com/blog/top-influencers-software-development>
在[媒体](https://medium.com/@GitKraken)、 [YouTube](https://www.youtube.com/channel/UCp06FAzrFalo3txskS1gCfA) 、 [Twitter](https://twitter.com/GitKraken) 和网络上不计其数的博客之间,互联网看起来就像一个资源黑洞。有这么多的专家和平台可供选择,找到一个与你个人产生共鸣的声音可能会非常困难。
GitKraken 团队列出了我们在软件开发中最喜欢的七位影响者,希望其中一些也能引起您的共鸣。
**Dan Abramov**
## 网址:[https://overreacted.io/](https://overreacted.io/)
推特:[@丹 _ 阿布拉莫夫](https://twitter.com/dan_abramov)
关注者:175 000 人
丹·阿布拉莫夫是个反动派。位于伦敦的 JS 开发者。我们喜欢丹博客的一点是文章的多样性,无论是内容还是篇幅。丹也是你能找到的最有影响力的人之一,几乎每周都发帖子。
他是一名当前的开发人员,不断尝试改进他的工作流程,并定期处理影响世界各地开发人员的问题,包括我们的团队。
比如他写了一篇很棒的关于 React Hooks 的[文章,专门讨论`setInterval`。他的建议实用且可行;开发人员可以很容易地在他们自己的工作流程中实现。](https://overreacted.io/making-setinterval-declarative-with-react-hooks/)
珍妮·布莱恩
网址:[https://jennybryan.org/](https://jennybryan.org/)
## 推特: [@JennyBryan](https://twitter.com/jennybryan)
关注者:24 400 人
Jenny 是 RStudio 的统计学家和软件工程师,r studio 是一个为数据科学家开发开源软件包的组织,她还担任温哥华不列颠哥伦比亚大学的兼职教授。
我们认为 Jenny 是一个摇滚明星有很多原因,不仅仅是因为她在这个令人惊讶的全面教育文档中的“[推荐 Git 客户端](https://happygitwithr.com/git-client.html#recommended-git-clients)”一章中包含了 GitKraken, *[快乐 Git 和 GitHub 用户](https://happygitwithr.com/)* 。
她是一个非常有趣的作家,也是 GUI 的倡导者。正如你可能已经从前面提到的 Git 文档的首页上看到的一样(如上所示),Jenny 有一种令人耳目一新的幽默感,这有助于打破 Git 和版本控制的密集信息。
We think Jenny is a rockstar for many reasons, and not just because she included GitKraken in her “[Recommended Git Clients](https://happygitwithr.com/git-client.html#recommended-git-clients)” chapter in this amazingly comprehensive educational document, *[Happy Git and GitHub for the useR](https://happygitwithr.com/)*.
斯科特·汉瑟曼
网址:[https://www.hanselman.com/](https://www.hanselman.com/)
## 推特: [@shanselman](https://twitter.com/shanselman)
关注者:218 000 人
Scott 是一位行业老手——自 2002 年以来,他一直在稳定地为自己的博客投稿——并且在为现代技术人员提供热门内容方面做得非常出色。他目前是微软的合作伙伴项目经理,经常报道。NET、Windows 和 Azure 相关的主题。
除了他的博客,Scott 还主持一些与软件开发相关的播客: [HanselMinutes](https://www.hanselminutes.com/) ,开发者的生活,以及 [Azure Friday](https://azure.microsoft.com/en-us/resources/videos/azure-friday/) 。
我们爱斯科特,不仅仅是因为他使用并积极地向其他人推荐 GitKraken(我们非常欣赏,斯科特…如果你正在阅读),我们还喜欢他的慈善精神。Scott 支持多个组织,重点是糖尿病和 D&I。
在 GitKraken,我们非常重视技术创新的多样性,比如 [#ItWasNeverADress](https://itwasneveradress.com/) ,我们很高兴看到 Scott 对包容和平等的支持。
回到 2016 年, [GitKraken 与 Scott](https://www.hanselman.com/blog/GitKrakenProGitClientTeamingUpWithNightScoutToSupportOpenSourceDiabetesSoftware.aspx) 和 NightScout 基金会合作,将 GitKraken 第一个月的收入捐赠给基金会,支持一个开源应用程序, [NightScout](http://www.nightscout.info/) ,它可以为糖尿病患者实时可视化血糖。斯科特本人是糖尿病患者,他对生活在这种情况下的挑战非常开放。
At GitKraken, we’re huge on diversity in tech initiatives, like [#ItWasNeverADress](https://itwasneveradress.com/), and love seeing Scott’s support for inclusion and equality.
**苏兹欣顿**
网址:[https://noopkat.com/](https://noopkat.com/)
## 推特: [@noopkat](https://twitter.com/noopkat)
关注者:38 300 人
虽然 Suz 似乎从她的博客[喵机器](http://meow.noopkat.com/)上休息了一下,但她最近开始在她的 [Twitch 频道](https://www.twitch.tv/noopkat)上直播她的开源项目,并获得了很大的关注。可以说,她最全面的资源是她在 [GitHub 页面](https://github.com/noopkat)上的文档。
Suz 是土生土长的墨尔本人,是一位知名的行业影响者,在全球各地的许多活动上发表演讲,如华盛顿特区的微软 Ignite。
Though Suz has seemingly taken a bit of a break from her blog, [Meow Machine](http://meow.noopkat.com/), she has recently started live-streaming her open-source projects on her [Twitch channel](https://www.twitch.tv/noopkat) and is gaining a lot of traction. Arguably, her most comprehensive resource is her documentation on her [GitHub page](https://github.com/noopkat).
本·哈尔彭
**网址: [https://dev.to](https://dev.to/)
## 推特: [@bendhalpern](https://twitter.com/bendhalpern)
关注者:24 100 人
Ben 是一名居住在布鲁克林的加拿大软件开发人员,也是 [Dev.to](https://dev.to/) 的创始人和网站管理员。他主要从事 Ruby 和 JavaScript 方面的工作,但也经常撰写关于各种开发工具的文章,重点放在开源上。
另一个 GUI 倡导者 Ben 在 Twitter 上非常活跃。除了他的个人频道,他还帮助运营拥有 156,000 名粉丝的 [@ThePracticalDev](https://twitter.com/ThePracticalDev) Dev 社区。
我们喜欢 Ben 让发展变得包容的感觉。他非常乐于助人和合作,并且真诚地希望看到其他开发者成功。他在自己的[个人资料页面](https://dev.to/ben)上也非常活跃。
Another [GUI advocate](https://dev.to/ben/on-gui-shaming-and-a-mountain-of-hot-takes-3oh0), Ben is extremely active on Twitter. In addition to his personal channel, he also helps run [@ThePracticalDev](https://twitter.com/ThePracticalDev) Dev Community boasting 156,000 followers.
**陈秋琪**
**网址:[http://www.sqisland.com/](http://www.sqisland.com/)
## 推特: [@chiuki](https://twitter.com/chiuki)
关注者:17 700 人
Chiu-Ki Chan 以前是谷歌的软件工程师,现在经营着自己的移动开发公司,专门从事 Android 开发。Chiu 经常在全球各地的技术活动上发表演讲,是一个积极的社会影响者。
Chiu 是科罗拉多州丹佛市 Android 开发者年度大会 360|AnDev 的组织者之一,也是 YouTube 频道, [Android Dialogs](https://www.youtube.com/channel/UCMEmNnHT69aZuaOrE-dF6ug) 的联合创始人。邱与同为女工程师的[虎眼屠刀](https://twitter.com/queencodemonkey)推出了这个视频系列。
虽然 Chiu 仍然在她的博客上发表文章,并发表了一些关于工作/生活平衡的精彩文章——比如这篇关于[模块化膳食计划](http://blog.sqisland.com/2018/05/modular-meal-planning.html)的文章——但她一直在她的 Android Dialogs 平台上发表内容。
Chiu is one of the organizers of [360|AnDev](https://360andev.com/), an annual conference for Android developers in Denver, CO and is the co-creator of the YouTube channel, [Android Dialogs](https://www.youtube.com/channel/UCMEmNnHT69aZuaOrE-dF6ug). Chiu launched the video series with fellow female engineer, [Huyen Tue Dao](https://twitter.com/queencodemonkey).
**萨拉·德拉斯纳**
**网址:[https://sarahdrasnerdesign.com/](https://sarahdrasnerdesign.com/)
## 推特: [@sarah_edo](https://twitter.com/sarah_edo)
关注者:115 000 人
Sarah 是 Vue.js 的核心团队成员,也是 CSS-Tricks 博客的撰稿人。专注于 web 开发和设计,Sarah 对 React 和 Vue 框架的内部工作方式有了深入的了解。
Sarah 的文章几乎每月发布一次,很好地平衡了技术和高级主题。就像这篇讨论工程经理和他们的员工之间一对一会议的重要性的文章一样;与这篇关于[创建无服务器 API](https://css-tricks.com/create-your-own-serverless-api/)的文章相比。
Sarah is on the core team of Vue.js and a contributing writer to the [CSS-Tricks blog](https://css-tricks.com/). Focusing on web development and design, Sarah brings an intimate view into the inner workings of the React and Vue frameworks.
你会关注哪些有影响力的人?
你沉迷于追随哪些行业专家?您在哪里可以找到提升开发技能的最新技巧和诀窍?我们想知道!在推特上给我们留言[@ GitKraken](https://twitter.com/GitKraken)!如果你需要 Git 特定的教程,GitKraken 在我们的 YouTube 频道上有一个令人难以置信的视频系列,供[用 GitKraken](https://www.youtube.com/playlist?list=PLe6EXFvnTV7-_41SpakZoTIYCgX4aMTdU) 学习 Git,内容包括初学者和高级用户。
## **What Influencers Do You Tune Into?**
Which industry experts are you addicted to following? Where do you find current tips and tricks for upping your development skills? We want to know! Drop us a note [@GitKraken on Twitter](https://twitter.com/GitKraken)! If you’re ever in need of Git-specific tutorials, GitKraken has an incredible video series on our YouTube channel for [Learning Git with GitKraken](https://www.youtube.com/playlist?list=PLe6EXFvnTV7-_41SpakZoTIYCgX4aMTdU), with content for beginners through advanced users.******
# 2018 年将参加的 7 大科技会议
> 原文:<https://www.gitkraken.com/blog/top-tech-conferences-2018>
2018 年开发者应该参加的顶级会议有哪些?这取决于你的目标是什么。
* 你想学习一门新的编程语言吗?
* 您是否希望在您的组织内实施 DevOps?
* 你想找份新工作吗?
你还需要确定在你的决策过程中起作用的因素。
* 对于您想了解更多的主题,您的经验水平如何?
* 你的旅行仅限于某些地区吗?
* 你的机票、旅行和住宿的最高预算是多少?
话虽如此,我们还是为开发者整理了*我们的*7 大科技会议列表。我们会给你关于地点、时间表、成本和更多的内部消息。
## **面向开发者的 7 大技术会议**
**地点:**加利福尼亚州旧金山
**费用:** $299 的早鸟价格将于 7 月 1 日结束
**日期:**2018 年 10 月 16-17 日
过去 3 年,GitHub Universe 一直在 70 号码头的一个旧的工业仓库里。我们喜欢这个空间的外观和感觉。GitHub 与创意人员合作,打造不同于任何其他会议的体验。这个会场非常开放,因此与会者可以自然地从一个空间流动到另一个空间,而不是参观酒店会议室进行讲座和挤满赞助商展位的展厅。通过与不同的艺术装置互动或在众多赞助的休息区之一休息,您将接触到新产品和服务。你可以随时享用美味的食物和饮料。
内容被分解为特定的标签,以帮助您确定哪些符合您的目标:企业、开源、社会影响、教育、社区、代码、运营、架构、自动化、管理、人员、数据、电子、GraphQL、Git、集成、扩展 GitHub 协作、安全、产品设计、Hubot、GitHub Talk、GitHub 合作伙伴对话和 GitHub Integrator 对话。本次会议的警告是 GitHub 用户将从内容中获得最大收益。
因为 GitKraken 与 GitHub 和 GitHub Enterprise 以及 GitLab 和 Bitbucket 很好地集成在一起,所以我们能够为几乎每个与会者提供一些有价值的东西。自 2015 年大会开始以来,我们一直是赞助商,2018 年再次见到我们,你应该不会感到惊讶!
**地点:**纽约
**费用:**200-1045 美元
**日期:**2018 年 6 月 18 日-20 日
这是一个大的!加入纽约 DeveloperWeek 的 3000 多名开发人员、DevOps 专业人员和高管。将有 30 多家开发商展示可以让您的生活更轻松的工具,100 多个讲座和技术研讨会,以及全市范围的活动。
您可以购买 4 种类型的通行证:Exec、Pro、Open 或 Expo 通行证。如果您想要访问各种类型的内容,我们建议您使用 Pro Pass,包括 DevExec 会议、DevOps 会议、FinTech Dev 会议、API 和微服务会议、JavaScript 会议、移动开发和无服务器跟踪、全市合作伙伴活动、公开会谈、在线网络应用程序、导师联谊会、主题演讲和为期两天的展厅。
如果您想体验一下 DeveloperWeek 的内容,请选择 Open Pass。你可以参加公开会议、主题演讲和博览会。
不要错过这两次公开会议:
DeveloperWeek NY 还包括一个 300 人的黑客马拉松和一个开发人员招聘联谊会。对于每个职业层次的开发人员来说,确实有一些小东西。 **[获取每个“小型会议”和会议期间活动的独家新闻](http://www.developerweek.com/NYC/about/)** ,以决定哪些符合您的目标。
**专业提示:[使用我们的赞助商链接获得免费的](https://www.eventbrite.com/e/developerweek-nyc-2018-tickets-39737413674?discount=gitkraken-open#tickets)** (价值 200 美元)!
### **3。DevOps 世界/ Jenkins 世界**
**地点:**加利福尼亚州旧金山
**费用:** $499 超级早鸟定价将于 6 月 22 日结束| $999 早鸟定价将于 7 月 15 日结束| $1,199
**日期:**2018 年 9 月 16 日-19 日
**详情:**本次会议汇集了 IT 高管、DevOps 实践者、Jenkins 用户和合作伙伴,共同学习、探索、交流并帮助塑造 DevOps 和 Jenkins 的未来。涵盖的主题从开发运维与文化,到流程设计、自动化测试、性能管理、安全性等等。
**专业提示:**在 GitKraken 展台停下来获得免费礼品,并有机会赢得大奖!
**地点:**内华达州拉斯维加斯
**费用:**早鸟 1400 美元
**日期:**2018 年 10 月 22 日-24 日
DevOps 企业峰会面向大型复杂组织的领导者,他们的目标是实施 DevOps 原则和实践。活动编程强调不断发展的技术和架构实践,以及在大型组织中领导广泛变革工作所需的方法。领导者将带着他们需要的工具和实践更快地开发和部署软件。
我们喜欢的不仅仅是主题演讲和专题讨论;有分组会议,DevOps 研讨会,演讲者问答会议,闪电谈话,网络,以及一个展厅,在那里你可以找到有用的 DevOps 工具,如 GitKraken!他们深入探讨了 DevOps 社区最感兴趣的主题,包括:获得业务支持、安全性和合规性、运营和下一代领导力、架构、面向技术领导者的技术以及体验报告。
**Pro 提示:[订阅 DevOps 企业峰会更新](http://devopsenterprise.us9.list-manage.com/subscribe?u=107e48e5339baba80bd60fc8c&id=1142edc7f3)** 。您将获得有关早期定价的更新,如果您无法参加,您将能够观看会议直播,或者视频和幻灯片将在会后发布!
**地点:**加利福尼亚州旧金山
**费用:**745-1895 美元
**日期:**2018 年 7 月 23 日-27 日
Node Summit 是专门关注 Node.js 的最大会议,Node 旨在构建可扩展的网络应用,Node.js 的包生态系统 npm 是世界上最大的开源库生态系统。Axosoft GitKraken 团队为 GitKraken 使用了原生节点模块 **[NodeGit](http://www.nodegit.org/)** ,是其主要贡献者之一。
在节点峰会上,你将有机会与专家和思想领袖交流;Node 峰会的与会者包括一些世界上最优秀的 Node.js 工程师,以及技术高管,商业领袖,节点爱好者,工程师和投资者。你会听到来自谷歌、推特、微软、NodeSource 和 Node.js 等公司的专家的演讲。
**地点:**纽约
**费用:**99-299 美元
**日期:**2018 年 5 月 4-5 日
编码新手?让我们向您介绍 CodeNewbie:最支持开发人员学习编码的社区。他们制作技术播客、twitter 聊天、活动,你猜对了——code land!Codeland 是有意悠闲,负担得起,并欢迎新手。本次活动的组织者强调灵感和包容性是解决问题的重要组成部分。
有实用的规划讲座,主题包括使用辅助项目来建立你的作品集,为开源做贡献,以及制定你的个人学习策略。你不会想错过实践研讨会,在那里你可以解决技术和非技术的编码项目。
**Pro 提示:** GitKraken 是一款面向 Windows、Mac 和 Linux 开发者的 Git GUI 客户端。如果您是 Git 新手,并且还在掌握 Git 操作和命令是如何工作的,那么这是一个很好的工具。跳过记忆一堆命令和 **[的耗时过程,免费下载 git kraken](https://www.gitkraken.com/)**!
**地点:**内华达州拉斯维加斯
费用:【1,799 美元
**日期:**2018 年 11 月 26 日-30 日
**详情:**本次发布会声势浩大!AWS re:Invent 是由 Amazon Web Services 为全球云计算社区主办的学习会议。该活动包括主题演讲、培训和认证机会。预计将有超过 30,000 名开发人员、系统管理员、系统架构师和技术决策者参加,这意味着将有超过 1,000 场分组会议、多个黑客马拉松、训练营、研讨会以及更多获得 AWS 专家实践经验的方式。
不可能每节课都参加;不要有压力!一些最受欢迎的深潜活动不止一次被安排在日程上,其他活动将被安排到其他场馆的其他房间。今年,每场会议 75%的座位可以预定,另外 25%的座位是留给无预约的与会者。尽量提前预定你不想错过的课程的座位!会议按轨道、级别、角色、标签、日期、演讲者等进行分类。
您还可以收听**[【www.twitch.tv/aws】](https://www.twitch.tv/aws)**的直播主题演讲、对 AWS 专家和社区领袖的采访以及新产品发布演示。
远程得不到的是优质的联网时间!确保利用会议时间与其他与会者、演示者和供应商交流。展厅是一个寻找问题解决方案的好地方,这些问题可能是你在会议前或会议期间发现的。请记住,您将是可能经历相同挑战的开发人员之一。
另外,这是拉斯维加斯!将会有无数的乐趣;玩扫帚球,参加再玩派对,健身训练营,Tatonka 挑战,酒吧爬行等等。
**专业提示:**无论你是否能参加 AWS re:Invent, **[收听直播流](https://pages.awscloud.com/reInvent-2017-live-stream-registration.html)** 从你的家、酒店或办公室收听主题演讲;这样你就能得到一个更好的座位。如果所有这些都失败了,大多数会议都会被录制下来,在会议结束后可以在 YouTube 上看到。
# 2019 年顶级技术会议
> 原文:<https://www.gitkraken.com/blog/top-tech-conferences-2019>
如果你还没有,现在是时候评估你 2019 年的职业发展计划了,包括你将参加哪些教育活动并支付费用。如果你在科技行业,毫无疑问,今年你的愿望清单上至少有一个大型会议。
有这么多的选择,每年都有新的事件出现,在做决定之前仔细研究一下最重要的选择是很重要的。
好消息!我们已经为你做到了。GitKraken 团队要求我们的全球网络使用标签 [#TopDevConferences](https://twitter.com/search?q=%23TopDevConferences&src=typd) 分享他们今年计划参加的会议。我们为你精心挑选了前 10 名。👀🙌
**地点:** [海岸线圆形剧场](http://www.mountainviewamphitheater.com/)——加州山景城
**一般活动信息:** Google I/O 将来自世界各地的开发人员聚集在一起,观看 Google 的最新开发产品和实践培训研讨会。
**价格:**375-1150 美元
**提前截止日期:**这个会议非常独特,因为你必须申请购买门票。抽奖活动从 2 月 21 日持续到 2 月 27 日,获奖者在 2 月 28 日收到通知。
**可享受的折扣:**高中或高等教育机构的全日制学生、教授、教职员工可享受 375 美元的折扣价。
**专业提示:**谷歌在开放门票登记和公开分享全部活动信息之前,还会发布一个[挑逗谜题](https://events.google.com/io/transmission/)。据报道,任何解开这个谜题的人都会得到一张免费的门票。
是什么让这次会议与众不同?这一活动真实地展现了全球最具影响力的科技巨头之一。在整个会议期间,办公时间和应用程序评论都是可用的,让与会者有机会与谷歌专家一对一会面。
> GitKraken 最近参加了这个活动,玩得很爽!强烈推荐。
**地点** : [奥克兰会议中心](http://www.oaklandconventioncenter.com/)–加州奥克兰
**一般活动信息:**旧金山湾区 DevWeek 是世界上最大的会议之一,预计将有 8,000 名开发人员、工程师、经理、软件架构师等参加。
**价格**:50-995 美元
可用折扣:学生和政府雇员可享受 30%的折扣,三人或三人以上的团体可享受 25%的折扣。
**专业学分/培训** : [DevCareer 峰会](http://www.developerweek.com/conference/devcareer-summit/)——这部分活动探讨了成为一名高级开发人员、架构师、产品经理、开发经理或 CTO 需要什么。
招聘机会 : [招聘博览会](http://www.developerweek.com/hiring-expo/)——旧金山最大的招聘博览会于 2 月 20 日举行,对所有应聘者免费。大约 1000 名可雇佣的开发人员参加了会议。
是什么让这次会议与众不同?旧金山湾区 DevWeek 的各种主题使本次活动脱颖而出。轨道包括侧重于:开发商销售和营销;开发者管理;人工智能发展;微服务和容器设计;区块链发展;虚拟现实和三维软件;编码语言的趋势;网络基础设施的创新;移动网络和跨平台开发;DevOps,新的数据库技术和开发工具。
点击此处查看有关会议赛道[的更多信息。](http://www.developerweek.com/conference/conference-tracks/)
【2019 年新消息 : [DevExec World](http://devexecworld.com/?_ga=2.100871746.2125053484.1545230990-1590196343.1544041962) 于 2 月 20 日至 22 日举行,为期两天,专为技术高管和领导者设计。它的特点是同行协作、招聘和留住人才的指导、有效的产品管理和团队技能发展。
你错过了二月份的活动吗?DevWeek 还在纽约和奥斯汀举办活动。DevWeek NYC 2019 的日期是 6 月 18 日至 20 日,DevWeek Austin 2019 的日期尚未公布。
**地点:** [McEnery 会展中心](https://www.sanjose.org/convention-center)–加州圣何塞
**一般活动信息:**苹果每年都会举办这项活动,邀请世界各地的开发者参加,了解新产品和开发工具。
苹果尚未发布关于今年活动的全面信息,但[MacRumors.com](https://www.macrumors.com/roundup/wwdc/)猜测 2019 年大会的主题如下:
价格:【1,599 美元
**注册截止日期:**本次活动不提供早鸟价格,购票机会随机提供。2019 年活动的注册尚未发布,但我们预计它将于 3 月开始。
**3 月 15 日更新**:WWDC 2019 现已开放报名!感兴趣的人可以在 3 月 20 日之前通过 [WWDC 网站](https://developer.apple.com/wwdc19/)申请参加。
据报道,苹果为申请的学生和 STEM 组织提供机票和住宿奖学金。2018 年,有希望的获奖者通过在 Swift Playgrounds 创建互动场景来争夺门票。我们预计 2019 年将面临类似的挑战和过程。
是什么让这次会议与众不同?类似于谷歌 I/O 的精神,WWDC 对苹果的产品、发展战略和领导力提供了深入的见解。该活动还提供了与顶级苹果工程师一对一的研讨会。
**What makes this conference unique? **Akin to the spirit of Google I/O, WWDC provides an intimate view into Apple’s products, development strategies, and leadership. This event also offers one-on-one workshops with top Apple engineers.
**地点:** [圣地亚哥海湾希尔顿酒店](https://www3.hilton.com/en/hotels/california/hilton-san-diego-bayfront-SANCCHH/index.html)–加州圣地亚哥
**一般活动信息:**该活动是北美展示开源社区的重要会议。开发人员、架构师、技术人员和其他行业领导者参加会议,共同协作并了解最新、最具创新性的开放式解决方案。
活动组织者将三个会议——Linux con、ContainerCon 和 cloud Open——合并在一个保护伞下:开源峰会。
**价格:** $800-$1200
**早鸟截止日期:** $800 早鸟定价于 5 月 20 日结束;950 美元的标准定价将于 7 月 22 日结束;7 月 23 日起,晚定价为 1,200 美元。
**折扣:**本次活动提供以下折扣选项,价格为 275 美元:
**大厅通行证**:参加主题演讲、赞助商展示、每日早餐和休息,以及与会者现场接待。
* **学术**:全日制学生和教职工。需要有效的 id。
* **爱好者**:如果你自己付费,并且活跃在 Linux 社区。这些通行证的数量有限;有意者可通过电子邮件向 events@linuxfoundation.org[提出申请。](mailto:events@linuxfoundation.org)
* **Hobbyist**: If you are paying for yourself and are active in the Linux community. There are a limited number of these passes available; interested parties can apply by emailing [events@linuxfoundation.org](mailto:events@linuxfoundation.org).
非营利专业人士也可以在整个活动的注册价格上获得 20%的折扣。要获得折扣代码,请发送电子邮件至[events@linuxfoundation.org](mailto:events@linuxfoundation.org)。
是什么让这次会议与众不同?这个活动是专门为连接开源生态系统而设计的,特别关注 Linux 系统。主题将集中在开源和开放协作的最新趋势,包括 DevOps 文化,技术如何塑造云的未来,以及容器如何帮助推动云原生方法。
**What makes this conference unique? **This event is specifically designed to connect the open source ecosystem, with particular attention on Linux systems. Topics will focus on the latest trends in open source and open collaboration, including DevOps culture, how technology is shaping the future of cloud, and how containers are helping to drive cloud-native approaches.
**地点:** [奥兰治县会议中心](https://www.occc.net/)–佛罗里达州奥兰多
**一般活动信息:**微软 Ignite 采用最新的工具和技术塑造云、团队合作、生产力和智能的未来。该活动面向 IT 和数据专业人员以及企业开发人员。
**价格:**本次活动目前已开放预注册,但价格细节尚未公布。
**专业学分/培训:**本次活动中最受欢迎的功能之一是学习实验室,它提供与微软专家就 365、Azure、Dynamics 365 等进行深入互动的会议。
在整个活动期间,微软将提供总共 100 个由讲师指导的研讨会和 50 多个实践培训实验室。
是什么让这次会议与众不同?与会者可以亲自听取专家的意见。没错,教你产品知识的人实际上就是制造产品的人。多酷啊。!
11 月去不了奥兰多?微软 Ignite 要巡演了!查看这份[活动清单](https://www.microsoft.com/en-us/ignite-the-tour?ocid=AID740948_QSG_277878),看看 Ignite 是否会来到你附近的城市。
**What makes this conference unique? **Attendees can hear from the experts themselves. That’s right, the people teaching you about the products are actually the people who built them. How cool is that?!
Can’t make it to Orlando in November? Microsoft Ignite is going on tour! Checkout this [list of events](https://www.microsoft.com/en-us/ignite-the-tour?ocid=AID740948_QSG_277878) to see if Ignite is coming to a city near you.
**地点:** [柏林竞技场](https://www.arena.berlin/en/contact/)——德国柏林
**一般活动信息:**这是欧洲最大的 JavaScript 社区会议之一,将举办关于 GraphQL、DevOps、Node.js、渐进式 web 应用、机器学习以及 React、Vue 和 Angular 等 JavaScript 框架的教育会议。
**价格:** $900-$967
**早期截止日期:**900 美元的常规定价于 2 月 27 日结束;此后,每隔一周价格就会上涨约 10 美元,直到 3 月 22 日价格达到 967 美元。点击查看完整的销售时间表[。](https://2019.jsconf.eu/news/ticket-sale-schedule/)
**折扣优惠:**来自代表性不足群体的申请人可获得奖学金。未来的申请人可以在这里找到申请[的信息和说明](https://2019.jsconf.eu/scholarships/)。
是什么让这次会议与众不同?这是一个非盈利性的活动,被 JavaScript 社区自豪地吹捧为一次爱心工作会议。为期两天的活动包括 45 场关于各种 JavaScript 主题的会议。
六月份去不了德国?JSConf 提供世界各地的各种会议,包括美国的活动([卡尔斯巴德](https://2019.jsconf.us/)、[火奴鲁鲁](https://www.jsconfhi.com/)、[布达佩斯](https://jsconfbp.com/)、[阿根廷](https://www.jsconfar.com/)、[巴西](http://2014.jsconfbr.org/)、[哥伦比亚](https://jsconf.co/#home)、[新加坡](https://2019.jsconf.asia/)、[冰岛](https://2018.jsconf.is/)、[比利时](https://www.jsconf.be/en)、[中国](https://2017.jsconfchina.com/)等等。
**What makes this conference unique? **This is a not-for-profit event and is touted proudly as a labor-of-love conference presented by the JavaScript community. The two-day event features 45 sessions on a variety of JavaScript topics.
Can’t make it to Germany in June? JSConf offers a variety of conferences around the world, including events in the US ([Carlsbad](https://2019.jsconf.us/), [Honolulu](https://www.jsconfhi.com/)), [Budapest](https://jsconfbp.com/), [Argentina](https://www.jsconfar.com/), [Brazil](http://2014.jsconfbr.org/), [Columbia](https://jsconf.co/#home), [Singapore](https://2019.jsconf.asia/), [Iceland](https://2018.jsconf.is/), [Belgium](https://www.jsconf.be/en), [China](https://2017.jsconfchina.com/), and more.
**7️⃣**[**pycon**](https://us.pycon.org/2019/)**——5 月 1 日-9 日**
### **地点:** [亨廷顿会议中心](https://www.clevelandconventions.com/)–俄亥俄州克里夫兰
**一般事件信息:** PyCon 声称是“使用和开发开源 Python 编程语言的社区最大的年度聚会”
活动的前两天被标记为辅导日,由三个小时的强化课程组成。会议的中间三天包括预定的会谈、赞助商博览会、与会者可以为个人和合作使用定制的开放空间、闪电会谈等等。最后,剩下的四天包括开发冲刺,社区可以聚集在一起协作开发。
**价格:** $125-$700
可用折扣:如果你自费参加,折扣率为 400 美元,学生的费用为 125 美元。
需要额外财政援助的当事人可以在本页的[上申请财政援助。](https://us.pycon.org/2019/financial-assistance/)
是什么让这次会议与众不同?该会议由 501(c)(3)组织制作和资助,因此与类似规模和性质的会议相比,他们能够保持相对较低的成本。
作为 2019 年大会的一部分,PyCon 正在为致力于通过 Python 提高编码素养的教师和教育工作者举办 [Python 教育峰会](https://us.pycon.org/2019/events/edusummit/#!)。峰会的目标是将志同道合的教育工作者聚集在一起,分享改善全球 CS 培训的最佳实践和策略。
**What makes this conference unique? **This conference is produced and funded by a 501(c)(3) organization, so they are able to keep their costs comparatively lower than similar conferences of this size and nature.
As part of the 2019 conference, PyCon is hosting the [Python Education Summit](https://us.pycon.org/2019/events/edusummit/#!) for teachers and educators dedicated to enhancing coding literacy through Python. The goal of the Summit is to bring like-minded educators together to share best practices and strategies for improving CS training worldwide.
**8️⃣** [**码头工人**](https://www.docker.com/dockercon/)**——4 月 30 日-5 月 2 日**
### **地点:** [莫斯康中心](http://www.moscone.com/site/do/index)–加州三藩市
**一般活动信息:**开发人员、系统管理员、架构师、IT 专业人员等齐聚一堂,参加为期三天的活动,投资他们的容器化技能。
**价格:**1350-1600 美元
早期截止日期:1,350 美元的价格在 4 月 15 日之前一直有效,直到它升至 1,600 美元。
可用折扣:学生可以享受折扣价格。学生可以发电子邮件给 DockerCon@Docker.com[并提供有效的学生证来获得折扣。](mailto:DockerCon@Docker.com)
**专业学分/培训:** DockerCon 提供培训课程,可在您的会议注册之外购买,每次 100 美元。每门课程为期两天,由码头讲师授课。你可以在这里找到更多关于[主题的信息。](https://www.docker.com/dockercon/training/)
是什么让这次会议与众不同?这是专门针对集装箱行业和集装箱技术的第一次会议。
**What makes this conference unique? **This is the #1 conference specifically focused on the container industry and container technology.
**地点:**在线
**一般活动信息:**作为他们的[欧洲](https://laracon.eu/2018/)和[美国](https://laracon.us/)会议的替代方案,Laracon 为他们的全球网络提供了一个极其实惠和方便的参加全天数字活动的选择。
Laravel 更具创造性和创新性的领导者和技术专家将参加讲座。最精彩的部分?一切都将被记录下来,并在 3 月 6 日之后可供访问。
**价格:** $25
是什么让这次会议与众不同?毫无疑问,价格和位置让这个活动脱颖而出。每人只需 25 美元,并且可以从世界上任何有互联网连接的地方访问,对于任何使用 [Laravel 框架](https://laravel.com/)的开发人员来说,Laracon Online 是一个显而易见的工具。
想和朋友一起看?查看这个[派对列表](https://laracon.net/#parties)看看你所在的城市是否有派对,或者你自己举办一个!
**What makes this conference unique? **Certainly the price and location make this event standout. At just $25 a head, and accessible from anywhere in the world with Internet connection, Laracon Online is a no-brainer for any devs working with the [Laravel framework](https://laravel.com/).
Want to watch with friends? Checkout this [list of viewing parties](https://laracon.net/#parties) to see if there’s one in your city, or host one yourself!
**地点:** [华盛顿州会议中心](https://www.wscc.com/)–华盛顿州西雅图
**一般活动信息:**这是微软面向开发者的首要活动,将涵盖应用开发、云、人工智能、数据、物联网等主题。
价格:2395 美元
是什么让这次会议与众不同?如果你是微软开发者网络的一员,或者是在 Windows 平台上进行开发,你很难不去参加这个活动。Microsoft Build 是为开发人员而创建和制造的,具有高度特定的内容。
**What makes this conference unique? **If you’re part of the Microsoft Developer Network or develop on a Windows platform, it would be hard to justify missing this event. Microsoft Build is created and manufactured with the developer in mind and has highly-specific content.
**GitKraken 2019 年度状元**
### 我们很高兴从我们的网络中听到您今年计划参加的会议和活动!我们 2019 年的前四名如下。
附:如果您打算参加这些会议中的任何一个,我们强烈建议您找到 GitKraken 展台并打个招呼!我们总是有有趣的北海巨妖赃物。
这在今年的社区策划排行榜上名列第二,我们对此表示赞同!DevWeek 对于从初学者到高级的不同阶段的开发人员来说都是一件大事。
This made #2 on the community-curated list this year, and we agree! DevWeek is a great event for developers at a variety of stages, from beginner to advanced.
DevOps World | Jenkins World 是一个面向专注于持续交付的 IT 高管和专业人士的专业会议。主题为与会者提供了学习、探索和帮助塑造开发者运营(DevOps)未来的机会。
DevOps World | Jenkins World is a specialized conference targeting IT executives and professionals focused on continuous delivery. Topics give attendees the opportunity to learn, explore, and help shape the future of Developer Operations (DevOps).
另一个 DevOps 重点活动 DOES 面向大型组织的 DevOps 实践者。与会者有望了解到在更大范围内实施广泛的运营变革所需的不断发展的方法。
Another DevOps focused event, DOES, targets DevOps practitioners of large organizations. Attendees can expect to learn about the evolving methods needed to implement widespread operational change on a larger scale.
GitHub Universe 被吹捧为一个庆祝“推动技术进步的人和项目”的会议,是一个非常有趣、独特的活动。组织者在创造身临其境的体验方面做得很好,感觉更像一个节日而不是一次会议。
Touted as a conference that celebrates the “people and projects that push technology forward,” GitHub Universe is a really fun, unique event. The organizers do a great job of creating an immersive experience that almost feels more like a festival than a conference.
但是不要被色彩和灯光所吓倒;演讲者跟踪和研讨会为软件开发生态系统中的任何人提供了极好的培训。我们希望这篇文章能提供丰富的信息,帮助你决定今年去哪里旅游和学习。现在向前迈进,规划你 2019 年的职业发展投资吧!
But don’t be deterred by the colors and lights; the speaker tracks and workshops provide excellent training for anyone contributing to the software development ecosystem.We hope this article has proven informative and will help you decide where to travel and learn this year. Now go forth and plan your professional development investments for 2019!
# 什么是基于主干的开发?Git 分支策略
> 原文:<https://www.gitkraken.com/blog/trunk-based-development>
这篇文章是由一位客座作者写的。
当有许多软件开发人员在同一个项目上工作时,跟踪单个变更和以前的版本是至关重要的,尤其是当它有助于防止减缓开发和部署过程的冲突时。对于世界上大多数的开发团队来说,Git 是组织文件和软件版本的首选系统。
从项目开始,您的团队应该选择一个开发策略,并确保所有团队成员在他们的工作流程中一致地应用它。选择正确的策略取决于几个因素,包括团队规模、您正在开发的软件的复杂性以及您已经在使用的其他工具。您还应该考虑您的团队更喜欢如何合作,以及单个团队成员的专业知识和经验。
本文将重点介绍基于主干的开发,包括好处和最佳实践,以及一些流行的 [Git 分支策略](https://www.gitkraken.com/learn/git/best-practices/git-branch-strategy) : [Gitflow](https://www.gitkraken.com/blog/gitflow) ,GitHub flow 和 GitLab flow。
手头拥有合适的工具是任何开发策略的关键部分。GitKraken 客户端支持成功的 Gitflow 工作流、基于主干的开发等。
## 什么是基于主干的开发?
基于主干的开发在方法上与最流行的 Git 分支策略明显不同。基于主干的开发不依赖于特性分支,而是让每个开发人员在本地独立地处理他们的项目,然后至少每天一次将他们的变更合并回主分支(主干)。无论功能更改或添加是否完成,合并都必须发生。
李雅达·斯科特在为 HackerNoon 撰写的一篇文章中总结了如何使用 Git 进行基于[主干的开发:](https://hackernoon.com/a-guide-to-git-with-trunk-based-development-93a350c)
> “……我们需要以不同于您可能习惯的方式来处理事情。我们仍然希望将一些操作与提交联系起来,但不会有太多不同的概念——我们只想做与我们正在工作的代码库相关的事情。相反,我们可以将该操作限制为发布我们正在工作的项目的新版本化工件。”
在另一篇文章中,本·莫里斯解释道:
> “基于主干的开发不仅仅是一种分支策略。这是一组有助于实现更高效开发的技术。
>
> 团队通过*抽象*使用*分支*来分离大规模特性的工作。抽象层隔离正在进行的工作,并允许功能的多种实现存在于同一个代码库中。尽管一个系统包含了多个不完整的特性,它仍然可以安全地从主干中释放出来。"
## 基于主干的开发的好处
基于主干的开发策略没有传统的 Git 分支策略复杂,因为它们通常涉及更少的分支和更少的 [Git 合并冲突](https://www.gitkraken.com/learn/git/tutorials/how-to-resolve-merge-conflict-in-git)的风险。基于主干的开发也非常适合在 CI/CD 方法中使用,因为主干是可持续部署的。
定期更新为整个团队提供了项目变更状态的更大可见性。因此,团队可以更快地识别和解决潜在的合并问题。与 Gitflow 相比,在 git flow 中,合并之间可能会经过很长时间,从而增加了冲突的机会,基于主干的开发限制了冲突的风险。使用基于主干的开发,陷入合并地狱的可能性要小得多。
在基于主干的开发中,协作发生在主干上,而不是在单独的功能分支上。然而,团队成员必须不断合作,以防止问题影响主干。总的来说,协作水平需要很高,所有团队成员必须不断地一起朝着下一个目标努力。
GitKraken Client 的设计考虑到了团队协作,为您喜欢的任何工作流程提供了更少的上下文切换、更好的通信和无缝流程。
由于其敏捷的本质,[基于主干的开发](https://trunkbaseddevelopment.com/)在当今的容器和微服务密集型开发环境中也非常有用。
## 基于主干的开发的缺点
当然,基于主干的开发并不是没有问题。基本上,基于主干的开发比传统的 Git 分支策略更复杂,因此需要更高级的开发技能。
正如 Ben Morris 在他的文章 [*中解释的,为什么基于主干的开发不适合所有人*](https://www.ben-morris.com/why-trunk-based-development-isnt-for-everybody/) :
> “尽管基于主干的开发可以减少合并冲突,但它不一定会减少管理并发特性开发的复杂性。从某种意义上来说,您只是将这种复杂性重新分配给了下游的其他流程,如代码设计和应用程序配置。”
年轻的开发人员可能对使用基于主干的开发缺乏信心,因为变更直接进入主干,而不是像其他基于 Git 的策略那样需要中间阶段。这种担心是有充分理由的。由缺乏经验的开发人员注入主干的问题会导致重大的部署问题。因此,当你有经验丰富的开发人员的小团队时,基于主干的开发策略是最好的。
基于主干的开发也不太能跟踪个体的变化。Gitflow 是高度组织化的,对每个特性使用单独的分支,而基于主干的策略将所有的变更都转储到主分支,不管它们的状态如何。可能更容易丢失单个部件的轨迹。
您可以使用 [GitKraken Client](https://www.gitkraken.com/git-client) 提升团队的 Git 体验,这是一款让初级开发人员和专家都能提高生产力的工具,包括 [Learn Git](https://www.gitkraken.com/learn/git) 资源将帮助初学者快速增长知识。
## 基于主干的开发最佳实践
如前所述,拥有高级开发技能的小型团队在基于主干的开发策略中会有更好的成功机会。
您还需要确保您有一个可以支持特性抽象的代码库,并且您准备好了特性标志的解决方案。
最后,投资于一个持续的构建和测试基础设施,以及能够适应高提交率的审查和发布的简化流程。
## 流行的 Git 分支策略
与基于主干的开发相比,以下 Git 分支策略是使应用程序拥有多个并行开发路径更简单、更不容易出错的工作流。Git 中更直接的分支策略可以帮助个体开发人员了解如何将他们的更改集成到代码的主要生产版本中。
精心选择的 Git 分支策略为开发团队提供了许多潜在的好处,包括:
* 简化并行开发
* 促进高效的团队协作
* 为将变更集成到生产代码中提供清晰的开发工作流
* 最小化 Git 合并冲突
* 限制在产品代码中引入错误
* 为新版本提供简化的路线图
最流行的 [Git 分支](https://www.gitkraken.com/learn/git/branch)策略包括:Gitflow、GitHub flow、GitLab flow。
Gitflow
## Gitflow 一直是使用 Git 的[团队最流行的分支策略之一。该策略总共使用了五种不同的分支类型:两种主要分支——*主要分支*和*开发分支*——以及三种特殊用途分支,如*功能*、*发布*和*热修复*。Gitflow 中的主分支使用标签来标识具体的生产版本(如下图所示的 0.1、0.2、1.0)。开发分支是从标记的主分支版本中克隆出来的。](https://www.gitkraken.com/git-client/team-features)
使用 Gitflow,许多开发人员可以并行工作,在发布新的候选功能之前在功能分支内协作。因为 Gitflow 使用一个单独的沙盒暂存区来发布,它可以帮助开发团队确保只有经过验证的功能才能投入生产。独立的发布分支也允许团队轻松地将[设计安全原则](https://www.atlantic.net/hipaa-compliant-hosting/post-pandemic-top-cybersecurity-threats-to-healthcare-security/)集成到开发过程中。
特殊目的分支是从开发分支创建的,并且多个特殊目的分支可以同时存在。虽然主分支和开发分支是永久性的,但是特性分支通常只在完成特定任务所需的时间内存在,这可能是几天、几周甚至几个月。
团队在功能分支中直接合作。当他们完成一个特性的开发时,他们将它合并回开发分支。合并新功能没有固定的时间表——根据需要进行合并。
除了功能分支之外,开发人员还可以使用热修复分支来快速解决生产代码中的问题。与功能分支不同,修补程序分支是从主分支延伸出来的。然而,开发人员必须记住将完成的修补程序合并到主分支和开发分支中。
开发团队可以从开发分支中克隆一个发布分支。发布分支充当新发布候选的测试和 QA 沙箱。与热修复分支一样,发布分支中的最终修改必须合并到主分支和开发分支中。
Gitflow 的创建者 Vincent Dreissen 创建了一个有用的[摘要概览图](https://nvie.com/posts/a-successful-git-branching-model/),展示了 Gitflow 的各个分支以及它们之间的关系:
Gitflow 的创建者 Vincent Dreissen 创建了一个有用的[摘要概览图](https://nvie.com/posts/a-successful-git-branching-model/),展示了 Gitflow 的各个分支以及它们之间的关系:
From *A successful Git branching model* by Vincent Driessen
在 GitKraken 客户端中设置 Gitflow 工作流程需要 3 个步骤。看⬇️对自己来说有多容易
在 GitKraken 客户端中设置 Gitflow 工作流程需要 3 个步骤。看⬇️对自己来说有多容易
Gitflow 与基于主干的开发
## 凭借其高度组织、良好定义和良好分离的结构,Gitflow 可以很容易地了解项目在任何给定时间发生了什么。然而,众多分支的增加增加了合并冲突的风险。而且团队越大,将问题引入主代码库的风险就越大。
因为 Gitflow 策略要求开发人员在代码投入生产之前执行许多不同的提交,所以项目历史可能变得难以分析。通过复杂的分支和提交网络跟踪错误可能会非常耗时且令人沮丧。事实上,即使 Gitflow 旨在加速开发,如果单个开发人员缺乏对如何在他们的工作流程中正确实施策略的理解,成功将是不太可能的。
如果你的团队确实需要对他们的项目历史有更多的了解,一个健壮但易于使用的 Git GUI(如 GitKraken Client)可以为每个技能水平的开发人员带来巨大的不同。在 GitKraken 客户端中设置 [Gitflow 非常简单直观,只需要 3 个步骤。](https://help.gitkraken.com/gitkraken-client/git-flow/)
如果你的团队确实需要对他们的项目历史有更多的了解,一个健壮但易于使用的 Git GUI(如 GitKraken Client)可以为每个技能水平的开发人员带来巨大的不同。在 GitKraken 客户端中设置 [Gitflow 非常简单直观,只需要 3 个步骤。](https://help.gitkraken.com/gitkraken-client/git-flow/)
*Setting up Gitflow preferences in GitKraken Client*
当团队想要实现[持续集成](https://www.gitkraken.com/blog/what-is-continuous-integration)/持续交付(CI/CD)工作流时,Gitflow 的复杂性质和缺乏对主分支提交的定义时间也使得它不适合。就其本质而言,持续集成是基于对主分支的代码变更的定期合并。另一方面,如果您的项目允许较长的部署间隔,那么 Gitflow 可能是一个很好的选择。
同样,连续交付需要立即投入生产的能力。然而,在 Gitflow 中,开发人员必须创建一个发布分支,将其合并到主分支和开发分支中,并在变更进入生产之前在主分支中标记新的生产版本。Gitflow 实际上更鼓励不连续的交付过程,而不是连续的。
GitHub 流
GitHub flow 是 Gitflow 的简化版本,取消了开发和发布分支。相反,特性分支直接来自于主分支。
## 使用这种策略,开发人员将变更提交到特性分支,并在那里测试它们。只有在做出 go 决策后,开发人员才会将功能分支合并到主分支中。
因为 [GitHub](https://www.gitkraken.com/integrations/github) flow 缺少 Gitflow 的中间分支,历史更容易跟随。与 Gitflow 不同,GitHub flow 可以轻松集成到 CI/CD 管道中。
GitHub 流的一个缺点是,在将功能更改合并到主分支之前,如果没有充分测试这些功能更改,可能会导致错误和不稳定的产品版本。
因为它是轻量级的,并且比其他 Git 分支策略更快,所以 GitHub flow 对于应用敏捷开发原则的小型团队来说非常有效。然而,随着团队规模的增加,GitHub flow 失去了其有益的品质。
GitLab Flow
Gitflow 的另一个简化版本, [GitLab](https://www.gitkraken.com/integrations/gitlab) flow 在将变更合并回主分支并投入生产之前,使用预生产分支来测试变更。GitLab flow 专注于问题跟踪,当新特性被合并到主分支时,构建有用的历史。和 GitHub 流一样,GitLab 流在使用 CI/CD 时更可行。
## 基于主干的开发适合你吗?
基于主干的开发和其他分支策略都有它们擅长和落后的地方。幸运的是,如果您的需求或环境在项目过程中发生了变化,可以从一种策略切换到另一种策略。
在整个软件开发生命周期中跟踪变更和版本是一项至关重要但并不简单的任务。最终,基于主干的开发和流行的 Git 分支策略应该为开发人员提供确保健壮、稳定的产品版本所需的工具,同时允许他们根据需要频繁地部署变更。
## 与大多数工具一样,没有“一刀切”的解决方案考虑您的开发团队的组成和每个特定项目的需求,以决定哪条道路适合您。如果你一开始没有成功,那就换一种方法。真的就这么简单。
基于主干的开发和其他分支策略都有它们擅长和落后的地方。幸运的是,如果您的需求或环境在项目过程中发生了变化,可以从一种策略切换到另一种策略。
无论您选择哪种策略,拥有帮助您可视化和理解代码库的工具将有助于您的团队成功和扩展。br >
与大多数工具一样,没有“一刀切”的解决方案考虑您的开发团队的组成和每个特定项目的需求,以决定哪条道路适合您。如果你一开始没有成功,那就换一种方法。真的就这么简单。
无论您选择哪种策略,拥有帮助您可视化和理解代码库的工具将有助于您的团队成功和扩展。br >
# Git 教程|学习 Git
> 原文:<https://www.gitkraken.com/learn/git/tutorials>
**如何 Git 分支**
观看这个 Git 初学者教程视频,了解更多关于 Git 中的分支,如何删除 Git 分支,如何创建和重命名 Git 分支,以及切换 Git 分支。
# 撤销 Git 提交|如何撤销最后一次 Git 提交?
> 原文:<https://www.gitkraken.com/learn/git/problems/undo-git-commit>
即使对于更有经验、更勤奋的开发人员来说,在使用 Git 库时也会出错。那么当你在 Git 中犯了一个错误之后,最好的步骤是什么呢?嗯,那要看情况。
根据手头的情况,修复错误的最佳方法可能是全部撤销。但是请注意:如果您不小心,试图用错误的方式修复错误可能会导致您丢失重要的工作,引入代码冲突等等。
幸运的是,Git 确实提供了一些工具来帮助您撤销新提交引入的错误。让我们先看看在 [GitKraken Git 客户端](https://www.gitkraken.com/git-client)中撤销 Git 提交的所有选项,在查看 [CLI](https://www.gitkraken.com/cli) 中的过程之前,先看看 GUI。
“谢谢@GitKraken 的撤销功能,不小心丢弃了我所有的更改,但现在它们又回来了😃"–[@ offset 1337](https://twitter.com/offset1337/status/1107615811181658118)
## 你需要撤销 Git 提交吗?
在您开始撤销 Git 提交之前,您应该确保您真的想要*撤销*某个东西,而不仅仅是修复或编辑某个东西。如果您确实需要编辑您的最后一次提交,您可以[修改 Git 提交](https://www.gitkraken.com/learn/git/problems/git-commit-amend)。修改 Git 提交允许您纠正以前的提交消息,并向它添加更多的更改。
## **撤销上一次 Git 提交**
假设您提交了错误的文件,但是您还没有将代码更改推送到您的 [Git remote](https://www.gitkraken.com/learn/git/git-remote) 中,因此您需要 Git 撤销本地提交。如何从本地 Git 存储库中撤销最后一次提交或一组提交?
## **撤销 GitKraken 中的最后一次 Git 提交**
当你在 GitKraken 犯了一个错误时,解决方案只需点击一下。如果您在上次提交时犯了错误,并且希望在推送之前撤销上次 Git 提交,您可以简单地点击 UI 顶部工具栏上神奇的`Undo`按钮。
更好的是,如果您意识到您实际上不想撤销上一次 Git 提交,您可以单击`Redo`按钮来撤销您的撤销。
记住这一点很重要,如果你没有执行任何其他动作,使用`Undo`按钮可以撤销提交,但是假设你已经[创建了一个 Git 分支](https://www.gitkraken.com/learn/git/problems/create-git-branch)。在这种情况下,使用`Undo`按钮将撤销分支,而不是提交。
要在 GitKraken 中执行了另一个动作后撤销 Git 提交,必须使用 Git 重置特性。只需右击中间图形中的 commit,选择`Reset` - > `Soft`保留所有更改,或者选择->-`Hard`放弃更改,如果您确定将来不再需要它们的话。
无论您喜欢使用 GUI 还是 CLI,GitKraken 都可以使撤销操作(如撤销上次提交)变得简单而安全,因此您可以对自己的工作流程更有信心。
## **在 GitKraken CLI 中撤销上一次 Git 提交**
现在,让我们回顾一下如何使用 [GitKraken CLI](https://www.gitkraken.com/cli) 撤销您的最后一次 Git 提交。
**去重置**
## 与[恢复 Git 提交](https://www.gitkraken.com/learn/git/problems/revert-git-commit)相比,Git 重置允许您及时返回到特定的提交,并将您的活动位置重置为选定的提交。使用 Git 重置,您有两种选择:可以“软”重置 Git,也可以“硬”重置 Git。
与[恢复 Git 提交](https://www.gitkraken.com/learn/git/problems/revert-git-commit)相比,Git 重置允许您及时返回到特定的提交,并将您的活动位置重置为选定的提交。使用 Git 重置,您有两种选择:可以“软”重置 Git,也可以“硬”重置 Git。
如何撤销上一次提交并保留更改?
## 如果您想撤销上一次 Git 提交,但保留更改,软 Git 重置将达到目的。使用`--soft`标志将确保保留未完成修订中的更改。在执行软 Git 重置后,您可以在工作副本中找到这些未提交的本地修改。如果您使用的是 GitKraken CLI,只需输入:
如果您想撤销上一次 Git 提交,但保留更改,软 Git 重置将达到目的。使用`--soft`标志将确保保留未完成修订中的更改。在执行软 Git 重置后,您可以在工作副本中找到这些未提交的本地修改。如果您使用的是 GitKraken CLI,只需输入:
`$ git reset --soft HEAD~1`
`$ git reset --soft HEAD~1`
Git 重置应该小心使用。比方说,你回到了很久以前的某次犯罪。您一路传递的所有提交现在可能都以悬空状态结束,虽然它们存在,但是没有任何东西引用它们。如果您执行“硬”重置,您可能会丢失没有正确备份的工作。如果您确信不再需要这些更改,您应该只执行硬 Git 重置。
Git 重置应该小心使用。比方说,你回到了很久以前的某次犯罪。您一路传递的所有提交现在可能都以悬空状态结束,虽然它们存在,但是没有任何东西引用它们。如果您执行“硬”重置,您可能会丢失没有正确备份的工作。如果您确信不再需要这些更改,您应该只执行硬 Git 重置。
`$ git reset --hard HEAD~1`
`$ git reset --hard HEAD~1`
作为 Git 的最佳实践,您应该总是避免做任何需要强制推送的事情,这将重写您的主要分支的历史。
作为 Git 的最佳实践,您应该总是避免做任何需要强制推送的事情,这将重写您的主要分支的历史。
准备好使用 Git 革新您的工作流程吧,让 GUI 和 CLI 的强大功能触手可及,让您能够根据自己的喜好为每个操作选择最佳工具。
准备好使用 Git 革新您的工作流程吧,让 GUI 和 CLI 的强大功能触手可及,让您能够根据自己的喜好为每个操作选择最佳工具。
# 如何撤销 Git 合并?Git 问题的解决方案
> 原文:<https://www.gitkraken.com/learn/git/problems/undo-git-merge>
它发生在我们最好的人身上。您刚刚进行了代码更改,提交了它们,并将这些更改合并到您的主分支中。*乐喘气!事后你意识到你不应该做那件事。*
当这种情况发生时,您将需要一种方法来让您的主分支返回到它以前的状态。谢天谢地,Git 有这样的工具。
我们将首先展示如何使用跨平台 GitKraken Git GUI 撤销 Git 合并,然后讨论如何使用命令行撤销 Git 中的合并。
您过去是否进行过不恰当的合并,并且不确定如何修复它?GitKraken 使撤销合并和解决冲突变得直观,所以你不用太担心。
## 如何使用 GitKraken 撤销 Git 合并?
使用 GitKraken Git 客户端撤销 Git 合并非常简单且直观,因为您可以在同一个 UI 中查看 repo 中的每个分支。很容易识别何时发生了不适当的合并,并且只需点击几下就可以撤销。[立即下载#1 免费 Git GUI】并继续阅读以了解如何撤销 Git 合并。](https://www.gitkraken.com/download)
在 GitKraken 的中心图中,只需双击您的更改被错误合并的分支。这将[检验 Git 分支](https://dev2.gitkraken.com/learn/git/problems/switch-git-branch)。
在图形中查找上一个提交,或您希望重置为的另一个提交。然后从上下文菜单中选择`Reset <branch name> to this commit` > `Hard - discard all changes`。
现在,如果您已经将想要撤销的合并变更推送到您的远程存储库中,您可以右键单击合并提交并从上下文菜单中选择`Revert commit`。
然后会询问您是否想要立即创建一个提交。
一旦进行了新的提交以恢复您的合并更改,您可以通过从上下文菜单中选择`Push`将提交推送到远程存储库。
***GitTip:全面了解[如何在 Git](https://www.gitkraken.com/learn/git/problems/revert-git-commit) 中恢复提交,以及如何安全地修改历史记录。***
如果您刚刚开始使用 Git,撤销合并和恢复提交可能听起来很可怕,但是 GitKraken 使复杂的 Git 过程变得简单而安全。
## 如何在命令行中撤销 Git 合并?
与 GitKraken 不同,如果您已经将更改推送到遥控器,那么在 CLI 中撤销 Git 合并可能会有点麻烦。如果新的变更被添加到目标分支,这个过程也会变得复杂,因为您已经意识到需要撤销您的合并。GitKraken Git GUI 以清晰的布局提供了关于您的回购历史的详细可视上下文,使您更容易确定合并发生的时间,并允许您快速撤销合并,而不会冒进一步错误的风险。让看似复杂的撤销合并过程变得更容易、更安全:[现在就下载 GitKraken 它是免费的!](https://www.gitkraken.com/download)
在这个撤销 Git 合并的例子中,我们将回顾如何撤销 Git 合并的基本步骤,以及一些额外的步骤来处理更复杂的情况。
要在 CLI 中撤消 Git 合并,首先要检查您将更改合并到的分支。
```
git checkout <branch-name>
```
从这里开始,您将需要获得重置分支所需的提交的 ref。您将使用`git reflog`来完成这项工作。
```
git reflog show --all
```
在运行`git reflog`之后,您将识别您想要返回的提交,并复制提交 SHA。
此时,您需要验证您的合并提交还没有被推送到您的远程。如果是这种情况,您将使用`git reset`命令向前移动。
```
git reset --hard <merge-commit-sha>
```
***GitTip:如果您碰巧有任何未提交的更改,请确保在运行 Git reset 之前使用 [Git stash](https://dev2.gitkraken.com/learn/git/git-stash) 命令。***
## 如何在推送更改后撤销 Git 合并?
如果您已经将合并提交推送到远程存储库,您将需要进行新的提交来恢复更改。
```
git revert -m 1 <merge-commit-sha>
```
这将创建一个新的提交,该提交反转合并提交的更改。
使用传奇的 GitKraken Git 客户端,撤销 Git 合并的过程要简单得多,步骤也少得多—[Windows、Mac 和 Linux 免费下载](https://www.gitkraken.com/download)。
# Glo 板:更新闲置的任务和问题卡
> 原文:<https://www.gitkraken.com/blog/update-task-issue-glo-cards-slack>
像我们所有传奇的 GitKraken 开发工具一样, [Glo Boards](https://www.gitkraken.com/glo) 是专门为提高开发人员和团队的工作效率而设计的。虽然 Glo 总是让管理任务和问题变得快速而简单,但我们更进一步。
根据编码 San 的 [2019 年软件开发状态报告](https://codingsans.com/state-of-software-development-2019)显示,全球超过一半的开发团队在项目期间使用 Slack 进行交流。
虽然 Slack 是一个不可思议的沟通工具,但就其本身而言,它并不是一个方便的项目或任务管理工具。进入 [Glo 板松弛](https://gitkraken.slack.com/apps/AM9PQQN0M-glo-boards)。
**准备好开始了吗?现在用 Glo 板安装 Slack】**
## **Glo 板的松弛集成**
虽然 Glo Boards 一直通过浏览器、Visual Studio 代码、GitKraken Git 客户端、Atom 或 Glo 移动应用程序来方便地跟踪和管理问题,但我们的 Slack 集成为用户提供了更多动态更新任务的能力。
借助 Slack Glo 板,用户能够:
* 从松弛状态创建 Glo 卡
* 使用卡片链接在 Slack 中生成卡片预览
* 更新卡片受托人、标签和您当前在 Slack 中查看的卡片列。
## **从松弛状态创建 Glo 卡**
用户可以使用`/createcard`在 Slack 中轻松创建 Glo 卡,并在斜杠命令后注明所需的卡名。
您的卡片详细信息将在 Slack 中预览,允许您选择您希望这张新卡出现在哪个 Glo 板和栏中。点击`Create Card`按钮,瞧!您可以立即看到您的新 Glo 卡出现在 Glo 中的所需位置。
## **渲染松弛的 Glo 卡**
使用`/createcard`命令后,集成会立即生成新卡的 URL,并直接在 Slack 中的可视卡预览中展开。多酷啊。!
此外,您可以选择编辑 Slack 中的卡片详细信息,包括标签、受托人和指定列。从松弛调整的任何细节立即反映在 Glo 板中。
概括一下(因为这个功能实际上是非常独特和令人印象深刻的):我们不仅向您展示了 Slack 中的卡的精确视觉复制,而且当您添加/删除标签或受让人时,图像本身也会更新,包括 Slack 中的卡和 Glo 板中的实际卡。
提示慢拍手…
**在空闲时生成卡片预览**
## 在 Slack 中发布 Glo 卡的 URL 将会显示 Glo 卡的预览,向您展示该卡的视觉复制,包括封面图像、卡的描述和任务列表。
此外,卡链接将生成编辑卡详细信息的选项,如标签、受托人和指定列。同样,Slack 中调整的任何细节都将直接在 Glo 板中实时更新。
在卡片预览中,用户可以:
单击卡名或`View Card`按钮访问 Glo 中的卡。
点击`Edit Card`按钮进入模式并编辑其他卡片详细信息,包括卡片名称、描述、标签、受托人和列:
完成整合后,用户也可以在使用 Slack 命令`/createcard`创建新卡时访问这些选项。
Users can also access these options when creating new cards using the Slack command, `/createcard`, after completing the integration.
**里程碑& GitHub 拉取请求**
## 松弛预览还将显示卡片是否与项目里程碑和/或拉动式请求相关联。
如果您为卡片指定了一个项目里程碑,一个灰色框将显示带有旗帜图标的里程碑名称🚩任何卡片标签旁边。
对于已经设置了我们的 [GitHub 拉请求集成](/blog/github-pull-request-integration-glo)的用户,Slack 预览将显示一个卡是否链接到一个拉请求。拉动请求图标将显示在卡片的左下方,并且会出现一个`View Pull Request`按钮。用户可以点击按钮直接在 GitHub 中查看拉取请求。
For users who have set up our [GitHub pull request integration](/blog/github-pull-request-integration-glo), Slack previews will show whether a card is linked to a pull request. A pull request icon will display in the bottom left of the card, and a `View Pull Request` button will appear. Users can click the button to view the pull request directly in GitHub.
**安装 Glo 板进行松弛**
## 为 Slack 安装 Glo 板是快速和无痛的。你可以点击下面的按钮,或者简单地在 Slack 中输入`/createcard`命令,Slackbot 会指导你完成安装过程。
现在将 Slack 与 Glo 板集成。
在点击`Install`按钮之前,Slack 应用安装门户让您有机会查看请求的权限。
然后您将被重定向到您的 GitKraken 登录,在那里您可以查看附加权限并授权应用程序。
点击`Authorize`按钮后,您将被重定向回 Slack,在那里您可以开始使用集成!
After clicking the `Authorize` button, you will be redirected back to Slack where you can start using the integration!
**使用时差实时更新任务**
## [Glo Boards for Slack](https://slack.com/apps/AM9PQQN0M-glo-boards) 现在可以使用您最喜欢的团队沟通工具来跟踪项目任务和即将到来的截止日期,它为您最喜欢的项目管理工具 Glo Boards 增加了更多的灵活性和便利性。
[Glo Boards for Slack](https://slack.com/apps/AM9PQQN0M-glo-boards) now makes it possible to use your favorite team communication tool to stay on track of project tasks and upcoming deadlines, and it adds even more flexibility and convenience to your favorite project management tool, Glo Boards.
# UX 软件开发 UI 设计原则| GitKon 2022
> 原文:<https://www.gitkraken.com/gitkon/ux-design-software-development>
[https://www.youtube.com/embed/BTGkj_eypqs?feature=oembed](https://www.youtube.com/embed/BTGkj_eypqs?feature=oembed)
视频
“好的设计”并不是一个用来描述 15-20 年前设计的传统开发工具的词汇。纯粹的功能是这个游戏的名字。这些工具试图解决非常具体的任务,并且被设计成尽可能以最简单、最有效的方式完成这些任务。
效率绝对应该仍然是开发人员工具设计中的一个主要因素,但是开发人员欣赏好的设计,不管他们是否能够清楚地表达这意味着什么。开发人员很直观,可以很快判断出一个工具对他们的工作流来说看起来和感觉起来是否好,而且效率也很高。不一定非此即彼。
## **为开发者受众设计**
当你正在开发将要交付给全世界数百万开发者的软件时,你想要小心确保你正在以正确的方式做事;你有责任把工具做好。
不管是好是坏,开发人员都非常诚实和直率。他们不会粉饰他们对你产品的感受。综上所述,所有的反馈都极具建设性。任何反馈都是好的反馈。
GitKraken 团队每天都会通过多种渠道密切关注用户反馈,包括社交媒体、Slack、给支持团队的电子邮件、公众反馈表等。
## **数据驱动设计**
你如何衡量设计的功效?如果你的设计是以问题为中心的,也就是说你确切地知道你在解决哪个问题,你可以通过使用经验和统计证据,基于用户如何与你的产品交互来衡量设计的有效性。
在这种情况下,经验证据的定义是通过观察获得的第一手经验证据——你已经在研究或采访中观察过人们——实际上与你的产品互动,你能够研究他们的行为。你可以监测他们对事物的情绪反应,听到对你的产品的听觉反应;这可能是非常有效的预发布。
统计证据来自对大量数字数据的分析。也许你刚刚向大量观众发布了你产品的新版本;你可以通过点击页面上或应用程序中的特定区域来衡量有多少人能够找到一个新功能;他们是否有效地使用工具;他们在使用某项功能上花费了多少时间;和其他统计数据,告诉你你的产品是否按照你设计的方式使用。
你应该在尝试制造你的产品之前还是之后进行所有的设计研究?这真的取决于项目的预算。用户研究可能非常昂贵和耗时,所以不要让缺乏数据阻止你。
## **UI UX 设计是 GitKraken 工具的区别**
GitKraken 的团队很自豪地在我们传奇的 [Git 工具](https://www.gitkraken.com/)套件中一直考虑软件开发的 UX UI 设计原则。
GitKraken 图表为用户提供了对其项目历史的增强可见性,可以在 [GitKraken 客户端](https://www.gitkraken.com/git-client)和 [GitLens for VS Code](https://www.gitkraken.com/gitlens) 中访问,团队工作区等功能有助于在一个仪表板中组织相关任务,以简化工作流管理。
# 可视化 Git:通往技术领先的道路
> 原文:<https://www.gitkraken.com/gitkon/visual-git>
[https://www.youtube.com/embed/SXsPCDVVgc4?feature=oembed](https://www.youtube.com/embed/SXsPCDVVgc4?feature=oembed)
视频
如果您是一名开发人员,您会知道成为一名 Git 大师是一个终生的过程。总有办法改进和完善你的手艺。做到这一点的方法之一是通过有效的领导和管理。虽然经常被忽视,但坚实的领导可以带领一个职能团队并使其出类拔萃。
在 2021 年 [GitKon Git 大会](https://gitkon.com/)上, [Alohi](https://www.alohi.com/) 的前端工程师 Mathieu Ha Sum 提供了一个实用的五步计划来成为一名伟大的领导者,并演示了如何使用可视化 Git。
GitKraken Git 客户端中易于阅读的提交图将帮助您可视化 Git 中的分支结构和提交历史,并帮助您跟踪谁在何时进行了哪些代码更改。从这里开始你的视觉 Git 之旅。⬇️
## **第一步:操作系统**
如果你想成为一名领导者,你需要首先了解你目前的程序,然后考虑如何改进它们。像“我怎样才能使这个过程更好或更快?”可以帮助你确定努力的方向。
通常,当你进入编程的最佳状态时,你会变得太专注于自己的分支,以至于忘了看看周围发生了什么。了解您的其他团队成员正在做什么,合并了哪些变更,哪些仍在进行中,您正在发布什么版本,以及整个项目的目标,这一点很重要。这就是可视化 Git 的用武之地。
可视化 Git,或者以一种易于理解的方式可视化你的 Git 库,比如在 [GitKraken Git 客户端](https://www.gitkraken.com/git-client)中,可以给你一个协作项目的快速概览,帮助你不仅理解你的角色和贡献,而且理解项目是如何发展的。查看您的 [Git 库](https://www.gitkraken.com/learn/git/tutorials/what-is-a-git-repository)概述提供了一个很好的视角来识别更快、更有效的编码过程。
下面,您可以在 GitKraken Git 客户端中看到一个显示为可视化图形的 Git 存储库示例。每行代表一次提交,最新的更改位于顶部。分支和标记标签位于图的左侧,作为指向特定提交的指针存在,每个垂直列代表回购上的一个分支。
花时间在高层次上查看您的存储库,并对项目更加熟悉,可以激发过程改进的想法。您可能建议的一些变更示例包括:
* 开始使用提交消息(表情符号😃)
* 开始用符号或表情符号区分化妆品承诺和功能性评论
* 确定占用空间的陈旧分支,并创建一个检查和删除它们的流程
不是你提出的每一个想法都会被采纳并实施到你的团队流程中,但是积极主动地发现需要改进的地方会让你成为一个与众不同的领导者。
## **第二步:事半功倍**
没有一个项目是完美的,所以自然地,过程中会有可以改进的地方。诀窍是确定你的团队可以实现的简单、实用的事情,以获得最大的回报。试着找出你能做出的最小的改变,这些改变能产生最大的影响。这些是最有可能被迅速采纳并为你的团队节省大量时间的想法。
事半功倍的一个例子是将外部工具与 Git 集成。例如,您可以将任务管理器,如[吉拉](https://www.gitkraken.com/integrations/jira)或特雷罗,与 GitKraken Git 客户端集成,以直接在您的编码环境中管理您的问题,或者使用[吉拉 Git 集成](https://www.gitkraken.com/git-integration-for-jira)直接从您的项目管理工具访问 Git 数据。你也可以通过自动化一切可以自动化的东西来做更多更少的事情。
有效利用沟通渠道。无论你使用 Slack、微软团队还是其他工具,沟通都是至关重要的。为像工作聊天一样简单的工具创建最佳实践,如标准化表情符号反应以传达与任务相关的动作,可以帮助您和您的团队节省宝贵的时间。举个例子,👀眼睛可能意味着你正在评论一个帖子,无论是谁发布了这条消息,都应该期待你的跟进。
在一个与吉拉 Git 集成的新中可视化您的 Git 数据——连接任何 Git 存储库以查看提交、创建拉请求等,而无需离开吉拉。
[Get Git Integration for Jira](/git-integration-for-jira)
## **第三步:充当领导者**
如果你想成为一名领导者,你可以从今天开始,做你认为一名优秀领导者应该做的事情。劳伦斯·J·彼得指出,许多组织都犯了这样的错误:根据个人在之前工作中的成功来雇佣和提升他们。这经常导致员工“上升到他们最大的无能水平”
例如,假设你是一名非常优秀的初级开发人员,因此你被提升为高级开发人员。现在想象一下,你是一名非常优秀的高级开发人员,突然你被提升为主管。在晋升过程中的某个时刻,你可能会发现自己的角色让你觉得自己不知道自己应该做什么,这可能会导致你工作表现不佳。
你可以通过应用所谓的“鼬原则”来对抗这种职场倾向鼬引用流行动漫《火影忍者》中的一句话说道:
> “你不会成为被所有人认可的火影。被大家公认的,就成了火影。”
>
> Itachi from Naruto
确定你的优势,努力找到最适合你和你的团队的人。当领导不一定意味着你有最令人印象深刻的头衔;这意味着在你力所能及的地方做出贡献,并帮助他人和你一起成功。
那么,如何使用 visual Git 开始表现得像一个领导者呢?这可能就像分享你的一些 Git 秘密一样简单。如果你使用某个特定的工具或实践帮助你变得更有效率,为什么不与一个努力奋斗的团队成员分享呢?一个领导者认识到一个团队的强大取决于它最薄弱的环节,并通过帮助他们来增强团队的力量。
## **第四步:培养团队文化**
这是你成为一名伟大领导者的旅程中的一点,在这里你需要放弃每项活动都需要实际应用的想法。
如果你想学习如何演奏一种乐器,你首先需要学习音符并开始演奏它们。当学习一种乐器时,大多数人从试奏一首简单的曲子或者学习几个音符开始。他们不会直接学习音乐理论。
如果你被安排在一个领导岗位上,不要立即开始购买关于管理科学的书籍。如果你先“动手”做一些管理工作,然后寻找能帮助你解决具体问题的资源,你会取得更大的成功。
GitHub 上的 [*经理手册*](https://github.com/ksindi/managers-playbook) 对任何想要学习管理的开发人员来说都是一个很好的资源。它包含了关于如何进行面试、招聘流程、团队文化和更多有用提示的信息。
## 第五步:激励你周围的世界
如果你想变得重要,就开始让自己变得不可替代。如果你想被视为领导者,通常需要你比现在做得多一点。所以把这当成你的警钟吧。你的方向是正确的,但现在是行动的时候了。
因此,走出去,找出可以改进和提高的地方。将你的努力集中在那些让你事半功倍的想法上。发展你想成为的领导者的特质,然后将那些行为融入你的公司文化。最后,努力激励身边的人!
获得可视化 Git 策略的好处将在 GitKraken Git 客户端的帮助下加速,现在有了 GUI 和 T2 CLI T3。这个流行的 Git 工具将使您和您的团队能够以有意义的可视化布局快速了解 Git 中的项目历史。
# VS 代码下载|入门和设置
> 原文:<https://www.gitkraken.com/blog/vs-code-download>
Sarah 是苏格兰的一名 IT 专业人士。她对 IT 运营充满热情,并乐于帮助他人学习新技能。你可以在[www.techielass.com](http://www.techielass.com/)找到她写的更多内容
* * *
Visual Studio Code (VS Code)是微软开发的一款流行的开源代码编辑器。它为开发人员或操作工程师提供了一个轻量级但功能强大的编码和调试环境。
VS 代码包括语法突出显示、代码完成、调试、Git 集成以及更多特性。它还支持各种扩展和插件,使用户能够定制自己的工作流程并提高工作效率。
VS Code 是我最喜欢的代码编辑器,我每天都在用。这是一个多功能的工具,可以帮助我编辑 markdown 文档,编写 Azure Bicep 代码,甚至帮助我[连接到 SQL 数据库](https://www.techielass.com/connect-to-a-sql-database-with-visual-studio-code/)。
本文将介绍如何在您的机器上安装 VS 代码,解释接口,并分享如何定制接口以适应您的工作流的技巧。我还将介绍扩展的概念以及为什么它们是必不可少的。最后,我将分享一些初学者技巧来帮助你开始使用 VS 代码。
下载用于 Windows 的 VS 代码
## 在 Windows 机器上安装 VS 代码有几种方法。您可以使用以下过程下载安装文件:
下载用于 Windows 的 [Visual Studio 代码安装程序](https://go.microsoft.com/fwlink/?LinkID=534107)。
1. 下载完成后,双击安装程序开始安装。这应该只需要一分钟。
2. 下载完成后,双击安装程序开始安装。这应该只需要一分钟。
或者,如果您使用 [Windows 包管理器](https://www.techielass.com/how-to-install-winget-windows-package-manager/),您可以打开一个命令提示符窗口并键入命令:
`winget install Microsoft.VisualStudioCode -y`
或者,如果选择了 [Chocolatey](https://chocolatey.org/) 作为您的软件包管理器,您可以打开一个命令提示符窗口,键入以下命令:
`choco install vscode -y`
下载针对 Linux 的 VS 代码
根据您使用的 Linux 的风格,有不同的下载 VS 代码的方法。对于 Ubuntu,您可以遵循以下步骤:
## 打开`Software Catalogue`
搜索`Visual Studio Code`
1. 点击`code`
2. 然后点击`Install`;可能会提示您输入密码以继续安装
3. 点击`code`
4. 然后点击`Install`;可能会提示您输入密码以继续安装
查看官方文档,了解如何在其他版本的 Linux 上下载 VS 代码。
为 Mac 下载 VS 代码
要在 Mac 上安装 VS 代码,请遵循以下说明:
[下载 macOS 的 Visual Studio 代码](https://go.microsoft.com/fwlink/?LinkID=534106)。
## 打开浏览器的下载列表,找到下载的应用程序。
在某些浏览器中使用双击,或者在 Safari 中选择“放大镜”图标。
1. 将 Visual Studio Code.app 拖到 Applications 文件夹,使其在 macOS Launchpad 中可用。
2. 双击图标,从应用程序文件夹打开 VS 代码。
3. 将 VS 代码添加到你的 Dock 中,点击 Dock 中的图标上的`right-clicking`,调出上下文菜单,然后选择`Options`和`Keep in Dock`。
4. 在 VS 代码中进行设置
5. 一旦你下载了 VS 代码并安装在你的机器上,你就可以开始使用它并定制它了!让我们带你浏览一下 VS 代码的界面。
6. 将 VS 代码添加到你的 Dock 中,点击 Dock 中的图标上的`right-clicking`,调出上下文菜单,然后选择`Options`和`Keep in Dock`。
## 菜单系统在你屏幕的顶部,就像微软的其他产品一样。菜单系统将为您提供设置,如屏幕上显示的字体大小以及 VS Code 使用的配色方案。
编辑器部分占据了屏幕的最大部分。这是您处理文件的地方;您打开了许多文件,并在比较模式下并排编辑它们,或者将它们作为许多不同的选项卡。
在屏幕的左侧,有一个活动栏。这允许您在视图之间切换,并为您提供额外的上下文指示器,例如有多少对 Git 的更改正在等待登台。
边栏将在您处理项目时为您提供不同的视图;我最喜欢的是浏览器,它可以让你看到你的项目中的文件和文件夹。
屏幕底部是状态栏。它给你关于项目的信息,你正在编辑的文件,一些插件在这里也有一个状态指示器。
您可以在 VS 代码中显示不同的面板。这可用于显示调试面板或集成终端。默认情况下,面板位于屏幕的下半部分,但是如果愿意,您可以将其移动到垂直位置。
自定义 VS 代码设置
您可以在 VS 代码中定制许多设置,以使编辑器适合您的首选工作流。
改变主题
我喜欢配置的第一个设置是配色方案。当使用 VS 代码时,我更喜欢 light 主题,但是有许多内置的选择。如果点击`File> Preferences > Settings`,导航至`Workbench > Appearance`。你会看到配置`Color Theme`的选项。
在我们最近的博客文章中查看一些[最佳 VS 代码主题](https://www.gitkraken.com/blog/best-vs-code-themes)。
## 打开自动保存
我的自定义列表中的下一个设置是打开自动保存,这将在一定的延迟后保存您的更改。要配置自动保存,请转至`File> Preferences > Settings`,然后导航至`Text Editor > Files`。您将看到自动保存选项;把那个转到`afterDelay`。您还可以配置自动保存延迟时间;默认的 1000 毫秒适合我。
### Changing the Theme
设置浏览器窗口的缩进
我经常设置的另一个设置是树或浏览器窗口的缩进。更改缩进会使文件和文件夹的缩进更明显,并且更容易一目了然。你可以去`File > Preferences > Settings`和`Workbench > Appearance`更改。向下滚动,你会看到一个名为`Tree: Indent`的设置。我喜欢设置为`24`。
安装 VS 代码扩展
### VS 代码提供了各种扩展来增强它的功能。这些扩展对于希望改进工作流和流程的用户来说至关重要。扩展可以添加默认设置中不可用的功能和工具。
例如,扩展可以突出各种编程语言的语法、代码完成、调试支持以及与其他开发工具的集成。
在 VS 代码中使用扩展可以帮助用户节省时间,并通过自动化重复任务和提供对常用功能的快速访问来提高他们的生产力。
扩展可以在 [VS 代码扩展市场](https://marketplace.visualstudio.com/vscode)中找到。市场中的扩展由供应商或社区成员创建。有大量的扩展可供选择,很容易找到满足您特定需求的扩展。
### 您可以按照这些简单的步骤在 VS 代码中安装一个扩展:
打开 VS 代码,点击屏幕左侧的`Extensions` 图标
搜索要安装的扩展
找到想要安装的扩展后,点击`Install`
## 您可能需要关闭并重新启动 VS 代码来激活一些扩展
VS 代码提供了各种扩展来增强它的功能。这些扩展对于希望改进工作流和流程的用户来说至关重要。扩展可以添加默认设置中不可用的功能和工具。
在 VS 代码中使用扩展可以帮助用户节省时间,并通过自动化重复任务和提供对常用功能的快速访问来提高他们的生产力。
查看我们的[最佳 VS 代码扩展列表](https://www.gitkraken.com/blog/best-vs-code-extensions)!
您可以按照这些简单的步骤在 VS 代码中安装一个扩展:
1. 使用 VS 代码的初学者技巧
2. 搜索要安装的扩展
3. 如何在 VS 代码中创建新文件
4. 要在 VS 代码中创建新文件,可以转到`File> New File`。然后你可以给文件一个名字,设置文件扩展名时间,并通过`File> Save`保存。
使用键盘快捷键
默认情况下,VS 代码内置了键盘快捷键,可以节省您的时间并提高您的生产率。
您可以前往`File> Preferences > Keyboard Shortcuts`访问可用键盘快捷键列表。或者你可以使用快捷键`Ctrl+K Ctrl+S` (Windows/Linux)或者`Cmd+K Cmd+S` (Mac)来拉列表。
另一位 GitKraken 大使 Njong Emy 写了一篇精彩的文章,涵盖了 VS Code 中值得学习的[二十个捷径。](https://www.gitkraken.com/blog/vs-code-shortcuts)
在 VS 代码中调试代码
## 您还可以使用 VS 代码调查并修复代码中的错误。
要开始调试,首先通过单击行号左侧要停止执行的位置,确保代码在所需位置设置了断点。
### 然后,点击`Run`菜单并选择`Start Debugging`或使用键盘快捷键`F5`。
调试控制台将出现在屏幕底部,执行将在断点处暂停。从那里,您可以使用调试工具栏遍历代码,查看变量和调用堆栈,以及添加或移除断点。
您还可以设置条件断点,仅在满足特定条件时暂停执行。一旦发现并修复了错误,点击`Run`菜单并选择`Stop Debugging`退出调试模式。通过使用 VS 代码中的调试工具,您可以更快更有效地找到并修复代码中的错误。
### 使用键盘快捷键
在 VS 代码中使用多个文件
在 VS 代码中处理多个文件既简单又直观。
如果您在 VS 代码中打开了多个文件,您可以通过点击编辑器顶部的标签在它们之间切换。您也可以使用键盘快捷键`Ctrl+Tab` (Windows/Linux)或`Cmd+Tab` (Mac)来循环浏览打开的文件。
此外,您可以通过点击编辑器右上角的`Split Editor`图标或使用键盘快捷键`Ctrl+` (Windows/Linux)或`Cmd+` (Mac),将编辑器分成多个窗格。这对于并排比较两个文件非常有用。
### 立即开始使用 VS 代码
我们已经介绍了 VS 代码的安装,分享了如何根据您的喜好设置界面的技巧,介绍了扩展的概念,并分享了一些初学者技巧。
为您的工作流定制和使用 VS 代码会极大地影响您的生产力和效率。您可以将它用于各种编程语言和框架,VS 代码社区也在不断更新和改进它。那么,为什么不尝试一下,看看它如何改善您的编码体验呢?通过一些定制,您可以将 VS 代码转换成工作流的最终工具。
然后,点击`Run`菜单并选择`Start Debugging`或使用键盘快捷键`F5`。
调试控制台将出现在屏幕底部,执行将在断点处暂停。从那里,您可以使用调试工具栏遍历代码,查看变量和调用堆栈,以及添加或移除断点。
您还可以设置条件断点,仅在满足特定条件时暂停执行。一旦发现并修复了错误,点击`Run`菜单并选择`Stop Debugging`退出调试模式。通过使用 VS 代码中的调试工具,您可以更快更有效地找到并修复代码中的错误。
### 在 VS 代码中使用多个文件
在 VS 代码中处理多个文件既简单又直观。
如果您在 VS 代码中打开了多个文件,您可以通过点击编辑器顶部的标签在它们之间切换。您也可以使用键盘快捷键`Ctrl+Tab` (Windows/Linux)或`Cmd+Tab` (Mac)来循环浏览打开的文件。
此外,您可以通过点击编辑器右上角的`Split Editor`图标或使用键盘快捷键`Ctrl+` (Windows/Linux)或`Cmd+` (Mac),将编辑器分成多个窗格。这对于并排比较两个文件非常有用。
立即开始使用 VS 代码
## 我们已经介绍了 VS 代码的安装,分享了如何根据您的喜好设置界面的技巧,介绍了扩展的概念,并分享了一些初学者技巧。
为您的工作流定制和使用 VS 代码会极大地影响您的生产力和效率。您可以将它用于各种编程语言和框架,VS 代码社区也在不断更新和改进它。那么,为什么不尝试一下,看看它如何改善您的编码体验呢?通过一些定制,您可以将 VS 代码转换成工作流的最终工具。
Customizing and using VS Code for your workflows can significantly impact your productivity and efficiency. You can use it for various programming languages and frameworks, and it’s constantly being updated and improved by the VS Code community. So why not try it and see how it can improve your coding experience? With some customization, you can transform VS Code into the ultimate tool for your workflow.
# 在 VS 代码中使用 Git
> 原文:<https://www.gitkraken.com/blog/vs-code-git>
在本文中,我们将介绍如何结合开发人员可用的一些最强大的工具——VS Code 和 Git——开始为开源和私有项目做出有意义的贡献。在我们开始用 VS 代码驱动 Git 之前,让我们先了解一些背景知识。
本文涵盖的主题
#### [在 VS 代码中使用 Git 的先决条件](https://www.gitkraken.com/blog/vs-code-git#prerequisites-to-using-git-in-vs-code)
[在 VS 代码中初始化 Git Repo](https://www.gitkraken.com/blog/vs-code-git#initializing-a-git-repo-in-vs-code)
[让 Git 提交 VS 代码](https://www.gitkraken.com/blog/vs-code-git#making-git-commits-in-vs-code)
[使用 VS 代码](https://www.gitkraken.com/blog/vs-code-git#connecting-a-remote-repository-with-vs-code)连接远程存储库
[在 VS 代码](https://www.gitkraken.com/blog/vs-code-git#pushing-changes-to-a-remote-repo-in-git-with-vs-code)中将更改推送到远程
[在 VS 代码](https://www.gitkraken.com/blog/vs-code-git#pulling-changes-from-a-remote-repo-in-git-with-vs-code)中从远程获取变更
什么是 VS 代码?
visual Studio Code(VS Code)是一个简化的代码编辑器,可以在 Mac、Windows 和 Linux 上使用,它具有交互式调试器、与流行的开发人员工具的大量集成,以及使编写代码更容易的大量扩展。
## 根据 [StackOverflow 2021 年开发者调查](https://insights.stackoverflow.com/survey/2021#section-most-popular-technologies-integrated-development-environment),VS Code 是目前最受欢迎的集成开发环境,超过 80,000 名受访者中有 71%表示 VS Code 是他们的首选 IDE。有关 VS Code 的功能和历史的更多信息,请访问 VS Code 的官方[“为什么 VS Code”](https://code.visualstudio.com/docs/editor/whyvscode)网站。
Git 是什么?
Git 是一种版本控制的分布式方法。Git 是由 Linus Torvalds 在 2005 年创建的,用于管理 Linux 内核的开发。简而言之,Git 跟踪对文件所做的更改,允许您在必要时恢复到以前的文件版本。
## Git lens——VS 代码的免费 Git 扩展,越来越好!
GitLens 拥有超过 2000 万的安装量,是 Visual Studio 代码最受欢迎的 Git 扩展。它为您提供了关于代码作者身份的有价值的见解,并释放了 Git 在 VS 代码中的全部力量。
2022 年,我们增加了一套全新的强大功能,增强了 GitLens 的体验,称为 GitLens+功能。我们引入的第一个 GitLens+特性是可视化文件历史视图和工作树。在发布的时候,这些功能需要一个免费的帐户来访问本地和公共托管的存储库,而私人托管的存储库则需要一个付费帐户。
## 然而,随着 2022 年 10 月 GitLens 13 的发布——推出了漂亮的新提交图——我们希望每个人都能从本地和公共存储库中强大的 GitLens+功能中受益,而不会有任何摩擦。因此,我们消除了自由账户的障碍。现在,访问 GitLens+功能的唯一要求是拥有一个用于私人存储库的 Pro 帐户。
我们使用 GitLens+功能的目的是创建一个可持续的模型,使我们能够继续大力投资 GitLens 的免费和开源核心,这些功能可以提高工作效率、安全性、易用性等,同时创建一组专门为专业开发人员和团队设计的附加但完全可选的功能。
为了帮助您识别 GitLens+功能,它们标有✨symbol.
然而,随着 2022 年 10 月 GitLens 13 的发布——推出了漂亮的新提交图——我们希望每个人都能从本地和公共存储库中强大的 GitLens+功能中受益,而不会有任何摩擦。因此,我们消除了自由账户的障碍。现在,访问 GitLens+功能的唯一要求是拥有一个用于私人存储库的 Pro 帐户。
想在使用 Git 和 VS 代码方面领先一步吗?下载 GitLens 扩展以访问有价值的文件历史和代码作者信息,从而满怀信心地开始编码。
为了帮助您识别 GitLens+功能,它们标有✨symbol.
GitLens 增强了 VS 代码中内置的 Git 功能。无论您是经验丰富的 Git 开发人员还是刚刚入门,GitLens 都能让您更轻松、更安全、更快速地利用 Git 的全部功能。本 GitLens 教程将向您展示如何在 VS 代码中使用 GitLens,并充分利用该工具。[注册 GitLens+,充分利用您的体验——这是免费的](https://bit.ly/3PHA9L8)!
[Install GitLens Free!](https://www.gitkraken.com/gitlens/try-free)
[https://www.youtube.com/embed/UQPb73Zz9qk?feature=oembed](https://www.youtube.com/embed/UQPb73Zz9qk?feature=oembed)
视频
GitLens 增强了 VS 代码中内置的 Git 功能。无论您是经验丰富的 Git 开发人员还是刚刚入门,GitLens 都能让您更轻松、更安全、更快速地利用 Git 的全部功能。本 GitLens 教程将向您展示如何在 VS 代码中使用 GitLens,并充分利用该工具。[注册 GitLens+,充分利用您的体验——这是免费的](https://bit.ly/3PHA9L8)!
现在让我们开始看看如何使用 VS 代码完成 Git 工作流。您将学习如何创建一个 [Git 存储库](https://www.gitkraken.com/learn/git/tutorials/what-is-a-git-repository),提交更改,连接一个遥控器,推送更改,并在整个过程中利用 GitLens 扩展,使在 VS 代码中使用 Git 更加强大。
[https://www.youtube.com/embed/UQPb73Zz9qk?feature=oembed](https://www.youtube.com/embed/UQPb73Zz9qk?feature=oembed)
视频
在 VS 代码中使用 Git 的先决条件
在开始利用 VS 代码中的 Git 集成之前,首先需要确保已经下载并配置了 Git。要检查是否安装了 Git,使用键盘快捷键`CTRL +` 在 VS 代码中打开集成终端,然后键入`git --version`。如果终端返回`git version`,后跟任何版本号,这表明您实际上已经安装了 Git。如果没有返回任何信息,您将需要导航到您的操作系统的[https://git-scm.com/downloads](https://git-scm.com/downloads)。
接下来,您应该通过设置您的姓名和电子邮件来验证 Git 是否配置正确。要检查您是否已经配置了 Git,请导航到终端并运行
## 在 VS 代码中使用 Git 的先决条件
`git config --global --list`.
接下来,您应该通过设置您的姓名和电子邮件来验证 Git 是否配置正确。要检查您是否已经配置了 Git,请导航到终端并运行
如果已经配置了 Git,终端将返回您设置的用户名和电子邮件。如果不是这样,您需要通过完成以下步骤来配置 Git:
要设置您的跑步名称:
`git config --global user.name <your name>`
要设置您的电子邮件运行:
`git config --global user.email <your email>`
这些信息是使用 Git 所必需的,并且必须在提交任何更改之前输入。有关 Git 设置和初始要求的更多信息,请查看官方 Git 文档。
在 VS 代码中打开 Git Repo
一旦您确认 Git 已经在您的机器上正确安装和配置,您将需要初始化一个本地存储库或者克隆并打开一个现有的项目。
初始化回购可以通过多种方式完成,您选择使用的流程取决于您期望的工作流程和当前环境。一般来说,开发人员 [Git 在他们想要为现有项目做贡献时会克隆一个远程存储库](https://www.gitkraken.com/learn/git/git-clone),而在开始一个全新的项目时会创建一个新的存储库。
`git config --global user.email <your email>`
用 VS 代码克隆一个带有 URL 的 Git 存储库
要使用带有 VS 代码的 URL 将现有存储库克隆到您的本地机器,请按照下列步骤操作:
1.选择位于活动栏上的源代码管理图标
## 在 VS 代码中打开 Git Repo
一旦您确认 Git 已经在您的机器上正确安装和配置,您将需要初始化一个本地存储库或者克隆并打开一个现有的项目。
2.然后选择`Clone Repository`
3.导航到您首选的存储库托管服务,如 [GitHub](https://github.com/)
### 4.导航到左上角的搜索栏,搜索所需的远程存储库,然后选择 repo
要使用带有 VS 代码的 URL 将现有存储库克隆到您的本地机器,请按照下列步骤操作:
*搜索您想要的远程存储库*
5.选择绿色的`Code`按钮
6.复制远程存储库 URL
*复制远程 URL*
7.将 URL 粘贴到 VS 代码命令面板中
从那里,您将被提示在您的本地机器上为项目选择一个保存位置。一旦完成了这些,您就可以开始对存储库进行操作了。
使用 VS 代码命令面板克隆现有的 Git Repo
您可以克隆一个现有的存储库,以便在您的本地环境中开始工作。要在 VS 代码中克隆现有的 Git 存储库,请遵循以下步骤:
1.选择位于活动栏上的源代码管理图标
*复制远程 URL*
2.选择`Clone Repository`
3.从命令面板下拉菜单中,选择您想要从中克隆存储库的托管服务,比如 GitHub
4.选择要克隆的远程存储库
4.选择要克隆的远程存储库
该项目将被复制到您的本地计算机上,您可以开始工作了。
### 您可以克隆一个现有的存储库,以便在您的本地环境中开始工作。要在 VS 代码中克隆现有的 Git 存储库,请遵循以下步骤:
使用 VS 代码终端初始化一个新的 Git Repo
要使用 VS 代码中的终端初始化一个新的 Git repo,首先在本地机器上创建并命名一个新文件夹。
接下来,只需点击进入 VS 代码终端并运行`git init <your-folder’s-name>`。这将在 VS 代码中打开该文件夹,并在项目的. git 文件夹中自动创建 Git 元数据文件。
2.选择`Clone Repository`
4.选择要克隆的远程存储库
使用侧栏按钮在 VS 代码中初始化一个新的 Git Repo
您还可以选择使用 VS 代码侧栏按钮来初始化一个存储库。要以这种方式初始化存储库:
1.在您的计算机上创建并命名一个新文件夹
2.转到 VS 代码,选择主屏幕上开始菜单下的`Open`
### 要使用 VS 代码中的终端初始化一个新的 Git repo,首先在本地机器上创建并命名一个新文件夹。
接下来,只需点击进入 VS 代码终端并运行`git init <your-folder’s-name>`。这将在 VS 代码中打开该文件夹,并在项目的. git 文件夹中自动创建 Git 元数据文件。
3.打开新创建的文件
4.从活动栏中选择源代码管理图标
5.点击`Initialize Repository`
### VS 代码中的 Git 工作流
一旦您对项目进行了更改并希望确保这些更改得到保存,提交这些更改是一个好主意。将提交视为工作中的保存点可能会有所帮助。
随着项目的增长,您可以查看、修改和构建旧的提交。提交变更的 Git 工作流如下所示:
编辑您的项目
上演你的改变
编写提交消息
犯罪
使用小程序来跟踪 vs 代码中的变化
✨Commit 图
GitLens 提交图使您能够毫不费力地可视化和监控所有正在进行的工作。提供关于每次提交的大量信息。您可以看到每个节点的作者、日期和提交消息,甚至可以看到在每次提交中更改了哪些文件。这使得理解您的代码库的演变和识别可能需要注意的区域变得容易。
## 提交图也是交互式的,具有全功能的上下文菜单,使您可以轻松地与 Git 直接交互。执行各种操作,如合并、精选和恢复更改,或者使用丰富的提交图搜索。
使用 GitLens 的提交图,跟踪和管理工作进度从未如此简单或高效。
## 通过右键单击上下文菜单与分支、提交、标签等进行交互
双击分支以签出分支
提交的丰富搜索和过滤器
1. 获取有关拉取请求的信息
2. 用于快速查看回购活动的活动小地图
3. 更改列以可视化每次提交时对文件所做的更改
4. 滚动标记快速找到并跳转到感兴趣的点
提交图可供所有在公共存储库上工作的用户使用,并且不需要帐户。此外,付费订阅 GitLens+的用户可以通过私有回购使用提交图。
### ✨Commit Graph
#### 内联责备注释和 CodeLens
GitLens 内联责备注释显示文件中每行代码的作者和提交信息。这些信息以工具提示的形式显示,当用户将鼠标悬停在一行代码上时,工具提示就会出现。工具提示显示详细信息,如作者的姓名、用户名和进行更改的提交消息。
这个特性有助于您跟踪变更并了解每一行代码的历史。它还使您能够追溯对特定行所做的更改,并了解是谁做了更改。责备注释可以用来识别不同团队成员所做的代码贡献,这有助于分配代码的信用和责任。它还使用户能够识别和跟踪代码中的 bug 和错误,从而更容易解决问题。
提交图也是交互式的,具有全功能的上下文菜单,使您可以轻松地与 Git 直接交互。执行各种操作,如合并、精选和恢复更改,或者使用丰富的提交图搜索。
使用 GitLens 的提交图,跟踪和管理工作进度从未如此简单或高效。
CodeLens 是 VS 代码中最强大的工具之一,它提供了可点击的链接来展示提交细节,并允许您从快速选择菜单中进行选择,以比较、导航和进一步探索每个提交。
* 文件注释
* 使用文件注释,您可以在一个方便的地方查看关于 Git 存储库和文件的详细信息。当您切换文件注释时,GitLens 会提供一个侧边栏,显示关于当前打开文件的信息。您可以查看文件的提交历史,包括每次提交的作者和日期,甚至可以通过将鼠标悬停在特定提交上来查看完整的提交消息。
* GitLens 文件注释还显示了每次提交时对文件所做的更改。您可以看到添加、修改或删除了哪些行,从而便于跟踪更改并了解文件随时间的演变。文件注释包括一个交互式代码热图,它直观地显示哪些代码行更改最多。这使得发现需要注意或优化的代码区域变得容易。
* 如果您在团队环境中工作,文件注释可以帮助您识别谁在何时对文件进行了更改。您可以看到每个团队成员所做的贡献,并且可以快速导航到每个变更的提交历史。
* 状态栏责备
* 快速方便地查看当前选中代码行的作者和提交信息,带有状态栏责备。这些信息显示在编辑器窗口底部的 Visual Studio 代码状态栏中。状态栏也会显示代码的年龄信息,所以你可以看到它是多久前最后一次修改的。这对于识别陈旧或过时的代码,或者理解特定代码更改的上下文非常有用。
* 只需点击任意一行代码,GitLens 就会在状态栏显示作者、提交和年龄信息。
提交详细信息
Commit Details 视图提供了关于提交和隐藏的丰富细节。快速查看有关提交的作者、提交 ID、相关问题和拉请求的链接、更改的文件等信息。
#### 当取消锁定时,提交详细信息视图上下文跟随您在编辑器中导航文件,以及在✨提交图、提交视图、存储视图、交互式 Rebase 编辑器和✨可视文件历史中选择提交和存储。您还可以从悬停、上下文菜单和快速选择菜单的提交详细信息视图中打开提交或存储。
在 VS 代码中进行变更
git tens–提交图中的 wip
在您对文件进行更改并保存文件后,您在 GitLens 中正在进行的工作或 WIPs 将在 GitLens 提交图上显示为“正在进行的工作”行。只需单击鼠标右键,即可访问 WIP 上下文菜单。让您访问一系列有用的选项,包括隐藏所有更改、打开细节和开放源代码控制。这些功能允许您更有效地管理 WIP。
VS 代码用户界面
VS 代码通过引用活动栏上的源代码控制图标,可以很容易地识别在任何给定的时间您的项目有多少未分级的更改,其中蓝色的圆圈表示您的项目有多少未分级的更改。
当您准备好暂存您的更改时,您可以通过将鼠标悬停在文件上并选择`+`图标来暂存单个文件。
#### 使用文件注释,您可以在一个方便的地方查看关于 Git 存储库和文件的详细信息。当您切换文件注释时,GitLens 会提供一个侧边栏,显示关于当前打开文件的信息。您可以查看文件的提交历史,包括每次提交的作者和日期,甚至可以通过将鼠标悬停在特定提交上来查看完整的提交消息。
GitLens 文件注释还显示了每次提交时对文件所做的更改。您可以看到添加、修改或删除了哪些行,从而便于跟踪更改并了解文件随时间的演变。文件注释包括一个交互式代码热图,它直观地显示哪些代码行更改最多。这使得发现需要注意或优化的代码区域变得容易。
要从终端暂存单个文件,只需运行`git add <file name>`。
要从终端暂存单个文件,只需运行`git add <file name>`。
#### 快速方便地查看当前选中代码行的作者和提交信息,带有状态栏责备。这些信息显示在编辑器窗口底部的 Visual Studio 代码状态栏中。状态栏也会显示代码的年龄信息,所以你可以看到它是多久前最后一次修改的。这对于识别陈旧或过时的代码,或者理解特定代码更改的上下文非常有用。
或者,如果您有多个文件要暂存,并且您希望一次暂存所有文件,您可以导航到`Changes`并选择`+`图标。
或者,如果您有多个文件要暂存,并且您希望一次暂存所有文件,您可以导航到`Changes`并选择`+`图标。
*一次存放所有更改的文件*
#### Commit Details 视图提供了关于提交和隐藏的丰富细节。快速查看有关提交的作者、提交 ID、相关问题和拉请求的链接、更改的文件等信息。
要从终端暂存您的所有更改,只需运行`git add --all`。
在 VS 代码中进行变更
*警告:将所有的变更一起提交是一个坏习惯。一起暂存和提交的文件共享相同的提交消息,这会使您和其他贡献者对您的 Git 日志感到困惑。提交您的更改通常会限制提交不相关的工作块的需要,并且从长远来看会节省您的时间。
在 VS 代码中提交更改
### 一旦你想要的文件被上传,你就可以 [Git 提交](https://www.gitkraken.com/learn/git/commit)你的修改了。撰写一条清晰的提交消息,在标记为`Message`的部分(就在您存放文件的位置上方)传达您的更改目的,然后选择`✓`图标进行提交。
VS 代码用户界面
#### 要使用 VS 代码集成终端提交,运行`git commit -m`。`-m`标志用于包含提交消息,解释您的更改如何影响项目。包含一个 [Git 提交消息](https://www.gitkraken.com/learn/git/best-practices/git-commit-message)是一个最佳实践;这使您和其他项目参与者能够更容易地跟踪对项目所做的更改。
当您准备好暂存您的更改时,您可以通过将鼠标悬停在文件上并选择`+`图标来暂存单个文件。
#### 要使用终端验证您的提交是否成功,请运行`git log`。终端应该返回最近的提交及其相关消息。
如果您喜欢更直观的方法,您可以通过在 VS 代码中导航到 Timeline 视图来确认您的提交是否成功。要访问该视图,从活动面板中选择浏览器图标,然后选择`Timeline`。
或者,如果您有多个文件要暂存,并且您希望一次暂存所有文件,您可以导航到`Changes`并选择`+`图标。
使用 GitLens 访问有价值的提交历史信息
一旦您的更改被提交,GitLens 责备注释变得更加有价值。
使用 GitLens 责备注释,您可以识别谁进行了特定的更改、何时进行了更改、提交 SHA 等等。要访问 GitLens 中的注释,只需选择并悬停在所需的已提交变更上,信息就会出现在代码行的下方。
要从终端暂存您的所有更改,只需运行`git add --all`。
*GitLens 怪注释*
您还可以使用 GitLens 浏览项目的修订历史。如果你想看看一个文件是如何随着时间的推移而改变的,或者将你的项目的当前状态与一周前进行比较,GitLens 完全可以做到这一点。
要在 GitLens 中访问所需文件的修订历史,请执行以下操作:
选择您想要的文件
点按屏幕右上角看起来像一个向左箭头的圆形图标,以返回到项目的以前迭代。
一旦你想要的文件被上传,你就可以 [Git 提交](https://www.gitkraken.com/learn/git/commit)你的修改了。撰写一条清晰的提交消息,在标记为`Message`的部分(就在您存放文件的位置上方)传达您的更改目的,然后选择`✓`图标进行提交。
用 VS 代码连接 Git 中的远程存储库
### 在 Git 的[远程存储库](https://www.gitkraken.com/learn/git/git-remote)上托管项目是大多数开发人员与其他贡献者共享工作的方式。无论是作为企业团队的一员还是开源贡献者,远程存储库都是项目的最新版本,并被视为事实的最终来源。如果您希望其他人能够看到您的代码并添加到您的项目中,您需要为他们设置一个远程存储库来访问项目的代码库。
要创建远程存储库,请导航到 [GitHub](https://www.gitkraken.com/integrations/github) ,并选择`New`。
*创建新的 GitHub 远程 repo*
要使用终端验证您的提交是否成功,请运行`git log`。终端应该返回最近的提交及其相关消息。
选择`New`后,你的屏幕应该像这样。
要创建远程存储库,请导航到 [GitHub](https://www.gitkraken.com/integrations/github) ,并选择`New`。
*正在创建一个新的 GitHub 远程存储库*
*创建新的 GitHub 远程 repo*
输入远程存储库名称并选择`Create repository`。创建远程存储库后,您可以选择使用 HTTPS 或 SSH 密钥复制远程存储库的 URL。一旦复制了 URL,就可以使用 VS 代码终端或命令面板将本地项目连接到远程存储库。
一旦您的更改被提交,GitLens 责备注释变得更加有价值。
*正在创建一个新的 GitHub 远程存储库*
使用 VS 代码集成终端连接远程 Repo
### 如果您是以键盘为先的开发人员,您可能希望使用终端将本地连接到远程。您可以按照以下步骤在 VS 代码中做到这一点:
复制远程回购 URL
导航到 VS 代码终端
运行`git remote add origin <paste the URL>`并点击`Enter`
点按屏幕右上角看起来像一个向左箭头的圆形图标,以返回到项目的以前迭代。
使用 VS 代码状态栏连接远程 Repo
如果您的 GitHub 帐户连接到 VS 代码,您可以直接从 VS 代码快速创建远程存储库。要在 VS 代码中做到这一点,请遵循以下步骤:
导航到窗口底部的状态栏
1. 选择看起来像带有向上箭头的云的图标
2. 从命令面板中,选择发布到公共或私有存储库
要创建远程存储库,请导航到 [GitHub](https://www.gitkraken.com/integrations/github) ,并选择`New`。
无论您是如何连接到遥控器的,您都可以通过查看窗口底部的状态栏图标来确认您的项目实际上已连接。如果您的本地项目没有连接到远程存储库,状态栏会显示一个图标,看起来像一个带向上箭头的云。如果连接了遥控器,您将会看到一个类似刷新圆圈的图标。
此外,您可以导航到活动栏上的源代码控制图标,然后选择`Remotes`来验证您的 repo 是否已连接。如果连接了遥控器,遥控器栏将如下所示:`REMOTES (1)`。括号中的数字表示连接的远程资料库的数量。
## 选择看起来像带有向上箭头的云的图标
To create a remote repository, navigate to [GitHub](https://www.gitkraken.com/integrations/github), and select `New`.
用 VS 代码将更改推送到 Git 中的远程 Repo
一旦连接了远程 repo,您就可以开始通过一个称为 pushing 的过程将您对本地项目所做的更改发送到远程。推送通常有助于让您的远程 repo 与您最近的更改保持同步,并使其他项目参与者能够处理这些更改。
要从边栏中 [Git push](https://www.gitkraken.com/learn/git/git-push) 您的阶段性变更,只需选择源代码控制图标,然后选择`Sync Changes`。
*用侧杆*将更改推至遥控器
用 VS 代码将更改推送到 Git 中的远程 Repo
要使用集成终端将您提交的更改推送到遥控器,只需运行`git push origin main`。
如果您是以键盘为先的开发人员,您可能希望使用终端将本地连接到远程。您可以按照以下步骤在 VS 代码中做到这一点:
导航到 VS 代码终端
利用 GitLens 确定项目参与者及其代码
### GitLens 可以通过添加 contributors 视图来帮助您识别项目的所有参与者。这在处理大型项目时会很有帮助,因为它允许您通过简单地点击他们的个人资料来查看所有的合作者以及他们对项目的贡献。
要添加这个视图,只需导航到 VS 代码命令面板,搜索`GitLens: Show Contributors View`,并从下拉菜单中选择它。在下面描述的 VS 代码中,源代码管理图标下会出现一个新选项:
1. 如果您的 GitHub 帐户连接到 VS 代码,您可以直接从 VS 代码快速创建远程存储库。要在 VS 代码中做到这一点,请遵循以下步骤:
2. 导航到窗口底部的状态栏
3. 选择下拉箭头查看所有项目参与者。
*GitLens 撰稿人*
### 成千上万的开发人员正在利用 GitLens 过多的视图选项,包括贡献者视图、责备注释等,来改善他们的团队协作。
无论您是如何连接到遥控器的,您都可以通过查看窗口底部的状态栏图标来确认您的项目实际上已连接。如果您的本地项目没有连接到远程存储库,状态栏会显示一个图标,看起来像一个带向上箭头的云。如果连接了遥控器,您将会看到一个类似刷新圆圈的图标。
1. 用 VS 代码从 Git 中的远程 Repo 提取更改
2. 提取更改是开发人员用来将本地项目与远程项目中包含的任何更新同步的过程。如果你在一个项目中有多个参与者,定期提取变更是一个好主意,这样你可以看到其他人在做什么,并了解项目进展的最新情况。
3. 您可以很容易地从 VS 代码侧栏上的 3 点省略号中提取更改。首先,在 source control 视图中单击省略号,然后从下拉菜单中选择`Pull`。
成千上万的开发人员正在利用 GitLens 过多的视图选项,包括贡献者视图、责备注释等,来改善他们的团队协作。
一旦连接了远程 repo,您就可以开始通过一个称为 pushing 的过程将您对本地项目所做的更改发送到远程。推送通常有助于让您的远程 repo 与您最近的更改保持同步,并使其他项目参与者能够处理这些更改。
要从集成终端获取更改,运行`git pull`。
您可以很容易地从 VS 代码侧栏上的 3 点省略号中提取更改。首先,在 source control 视图中单击省略号,然后从下拉菜单中选择`Pull`。
准备…设置…贡献 Git 和 VS 代码!
现在,您拥有了在 VS 代码中遵循基本 Git 工作流的工具!了解如何使用 VS 代码来驱动 Git 可以帮助您开始更有效地与团队成员协作,并使您更容易开始为开源项目做出有意义的贡献。Git 可能令人望而生畏,但是 VS 代码,尤其是当与 [GitLens](https://www.gitkraken.com/gitlens) 结合使用时,为您提供了必要的工具、强大的功能和直观的 UX 来引导您走向成功。
利用 GitLens 确定项目参与者及其代码
GitLens 可以通过添加 contributors 视图来帮助您识别项目的所有参与者。这在处理大型项目时会很有帮助,因为它允许您通过简单地点击他们的个人资料来查看所有的合作者以及他们对项目的贡献。
要添加这个视图,只需导航到 VS 代码命令面板,搜索`GitLens: Show Contributors View`,并从下拉菜单中选择它。在下面描述的 VS 代码中,源代码管理图标下会出现一个新选项:
### 选择下拉箭头查看所有项目参与者。
*GitLens 撰稿人*
成千上万的开发人员正在利用 GitLens 过多的视图选项,包括贡献者视图、责备注释等,来改善他们的团队协作。
用 VS 代码从 Git 中的远程 Repo 提取更改
提取更改是开发人员用来将本地项目与远程项目中包含的任何更新同步的过程。如果你在一个项目中有多个参与者,定期提取变更是一个好主意,这样你可以看到其他人在做什么,并了解项目进展的最新情况。
您可以很容易地从 VS 代码侧栏上的 3 点省略号中提取更改。首先,在 source control 视图中单击省略号,然后从下拉菜单中选择`Pull`。
*GitLens Contributors*
Thousands of developers are leveraging GitLens’ plethora of view options, including the contributors view, blame annotations, and more to improve their team collaboration.
[Install GitLens Free!](https://www.gitkraken.com/gitlens/try-free)
要从集成终端获取更改,运行`git pull`。
## Pulling Changes from a Remote Repo in Git with VS Code
You can easily pull changes from the 3 dot ellipsis on the VS Code Side Bar. First, click the ellipses from the source control view, and then select `Pull` from the dropdown menu.
准备…设置…贡献 Git 和 VS 代码!
现在,您拥有了在 VS 代码中遵循基本 Git 工作流的工具!了解如何使用 VS 代码来驱动 Git 可以帮助您开始更有效地与团队成员协作,并使您更容易开始为开源项目做出有意义的贡献。Git 可能令人望而生畏,但是 VS 代码,尤其是当与 [GitLens](https://www.gitkraken.com/gitlens) 结合使用时,为您提供了必要的工具、强大的功能和直观的 UX 来引导您走向成功。
To pull changes from the integrated terminal, run `git pull`.
## Ready…Set…Contribute with Git and VS Code!
You now have the tools to follow a basic Git workflow in VS Code! Knowing how to use VS Code to drive Git can help you start collaborating with your team members more effectively, and makes it easy to start making meaningful contributions to open source projects. Git can be daunting, but VS Code, especially when combined with [GitLens](https://www.gitkraken.com/gitlens), provides you with the necessary tools, powerful functionality, and intuitive UX to guide you towards success.
# 20 VS 代码快捷键|初学者指南
> 原文:<https://www.gitkraken.com/blog/vs-code-shortcuts>
Visual Studio Code,简称 VS Code,是微软的一个集成开发环境(IDE),它提供了代码编写、运行和调试所必需的特性。VS 代码是最流行的 ide 之一,因为它是轻量级的、用户友好的、跨平台的,并且不断添加有用的更新和扩展。
为了在 VS 代码中快速工作,了解一些简单的键盘快捷键是很重要的,这些快捷键可以让你在不接触鼠标或触控板的情况下执行各种操作。在本文中,我们将介绍一些常用的快捷方式,让您的 VS 代码技能更上一层楼。
*想要进一步优化您的 VS 代码环境吗?看看这些[最佳 VS 代码扩展](https://www.gitkraken.com/blog/best-vs-code-extensions)和[最佳 VS 代码主题](https://www.gitkraken.com/blog/best-vs-code-themes)。*
# 打开 VS 代码命令面板
VS 代码命令面板是一个小窗口,它将您链接到执行特定功能的常用或有用的命令。从命令面板中,您可以关闭当前窗口、清除控制台、运行扩展以及更改选项卡大小。
Mac: `Cmd + Shift + P`
视窗:`Ctrl + Shift + P`
用 VS 代码打开终端
终端是 VS 代码中最重要的内置特性之一。只需几个键,您就可以创建一个新的终端,并在面板之间切换,没有任何麻烦。
# Mac: `Control + Shift + ‘`
Windows:创建一个新的终端,`Ctrl + Shift + ‘`。要切换终端面板,`Ctrl + ‘`
打开新窗口
想要打开另一个项目,即使已经有一个项目在你面前?然后一个新的窗口是一条路要走。你通常只需点击两下就能完成的事情,现在你只需按住键盘上的三个键就能毫不费力地完成。
Mac: `Shift + Cmd + N`
视窗:`Ctrl + Shift + N`
# 向上/向下移动线条
啊,看,你在错误的地方打了整整一行字。要移动线条,您必须首先选择、剪切它,然后将其粘贴到正确的位置。如果只用两个键,你就可以上下移动这条线,会怎么样?将光标放在要移动的行上,可以点击以下键。
Mac: `Option + up arrow/down arrow`
视窗:`Alt + up arrow/down arrow`
创建新文件
# 要快速创建一个新文件而不必过多地点击,您可以按住 ctrl 和 N 键。这将创建一个新文件,您可以在其中设置首选文件名和语言扩展名。
Mac: `Cmd + N`
视窗:`Ctrl + N`
快速打开文件
你可以打开一个小的搜索窗口,允许你按名称搜索文件,而不管它们在文件夹中是如何嵌套的。
Mac: `Cmd + P`
# 视窗:`Ctrl + P`
切换左侧边栏
有时候,你不得不承认侧边栏占用了一些空间。只需键盘上的两个键,您就可以轻松地打开和关闭它。
Mac: `Cmd + b`
视窗:`Ctrl + b`
搜索/查找
# 在你的代码库中寻找某个单词,那么搜索是一个非常快的方法。您可以通过按住以下三个键来快速打开侧边栏中的搜索面板。
Mac: `Cmd + Shift + F`
视窗:`Ctrl + Shift + F`
选择当前选择的所有匹配项
# 在编码过程中,我们有时会意识到在整个文件中,我们输入了一些错误的函数或类名。我们可能想要编辑此名称的所有出现或一次删除它们。手动浏览文件不一定需要一分钟,所以有一个神奇的快捷方式可以实现这一点。你所要做的就是突出显示这个单词,然后按下面的键。
Mac: `Shift + Cmd + L`
视窗:`Ctrl + Shift + L`
打开键盘快捷键编辑器
# 快速打开一个键盘快捷键列表,以防有您想要快速找到的快捷键。这些命令按照字母顺序组织得非常漂亮,并根据您的操作系统提供键盘快捷键。
Mac: `Cmd + K Cmd + S`
视窗:`Ctrl + K Ctrl + S`
注释或取消注释选定的代码
# 注释和取消注释代码非常有用,尤其是当您试图调试或测试代码的某个特定部分的行为时。您可以快速选择代码的一部分,根据您使用的语言或语法,VS Code 会立刻将这部分代码转换成注释块。
Mac: `Cmd + K Cmd + C`
视窗:`Ctrl + K Ctrl + C`
显示所有符号
你的项目可以由文本和符号组成。手动操作时,符号比文本更难找到。此快捷方式会打开一个窗口,显示项目中存在的所有符号,无论它们是如何嵌套的。
Mac: `Cmd + T`
# 视窗:`Ctrl + T`
放大/缩小
在某些情况下,比如实时流,放大和缩小以清楚地看到和/或向观众展示你在做什么是很重要的。你可以直接通过键盘轻松完成。
Mac: `Cmd +` =(放大)
`Shift + Cmd +`–(缩小)
窗口:`Ctrl +` =(放大)
# `Ctrl +`–(缩小)
切换自动换行
水平滚动以查看行尾可能会令人紧张,尤其是当您试图仔细阅读多行代码时。您可以轻松地折叠代码编辑器中的所有文本以适应窗口的大小,这样您就可以一次看到所有内容。只需键盘上的两个键就可以切换自动换行。
Mac: `Option + Z`
视窗:`Alt + Z`
禅宗模式
# 没有任何干扰的编码是每个开发人员都想达到的水平。在 zen 模式下,你面前只有你的代码。没有边栏,没有按钮,没有菜单,什么都没有。除了你想不时地切换 zen 模式来找到你需要的东西,你需要知道基本的键盘快捷键来有效地使用它。
要启用 zen 模式,请按住键盘上的 ctrl(cmd)和 K,释放 ctrl(cmd)键,然后按 Z 键。要离开 zen 模式,你可以按两次键盘上的 escape 键。
Mac: `Cmd + K Z`
视窗:`Ctrl + K Z`
拆分视图
感觉就像有两个显示器,您可以轻松地在视图之间切换。要在拆分视图中打开文件,请按住 ctrl(cmd)和反斜线。
# Mac: `Cmd + \`
视窗:`Ctrl + \`
自动保存
编码过程中有一小部分错误来自保存问题。在运行代码之前,很容易忘记按 ctrl + s。VS 代码为你提供了一种保存代码的方法,你不必手动保存代码。从 settings.json 中,您可以将“文件:自动保存”下的下拉列表更改为 afterDelay。有了这个设置,无论你对文件做什么修改,VS 代码都会自动保存你的工作。
–打开 settings.json ctrl +,(cmd +,)
–在下拉菜单中设置文件:自动保存到延迟后
–或者使用文件>自动保存
导航到特定行
# 错误消息通常伴随着错误来自的特定或可疑的行。对于通常跨越数千行的文件,滚动到特定的行会很费时间。VS 代码有一个键盘快捷键,可以打开一个小的命令面板,你可以在这里输入你想去的行,它会立刻把你的光标移到那里。
Mac: `Cmd+ G, Cmd + P`
视窗:`Ctrl + G`
去掉空白
在一些编程语言中,空白可能是一种痛苦。要修剪或去除所有尾随空白,
Mac: `Cmd + K, Cmd + X`
# 视窗:`Ctrl + K, Ctrl + X`
打开降价预览
Markdown 通常用于文档和项目文档。您可以用 VS 代码编写 markdown,编辑器还提供了预览 markdown 文件输出的方法。导航到要预览的 markdown 文件,按住 ctrl(cmd)、shift 和 v 键在另一个窗口中打开预览。
Mac: `Cmd + Shift + V`
视窗:`Ctrl + Shift + V`
更好的是,您可以打开预览旁边的降价文件,并在您键入降价文件时看到自动反映的更改。
Mac: `Cmd + K V`
# 视窗:`Ctrl + K V`
Mac: `Cmd + \`
仅用键盘优化 VS 代码
这些快捷方式是快速浏览 VS 代码的简单方法,因此可以充分利用编辑器。要查看可用快捷键的完整列表,你可以从 VS code 下载适用于 [Windows](https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf) 、 [Mac](https://code.visualstudio.com/shortcuts/keyboard-shortcuts-macos.pdf) 和 [Linux](https://code.visualstudio.com/shortcuts/keyboard-shortcuts-linux.pdf) 的快捷键清单。
自动保存
# 编码过程中有一小部分错误来自保存问题。在运行代码之前,很容易忘记按 ctrl + s。VS 代码为你提供了一种保存代码的方法,你不必手动保存代码。从 settings.json 中,您可以将“文件:自动保存”下的下拉列表更改为 afterDelay。有了这个设置,无论你对文件做什么修改,VS 代码都会自动保存你的工作。
–打开 settings.json ctrl +,(cmd +,)
–在下拉菜单中设置文件:自动保存到延迟后
–或者使用文件>自动保存
导航到特定行
错误消息通常伴随着错误来自的特定或可疑的行。对于通常跨越数千行的文件,滚动到特定的行会很费时间。VS 代码有一个键盘快捷键,可以打开一个小的命令面板,你可以在这里输入你想去的行,它会立刻把你的光标移到那里。
Mac: `Cmd+ G, Cmd + P`
# 视窗:`Ctrl + G`
去掉空白
在一些编程语言中,空白可能是一种痛苦。要修剪或去除所有尾随空白,
Mac: `Cmd + K, Cmd + X`
视窗:`Ctrl + K, Ctrl + X`
打开降价预览
# Markdown 通常用于文档和项目文档。您可以用 VS 代码编写 markdown,编辑器还提供了预览 markdown 文件输出的方法。导航到要预览的 markdown 文件,按住 ctrl(cmd)、shift 和 v 键在另一个窗口中打开预览。
Mac: `Cmd + Shift + V`
视窗:`Ctrl + Shift + V`
更好的是,您可以打开预览旁边的降价文件,并在您键入降价文件时看到自动反映的更改。
Mac: `Cmd + K V`
视窗:`Ctrl + K V`
Markdown is commonly used for documentation and project READMEs. You can write markdown in VS Code, and the editor also provides a way to preview the output of your markdown files. Navigate to the markdown file you want to preview, and hold down on the ctrl(cmd), shift, and v keys to open the preview in another window.
仅用键盘优化 VS 代码
这些快捷方式是快速浏览 VS 代码的简单方法,因此可以充分利用编辑器。要查看可用快捷键的完整列表,你可以从 VS code 下载适用于 [Windows](https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf) 、 [Mac](https://code.visualstudio.com/shortcuts/keyboard-shortcuts-macos.pdf) 和 [Linux](https://code.visualstudio.com/shortcuts/keyboard-shortcuts-linux.pdf) 的快捷键清单。
Even better, you can open the markdown file alongside the preview, and see changes reflect automatically as you type in your markdown file.
Mac: `Cmd + K V`
Windows: `Ctrl + K V`
# Optimize VS Code with Just Your Keyboard
These shortcuts are an easy way to quickly navigate VS Code and hence, make ample use of the editor. To check out a full list of available shortcuts, you can download the keyboard shortcut cheatsheet from VS code for [Windows](https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf), [Mac](https://code.visualstudio.com/shortcuts/keyboard-shortcuts-macos.pdf), and [Linux](https://code.visualstudio.com/shortcuts/keyboard-shortcuts-linux.pdf).
# GitKraken v8.0.1 中的 SSH 密钥生成缺陷修复
> 原文:<https://www.gitkraken.com/blog/weak-ssh-key-fix>
从旨在帮助软件开发人员集中精力编写代码的播放列表中进行选择。播放列表包括流行的音乐剧、视频游戏曲目、棕色噪音等等。
# 什么是 Git 存储库?Git 初学者教程
> 原文:<https://www.gitkraken.com/learn/git/tutorials/what-is-a-git-repository>
#### Git 初学者教程
[https://www.youtube.com/embed/A-4WltCTVms?feature=oembed](https://www.youtube.com/embed/A-4WltCTVms?feature=oembed)
视频
管理您的库从未如此容易——Git kraken 的直观组织将确保快速访问您的 Git 项目。
Git 储存库
## Git 中的存储库是什么?安装 Git 后,可以将其初始化到一个项目中,以创建一个新的 Git repo。
Git 存储库是项目中的`.git/`文件夹。该存储库跟踪对项目中的文件所做的所有更改,构建一段时间的历史记录。也就是说,如果您删除了`.git/`文件夹,那么您就删除了项目的历史。
在这个 Git 初学者教程视频中,您将了解 Git 存储库如何跟踪文件更改以构建历史记录。另外,看看当你删除一个 Git 存储库时会发生什么,以及如何在 [GitKraken Git GUI](https://www.gitkraken.com/git-client) 中处理 repos。
在这个 Git 初学者教程视频中,您将了解 Git 存储库如何跟踪文件更改以构建历史记录。另外,看看当你删除一个 Git 存储库时会发生什么,以及如何在 [GitKraken Git GUI](https://www.gitkraken.com/git-client) 中处理 repos。
如何用 GitKraken 创建 Git 存储库
## 当您初始化一个项目时,GitKraken 将为您创建 Git 存储库。
假设我们刚刚在 Finder 或 File Explorer 中创建了一个文件夹,我们计划在其中构建我们的项目。现在我们可以打开 GitKraken 并导航到左上角的文件夹图标,然后选择`INIT`选项卡。
浏览之前创建的文件夹,点击`Initialize`!这项动作会在您的专案中建立`.git/`资料夹,它会监视并追踪档案的变更。这也包括您在存储库中添加、重命名或删除的任何新文件。
在 GitKraken 中创建和克隆 Git 库的过程再简单不过了,允许 Git 新手参与团队项目。
在 GitKraken 中创建和克隆 Git 库的过程再简单不过了,允许 Git 新手参与团队项目。
使用 GitHub 存储库
## 如果需要推送本地 GitHub 库怎么办?GitKraken 允许您选择集成,然后从 GitKraken 内部初始化它。你也可以使用 GitLab、Bitbucket 和 Azure DevOps(以前的 VSTS)上的存储库。
一旦你更新了上游,这将允许你把一个本地项目升级到这个 GitHub 库。
在 GitKraken 的 Git 图形用户界面的帮助下,管理您的 Git 库从未像现在这样直观。GitKraken 连续五年被评为最受欢迎的 Git GUI,可以免费下载。
在 GitKraken 的 Git 图形用户界面的帮助下,管理您的 Git 库从未像现在这样直观。GitKraken 连续五年被评为最受欢迎的 Git GUI,可以免费下载。
# Git 中的拉请求是什么?|中级 Git 教程
> 原文:<https://www.gitkraken.com/learn/git/tutorials/what-is-a-pull-request-in-git>
#### ******************中级饭桶教程******************
[https://www.youtube.com/embed/2VX1ISk9XH8?feature=oembed](https://www.youtube.com/embed/2VX1ISk9XH8?feature=oembed)
视频
当处理 pull 请求时,GitKraken 会清楚地显示您在哪个分支上,PR 指的是哪个分支,这是高级 Git 用户经常会犯的错误。
Git 中的拉请求是什么?pull request 是 Git 中的一个事件,贡献者请求 Git 仓库的维护者检查他们想要合并到项目中的代码。
观看这个中级 Git 教程视频,了解如何在 GitHub 之类的远程托管服务上派生 Git 存储库。您还将学习如何将 GitHub 存储库克隆到您的本地机器上,这样您就可以在将代码推送到分叉的存储库之前对其进行更改。
该视频还包括让您的 Git 拉取请求获得批准和变更合并的技巧和最佳实践,并了解如何在 GitHub 中打开拉取请求。
Git 拉取请求审批
## Git 中批准拉取请求的过程将包括让项目维护人员审查您的工作;之后,他们会提供注释,或者,如果您的请求被批准,他们会将您的更改直接合并到主存储库中。
Git 中批准拉取请求的过程将包括让项目维护人员审查您的工作;之后,他们会提供注释,或者,如果您的请求被批准,他们会将您的更改直接合并到主存储库中。
GitKraken 中的拉式请求集成
## GitKraken 支持与以下远程托管服务的拉式请求集成:
GitKraken 支持与以下远程托管服务的拉式请求集成:
在您使用上述集成之一来 [Git 克隆一个存储库](https://www.gitkraken.com/learn/git/git-clone)之后,repo 将作为一个遥控器出现在您的中央图的左侧面板上。
在 GitKraken UI 中清楚地列出您可用的远程 repos 的即时视觉上下文,可以使在这些远程上执行操作更加安全。
Git 拉请求示例
当您准备好提交变更以供批准时,您可以将您的功能分支拖放到主 repo 的目标分支上,以从下拉菜单中触发创建拉请求选项的选项。
## 您也可以通过点击左侧面板上`Pull Requests`部分的绿色`+`图标来启动此过程。
要完成创建 PR 的过程,只需点击 Git pull 请求模板底部的`Create pull request`。还不错,对吧?
Git 拉请求模板
GitKraken 在创建新的 PRs 时支持 Git pull 请求模板,允许您指定详细信息,如标题、描述、审阅者和标签。
Git 拉请求模板
## 使用可免费下载的传奇式跨平台 GitKraken Git GUI ,简化创建 Git pull 请求的流程,并简化整个团队的 PR 模板。
使用可免费下载的传奇式跨平台 GitKraken Git GUI ,简化创建 Git pull 请求的流程,并简化整个团队的 PR 模板。
使用可免费下载的传奇式跨平台 GitKraken Git GUI ,简化创建 Git pull 请求的流程,并简化整个团队的 PR 模板。
Make the process of creating Git pull requests easier and streamline PR templates across your team using the legendary cross-platform [GitKraken Git GUI](https://www.gitkraken.com/git-client), available for free download.
# 持续集成入门
> 原文:<https://www.gitkraken.com/blog/what-is-continuous-integration>
*本文由特邀作者 MONCCO PR 首席执行官卡格拉·埃图格鲁尔撰写。*
当扩展您的团队的能力时,不可能过高估计一个强大的开发环境的重要性。
如今,大多数组织都使用 [Git](https://git-scm.com/) ,许多组织使用的流行且成功的开发模型之一是 [Gitflow](/blog/gitflow) 。当利用这种模型时,持续集成(CI)是关键,因为它能够更快地交付项目,并由于自我管理和易于控制的[专门团队](https://www.scnsoft.com/services/dedicated-development-teams)而降低风险和费用。在本文中,我将解释持续集成的好处以及如何实现它们。
## **什么是持续集成?**
[持续集成](https://martinfowler.com/articles/continuousIntegration.html)始于开发人员通过版本控制系统,如 Git,通过共享存储库与代码进行交互和协作。开发人员定期推进他们的工作,一旦变更完成,就会运行一系列自动化操作。
自动化操作可能包括静态代码分析、拼写检查、安全检查、单元测试、集成测试等等。这些操作是为了在工作流程的各个步骤中出现任何失败时快速通知开发人员。
## **持续集成工具**
有各种各样的持续集成工具可用。一些最受欢迎的工具包括:
* Jenkins :这个 CI 工具管理和控制软件交付过程。让 Jenkins 能够监视您托管的回购上的代码更改,并启动自动化构建。
* [Azure DevOps:](https://www.gitkraken.com/resources/devops-report-2020#azure-devops-deploy) 微软创建了这套 DevOps 解决方案,通过持续集成自动化流程的每一步,允许开发人员从代码到云。
* GitLab CI: 该工具提供了从规划到部署的无缝体验,可以在多台机器上拆分构建以快速执行。
* GitHub Actions:GitHub Actions 非常适合在 GitHub 上托管项目回购的团队,它提供了构建、测试和部署的自动化操作。
## **用于代码审查的静态分析器**
代码质量在任何软件项目中都是至关重要的,但是开发人员通常会走捷径来满足最后期限。包含静态分析器有助于通过避免错误来提高代码质量。
静态分析器可以很容易地集成到开发环境和持续集成过程中。Analysis-Tools.dev 按照编程语言整理了一份流行的静态分析工具列表。
通过启用分析器,开发人员可以更容易地识别和修复错误。这反过来又减轻了最终代码审查者的任务,他们可以专注于审查代码的功能,而不是专注于常见的反模式或代码风格。
**单元测试**
## 单元测试是测试一个功能单元的过程。这是一个自动化的测试过程,在这个过程中,每当代码变更被推送到存储库时,测试用例就会被编写和执行。
单元测试有利于测试逻辑功能或算法,并且可以避免在重构代码时中断更改。这里有一些在编写单元测试时避免致命错误的[技巧。](https://lukaszcoding.com/2020/07/7-fatal-unit-test-mistakes-to-avoid/)
在单元测试中,一个外部依赖被模仿,这有助于在几分钟内运行几千个测试。当您的团队重构现有功能时,正确编写的覆盖更多代码的单元测试有助于降低风险。
In unit tests, an external dependency is mocked which helps run several thousands of tests within minutes. Properly written unit tests covering more code helps reduce risks when your team is refactoring existing functionalities.
**集成测试**
## 在[集成测试](https://martinfowler.com/bliki/IntegrationTest.html)中,测试整个功能,而不仅仅是功能单元。在这里,数据库或外部依赖没有被嘲笑。因为没有模仿依赖项和数据库,所以与单元测试相比,集成测试将花费更多的时间来运行。集成测试应该被巧妙的编写以覆盖所有的功能,并且应该有足够的测试来确保系统按预期运行。
添加太多的集成测试可能会产生一个维护噩梦,尤其是如果没有正确编写的话。如果使用单元测试可以确保功能性,那么这应该是集成测试的首选策略。更多的集成测试将需要更多的执行时间,这反过来会减慢部署过程。
例如,集成测试可以在预定的基础上运行,也可以按需运行,而不是对每个拉请求都运行集成测试。集成测试还有助于避免在代码库或团队扩展时破坏现有功能的变化,并可以节省数小时的手动测试。
了解更多关于集成测试的信息,包括一种叫做[基于快照的测试](https://blog.sharetechlinks.com/integration-testing-asp-net-core-web-api-snapshot-based-technique-system-design/)的方法。
Learn more about integration testing, including a method called [snapshot-based testing](https://blog.sharetechlinks.com/integration-testing-asp-net-core-web-api-snapshot-based-technique-system-design/).
**拉请求&持续集成**
## [拉请求](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests)创造了一个健康讨论代码的机会。不管你的团队是大是小,都应该鼓励拉请求。
当一个开发人员提交一个拉请求时,他们是在请求一个同事,或者可能是经理,在他们被接受为项目的最终版本之前审查和批准代码变更。代码审查有助于提高质量和避免常见错误。
***在这个中级 Git 教程视频中,增加你关于拉请求的知识。[学习 Git:什么是拉请求?](https://www.gitkraken.com/resources/video-pull-request)***
虽然对于持续集成来说不是强制性的,但是拉请求启用了一个人工检查点,这是一个无法通过设计实现自动化的好处。
While not mandatory for continuous integration, pull requests enable a human checkpoint, a benefit that can’t be automated by design.
**功能切换为更快释放**
## [特性切换](https://martinfowler.com/articles/feature-toggles.html),也称为特性标志,有助于以更快的速度交付特性。通过这种技术,可以使用配置来启用或禁用某个功能,这有时就像真/假条件检查一样简单。当一个特性完成时,只需将该特性的配置值设为 true,就可以在产品中启用该特性。这在处理扩展到多个版本的大型功能时尤其有用。
在 Git 中,一个常见的工作流程是在一个特性完全完成后,将一个特性分支从开发合并到生产中。虽然这个过程对于小特性来说很棒,但是对于可能需要一个月或更长时间来实现的大特性来说,它可能会造成复杂性。在这种情况下,与开发分支相比,本地分支将变得过时,很可能导致大量的代码冲突。特性切换是解决这个问题的一个很好的方法。
这种技术也可以用于部分地推送到远程存储库,但是也可以合并和发布。在发布期间,尚未完成的特性可以被“关闭”,而其他特性则被发布。当一个特性被完全测试并准备就绪时,它就可以被“打开”了
最后,开发人员可以使用这种技术为特定的用户群打开一个特性来进行 A/B 测试。
Lastly, developers can use this technique to turn on a feature for a certain group of users for A/B testing.
**利用 CI 优化您的工作流程**
## 如果配备了正确的工具,持续集成可能比您想象的更容易实现。当谈到软件开发时,自动化是未来的发展方向,现在未能采用这些策略的团队将被落在后面。
If equipped with the right tools, continuous integration can be easier to implement than you might expect. Automation is the way of the future when it comes to software development, and teams who fail to adopt these strategies now will be left in the dust.
# 什么是 Git Bash | Windows 下载终端
> 原文:<https://www.gitkraken.com/blog/what-is-git-bash>
这篇文章是一位客座作者写的。
更新日期:2022 年 6 月 22 日
简而言之, [Git Bash](https://www.gnu.org/software/bash/) 是一个用于 Microsoft Windows 操作系统环境的应用程序,它为 Git 命令行命令提供了基于 Unix 的 shell 实用程序和经验。Git Bash 为 Windows 用户模拟了 Unix 环境中的 Git 命令行体验。大多数 Windows 用户在第一次[为 Windows](https://www.gitkraken.com/learn/git/git-download#download-git-for-windows) 安装 Git 时都会下载 Git Bash。
作为版本控制系统, [Git](https://git-scm.com/) 最初是在 Unix 风格的命令行方法中交付的。MacOS & Linux 操作系统有一个内置的终端外壳,支持基于 Unix 的命令行特性,而微软 Windows 操作系统的命令行提示符不是基于 Unix 的终端。
因为 Windows 命令行不支持基于 Unix 的命令,所以 Git CLI 特性主要是通过 Windows 操作系统中用户友好的 GUI 应用程序提供的。
这些应用程序为最终用户提供了可视化的功能,这使得使用 Git 更加容易。甚至他们中的一些,像 [GitKraken Client](https://www.gitkraken.com/git-client) ,为常见的 [Git 命令](https://www.gitkraken.com/learn/git/commands)提供拖放功能,因此终端用户不需要知道管理他们代码库的每一个命令。这使得初学者在使用 Git 的最初阶段更加容易。
随着 Git 经验的增加,最终用户可能更喜欢使用 Git 命令行特性来执行特定的命令。Git Bash 是一个在 Windows 操作系统中向最终用户提供命令行特性的工具。开发人员可以用来在 Windows 上与命令行交互的另一个工具是 [GitKraken 客户端的 CLI](https://www.gitkraken.com/cli) 。
涵盖 Git Bash 主题
### [Git Bash 简介](https://www.gitkraken.com/blog/what-is-git-bash#introduction-to-git-bash)
[Git Bash Download](https://www.gitkraken.com/blog/what-is-git-bash#git-bash-download)
[通过 GitHub 使用 Git Bash】](https://www.gitkraken.com/blog/what-is-git-bash#using-git-bash-with-github)
[Git Bash 命令](https://www.gitkraken.com/blog/what-is-git-bash#git-bash-commands)
[将 Git Bash 设置为 GitKraken 客户端的默认终端](https://www.gitkraken.com/blog/what-is-git-bash#Set-Git-Bash-as-Your-Default-Terminal-in-GitKraken-Client)
[Git Bash 常见问题解答](https://www.gitkraken.com/blog/what-is-git-bash#git-bash-faq)
[Git Bash 常见问题解答](https://www.gitkraken.com/blog/what-is-git-bash#git-bash-faq)
“@GitKraken Client 是跟踪代码的最佳图形工具之一。我以前只用 Bash。GitKraken 客户端让我的生活简化了很多!”–[@ Elena manele](https://twitter.com/elenaManele/status/1093260552548352008)
Git Bash 简介
外壳是一种计算机应用程序,它与操作系统集成,并向最终用户或其他应用程序公开其服务。Bash 是 Bourne Again Shell 的缩写,是 GNU 项目的 Shell。
## Git Bash 不仅仅是微软 Windows OS 的 Bash 包。它包括 bash 实用程序、Unix 集合,如安全 Shell 协议( [SSH](https://www.gitkraken.com/learn/git/tutorials/how-git-ssh-works) )、安全复制协议( [SCP](https://en.wikipedia.org/wiki/Secure_copy_protocol) )、 [CAT](https://en.wikipedia.org/wiki/Cat_(Unix)) (按顺序读取文件,并将其写入标准输出的 Unix 实用程序),以及为 Windows 和 Git 特性编译的其他基于 Unix 的集合。
Git Bash 为 Windows 用户从命令行使用 Git 提供了一个包,但是 [GitKraken Client](https://www.gitkraken.com/git-client) 将使这些相同的操作更快、更直观。
Git Bash 中没有的一些东西,用户可以在 GitKraken 客户端中享受到,就是 Git 命令的自动建议和自动完成。只要在终端标签中输入一个命令,你就会看到相关的命令建议和描述。只需选择您正在寻找的命令并按回车键自动完成 Git 操作!
外壳是一种计算机应用程序,它与操作系统集成,并向最终用户或其他应用程序公开其服务。Bash 是 Bourne Again Shell 的缩写,是 GNU 项目的 Shell。
Git Bash 为 Windows 用户从命令行使用 Git 提供了一个包,但是 [GitKraken Client](https://www.gitkraken.com/git-client) 将使这些相同的操作更快、更直观。
GitKraken 客户端神奇的 Git 命令自动完成和自动建议功能将帮助您加速键盘驱动的 Git 工作流程,提高您的工作效率。
Git Bash Download
Git Bash 可以作为其他 Windows 应用程序安装,但是您需要首先从 Git Bash 下载页面下载可执行文件,然后按照安装步骤进行操作。
1.打开你最喜欢的浏览器,进入 Git-scm 上的 [Git Bash 下载](https://git-scm.com/downloads)页面。
GitKraken 客户端神奇的 Git 命令自动完成和自动建议功能将帮助您加速键盘驱动的 Git 工作流程,提高您的工作效率。
## 2.成功下载 Git Bash 可执行文件后,按照下面嵌入的视频中描述的安装步骤进行操作。视频中还列出了相关安装步骤的一些提示。
Git Bash 可以作为其他 Windows 应用程序安装,但是您需要首先从 Git Bash 下载页面下载可执行文件,然后按照安装步骤进行操作。
[https://www.youtube.com/embed/-lIdKmf28xE?feature=oembed](https://www.youtube.com/embed/-lIdKmf28xE?feature=oembed)
视频
[](https://git-scm.com/downloads)
3.瞧啊。Git Bash 已经可以在您的本地 Microsoft Windows 平台上使用了。
*如果您第一次使用上述过程下载 Git Bash 和 Git for Windows,您可能会发现在 Git 下载之后关于[配置 Git 的说明非常有用。在访问 Git 的所有功能和特性之前,您需要配置 Git。](https://www.gitkraken.com/learn/git/git-download#configure-git)
通过 GitHub 使用 Git Bash
在这一节中,我们将研究如何运行 Git Bash,并了解 Git 集成所需的一些基本 Git Bash 命令。由于 Git Bash 是 Microsoft Windows 平台上 Git 的命令行实用程序,在开始使用 Git Bash 之前,基本的 Microsoft Windows 命令提示符(CMD)知识将是有用的,因为它们非常相似。如果你不知道如何使用 CMD 特性,你可以看看微软相关网站上的 [Windows 命令参考](https://www.microsoft.com/en-us/download/details.aspx?id=56846)。
现在,让我们看一个 GitHub 使用 Git Bash 的例子。首先将 GitHub 帐户与 Git Bash 链接起来,开始配置 GitHub 存储库。如果您没有 GitHub 帐户,您可以直接从 [GitHub](https://github.com/) 主页创建一个。
你也可以参考 [GitHub 文档](https://docs.github.com/en)来获取大量关于 GitHub 使用的说明性文档。
Git Bash 命令
在进入如何配置 Git Bash 和如何使用它的步骤之前,您需要在 GitHub 上有一个存储库。如果这是你第一次在 GitHub 上创建存储库,查看相关的 [GitHub 文档](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github)以获得如何在 GitHub 上创建存储库的指导。
## 现在,让我们从头开始用您的 GitHub 帐户配置 Git Bash(本文中的示例将从[我的个人 GitHub 帐户](https://github.com/evrentan)中给出)。
1.第一步是运行 Git Bash。双击 Windows 桌面上的 Git Bash 图标,打开 Git Bash 界面。
现在,让我们看一个 GitHub 使用 Git Bash 的例子。首先将 GitHub 帐户与 Git Bash 链接起来,开始配置 GitHub 存储库。如果您没有 GitHub 帐户,您可以直接从 [GitHub](https://github.com/) 主页创建一个。
你也可以参考 [GitHub 文档](https://docs.github.com/en)来获取大量关于 GitHub 使用的说明性文档。
2.使用`cd` Git bash 命令用您的本地存储库工作区更改您的活动目录。Windows CMD 中的`cd`和`chdir`是设置活动目录的别名。
## 现在,您的 active directory 就是您的本地存储库。您可以使用`pwd`命令来验证您的活动目录。
在进入如何配置 Git Bash 和如何使用它的步骤之前,您需要在 GitHub 上有一个存储库。如果这是你第一次在 GitHub 上创建存储库,查看相关的 [GitHub 文档](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github)以获得如何在 GitHub 上创建存储库的指导。
现在,让我们从头开始用您的 GitHub 帐户配置 Git Bash(本文中的示例将从[我的个人 GitHub 帐户](https://github.com/evrentan)中给出)。
3.这一步与配置你的 GitHub 邮箱和 GitHub 用户名有关。键入以下命令来链接您的 GitHub 电子邮件和 GitHub 用户名。
a.现在,您可以将“git-bash-intro”存储库克隆到您的本地工作区。首先,从您的 GitHub 库获取克隆链接,如下所示:
2.使用`cd` Git bash 命令用您的本地存储库工作区更改您的活动目录。Windows CMD 中的`cd`和`chdir`是设置活动目录的别名。
b.然后,键入下面的命令来克隆您的存储库。您将使用刚刚从 GitHub 存储库中复制的克隆链接。
在[克隆 Git 库](https://www.gitkraken.com/learn/git/git-clone)时有两个重要的提示。第一:如果创建私有库,还需要有相关的 GitHub 权限。在这个 Git Bash 示例中,`git-bash-intro`存储库被初始化为 public。你可以查看 GitHub 文档中的[库可见性章节](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-repository-visibility),了解更多关于 GitHub 库权限的信息。
```
git config --global user.name "%yourGitHubUserName%"
git config --global user.email "%yourGitHubUserEmail%
```
另一个有用的提示是,在克隆存储库时,您可能会遇到以下错误:
`fatal: could not create work tree dir 'git-bash-intro': permission denied`
该错误表明您没有使用在本地 Microsoft Windows 平台上执行更改所需的权限来启动 Git Bash。可以以管理员身份运行 Git Bash 来解决。
4.接下来,您将把一个存储库克隆到您的本地工作区,以创建一个与您的 GitHub 存储库同名的文件夹。
```
git clone "%yourRepositoryCloneLink%"
```
5.在您的本地存储库中添加一个名为“firstCommit.txt”的新文本文件。
另一个有用的提示是,在克隆存储库时,您可能会遇到以下错误:
`fatal: could not create work tree dir 'git-bash-intro': permission denied`
6.是时候将您的本地更改反映到您的远程 GitHub 存储库中了。在这里,您将需要运行一组命令来将更改推送到您的远程`git-bash-intro`存储库。
现在,让我们看看这些 Git bash 命令是什么意思:
git add:这个命令向 git 索引添加内容,并用本地工作树更新索引。可以用“.”添加所有工作树的内容,或者您可以明确地提到您想要添加的内容。
比如说;您可以使用“git add firstCommit.txt”将“firstCommit.txt”添加到索引中。
更多详情,可以访问 Git-scm 上的 [git-add 文档页面。](https://git-scm.com/docs/git-add)
git commit:该命令使用索引的当前内容和描述更改的日志消息创建一个新的提交实例。如需了解更多详情,您可以访问 GitKraken 学习 Git 中心的 [Git 提交](https://www.gitkraken.com/learn/git/commit)页面。
git push:这个命令用本地引用更新远程引用。在这个例子中,我们将使用我们的本地更改来更新我们的远程存储库中的主分支。
更多详情,可以访问 Git-scm 上的 [git-push 文档](https://www.google.com/url?q=https://git-scm.com/docs/git-push&sa=D&source=editors&ust=1626477349296000&usg=AOvVaw2A2gz1LCEWKdjOBjP-V1HT)页面。
git pull:这个命令将把所有的变更从远程存储库分支拉到您的本地存储库分支。
更多详情可以观看新手 Git 教程视频:[什么是 Git Pull](https://www.gitkraken.com/learn/git/tutorials/what-is-git-pull) ?。
7.确认远程存储库在 GitHub 帐户中。果然,新文件“firstCommit.txt”就在那里!
```
git add .
git commit -m "first commit"
git push origin master
```
现在,让我们看看这些 Git bash 命令是什么意思:
* git add:这个命令向 git 索引添加内容,并用本地工作树更新索引。可以用“.”添加所有工作树的内容,或者您可以明确地提到您想要添加的内容。
比如说;您可以使用“git add firstCommit.txt”将“firstCommit.txt”添加到索引中。
更多详情,可以访问 Git-scm 上的 [git-add 文档页面。](https://git-scm.com/docs/git-add)
* 现在您已经了解了 Git Bash 的介绍,您可以很容易地在自己的项目中采用这些步骤,将 Git Bash 与您的 GitHub 帐户集成在一起,并将 Git 版本控制系统用于您的代码库。
* 或者,使用 GitKraken Client 将命令行终端与 Windows 集成的过程要简单得多,步骤也少得多。只需在你的 Windows 机器上下载 GitKraken 客户端,打开一个新标签,点击`New Terminal Tab`。然后开始输入你的命令开始工作——说真的,就是这么简单!
* git pull:这个命令将把所有的变更从远程存储库分支拉到您的本地存储库分支。
更多详情可以观看新手 Git 教程视频:[什么是 Git Pull](https://www.gitkraken.com/learn/git/tutorials/what-is-git-pull) ?。
通过 GitKraken **客户端**使用 GitHub
与在 Git Bash 中使用 GitHub 相比,在 GitKraken 客户端中,您只需使用您的 GitHub 凭证登录 GitKraken 客户端,就可以利用强大的 GitHub 集成的全部功能。从那里开始,只需几个简单的步骤就可以[生成一个 SSH 密钥并添加到 GitHub](https://www.gitkraken.com/learn/git/problems/github-add-ssh-key) 中,然后克隆或派生一个 GitHub 库。了解更多关于开发者[如何使用 GitKraken 客户端和 GitHub](https://www.gitkraken.com/integrations/github) 实现无缝 Git 工作流,包括[创建 GitHub 拉请求](https://www.gitkraken.com/learn/git/problems/github-pull-requests)。
将 Git Bash 设置为 GitKraken 客户端中的默认终端
Git Bash 是 Windows 用户的救命稻草,他们希望利用 Git 命令行的强大功能进行版本控制。正如本文所述,安装 Git Bash 并开始使用它很容易。
更好的是,使用 [GitKraken Client](https://www.gitkraken.com/git-client) ,您可以将 Git Bash 的强大功能与可视化工具相结合——如提交图、差异视图、文件历史和责备,以释放更多的生产力。
要将 Git Bash 用作 GitKraken 客户端内置 CLI 的默认 shell,请执行以下步骤:
## 从顶部工具栏中选择由齿轮图标表示的`Preferences`
从左侧导航中,选择`Terminal`
选择`Default Terminal`
## 从随后的下拉菜单中,选择`Git Bash`
你都准备好了!享受 Git Bash 的强大功能和强大可视化特性的便利,它们被组合到一个豪华的工具中:GitKraken Client。
去吧 Bash FAQ
问:如何粘贴到 Git Bash 中?
* 要在 Git Bash 中复制文本,按住`Shift`并使用左/右箭头选择所需的文本,然后点击`Enter`。要粘贴到 Git Bash,请按键盘上的`Insert`。
* 问:如何更新 Git Bash?
* 答:更新 Git Bash 只需更新 Git for Windows 即可。从命令行运行`git update-git-for-windows`。
* 从随后的下拉菜单中,选择`Git Bash`
GitKraken 客户端彻底改变了 Git!借助 commit graph 等强大的可视化工具,获得键盘驱动、Git 增强的终端体验,帮助您加快工作流程。
去吧 Bash FAQ
问:如何粘贴到 Git Bash 中?
## 要在 Git Bash 中复制文本,按住`Shift`并使用左/右箭头选择所需的文本,然后点击`Enter`。要粘贴到 Git Bash,请按键盘上的`Insert`。
### 问:如何更新 Git Bash?
答:更新 Git Bash 只需更新 Git for Windows 即可。从命令行运行`git update-git-for-windows`。
### GitKraken 客户端彻底改变了 Git!借助 commit graph 等强大的可视化工具,获得键盘驱动、Git 增强的终端体验,帮助您加快工作流程。
A: Updating Git Bash can be accomplished simply by updating Git for Windows. From a command line, run `git update-git-for-windows`.
GitKraken Client has revolutionized Git! Get a keyboard-driven, Git-enhanced terminal experience with powerful visualizations like the commit graph to help you accelerate your workflow.
# 什么是 Git 克隆?Git 初学者教程
> 原文:<https://www.gitkraken.com/learn/git/tutorials/what-is-git-clone>
通过使用 GitHub repo 练习按照教程进行操作,巩固您对克隆的理解。
[Practice Cloning](https://github.com/Axosoft/moby-git)
# 什么是 Git Pull?Git 初学者教程
> 原文:<https://www.gitkraken.com/learn/git/tutorials/what-is-git-pull>
GitKraken 简化了协作 Git 操作,如推和拉,以改进您团队的工作流程。
# 什么是 GitOps?|了解方法、工作流程和工具
> 原文:<https://www.gitkraken.com/blog/what-is-gitops>
这篇文章是一位客座作者写的。
不久前,如果我们想将代码投入生产,我们需要手动配置服务器,即我们的基础设施,来托管我们的应用程序或数据库。这种手动过程不仅耗时,而且容易出错。这就是为什么目前开发人员选择创建负责配置基础设施的“脚本”。这些“脚本”被称为代码基础设施(IaC)。
随着应用程序的发展,我们的代码基础设施也在发展。简单的 Bash 脚本或 Python 脚本已经不够了;这就是为什么像 Terraform、Ansible、Chef 或 Puppet 这样的工具来拯救我们。所有这些工具都允许我们轻松地指出我们的基础设施需要执行的指令,以便为托管我们的代码做好准备。
这就是为什么今天,IaC 是标准。它让我们的生活变得更容易,但是当…
* 我们有这种令人敬畏的基础设施作为代码,可以自动化这么多事情,但我们仍然在我们的云提供商( [GCP](https://cloud.google.com/) 、 [AWS](https://aws.amazon.com/) 、 [Azure](https://azure.microsoft.com/) 等)中手动运行它们?
* 我们对它进行了修改,然后不经过代码审查或测试就直接运行了?
可以想象,这是一个缓慢的过程,在这个过程中,很多事情都会出错。
我们能为 IaC 做的最好的事情就是检查它,测试它并自动化部署过程。简而言之,使用 GitOps 实现代码❤️.一样漂亮的基础设施
## **什么是 GitOps?**
GitOps 是交付 IaC 的现代方法。在这种方法中,我们使用 Git 来跟踪代码的发展,我们审查变更,我们批准它们,然后我们部署这些变更,就像我们处理应用程序代码一样。
GitOps 流程并不复杂,所以没有理由不使用它。
GitOps 的流程如下所示:
在这里,您可以看到 [GitKraken Git GUI](https://www.gitkraken.com/git-client) 处于暂存和提交阶段,因为它允许我们暂存和提交我们的更改。此外,GitKraken 将允许我们打开一个拉请求, [GitHub](https://www.gitkraken.com/integrations/github) , [GitLab](https://www.gitkraken.com/integrations/gitlab) ,以及 [Bitbucket](https://www.gitkraken.com/integrations/bitbucket) 。
GitKraken 在 GitOps 流程中起着至关重要的作用,并且能够在生产流水线的其他阶段之间实现无缝过渡。
对于代码开发人员来说,这个流程听起来很熟悉,对吗?但是流动并没有就此结束;我们需要将 IaC 放在我们的服务器集群中。我们有两个选择来实现这一点:
1. 推送模型
2. 拉模型⭐️
**推送模式**
### 这时,我们的 CI/CD 服务器在集群上执行一个命令来猜测…将新代码推送到部署环境。🥳
**拉动模式**
在另一个模型中,我们在集群中安装了一个代理(如 Argo CD 或 Flux CD)。这个代理负责从我们的存储库中提取变更。🥳🥳
### **Pull Model**
**gitop 的工具**
你可能在想:什么工具能够让 GitOps 流发生?
嗯,我已经(随机)提到了其中的一些,但我会列出一些行业内的标准。
## 当然,Git 是这个流程的基石。记住,GitOps 是关于交付高质量的代码。Git 将允许我们跟踪和观察代码的发展。
当您完成对 IaC 的更改后,您可以在提交之前使用 [GitKraken Git GUI](https://www.gitkraken.com/git-client) 轻松查看它们。
此外,GitKraken 允许您轻松检查文件中的更改历史。下面显示的是 GitKraken Diff 视图,它使用颜色来显示添加和删除的行,因此您可以快速了解您正在查看的内容。
Of course, Git is the cornerstone for this flow. Remember, that GitOps it’s about delivering quality code. Git will allow us to track and observe the evolution of our code.
When you finish your changes to your IaC, you can effortlessly review them with the [GitKraken Git GUI](https://www.gitkraken.com/git-client) before you commit them.
提交后,你可以从 GitKraken 打开一个 [Git pull 请求,不管你使用的是 GitHub、GitLab 还是 Bitbucket。同样在 GitKraken 中,您可以查看团队成员创建的拉动请求。](https://www.gitkraken.com/learn/git/tutorials/what-is-a-pull-request-in-git)
💡不需要浏览器:从 GitKraken,你可以批准或者评论 [GitHub pull 请求](https://www.gitkraken.com/learn/git/problems/github-pull-requests)。这样节省了很多时间。
*GitKraken File History – Diff View*
对于**推模型,**我们可以使用: [Jenkins](https://www.jenkins.io/) 是一个开源的自动化服务器,它使世界各地的开发人员能够可靠地构建、测试和部署他们的软件。
对于**拉模型,**我们可以使用: [ArgoCD](https://argo-cd.readthedocs.io/en/stable/) 是一个持续部署工具,它只通过执行拉来实现对存储库的监控。
有了 GitKraken 的力量在你身边,在代码审查中没有任何变化会逃过你的眼睛!你可以从这里下载 GitKraken。
For the **Push Model,** we can use: [Jenkins](https://www.jenkins.io/) is an open source automation server that enables developers around the world to reliably build, test, and deploy their software.
准备好潜入 GitOps 了吗?
请记住,如果您的 IaC 不如您的应用程序代码好,您的基础设施很可能会失败。没有基础设施,任何人都不能使用您的应用程序。因此,最好通过只引入经过测试和审查的代码来保证 IaC 的安全。
在您的项目中实现 GitOps 流并不复杂,即使您以前从未使用过 Git,也有一些工具可以让它变得简单得多,比如 GitKraken。使用 GitOps 带来了许多其他优势,例如:
## 质量代码
自动化过程
对所有团队透明
* 快速部署和回滚
* 另一方面,你可能已经在你的项目中应用了 GitOps,但是如果你还没有使用 GitOps,那么是时候开始了。🚀
* Transparency to all the team
* Fast Deploy and Rollback
你可以在作者个人网站上用西班牙语阅读这篇帖子: [*Qué es GitOps?*](https://www.tanx.dev/2021/09/01/que-es-gitops.html)
On the other hand you may be already applying GitOps to your project, but if you are not using GitOps yet, it’s definitely time to start. 🚀
如果你用正确的工具装备自己,在 GitOps 取得成功要容易得多。GitKraken 将帮助完成 GitOps 流程的多个阶段,包括准备、提交、拉请求和代码审查。
You can read this post in Spanish on the author’s personal website: [*¿Qué es GitOps?*](https://www.tanx.dev/2021/09/01/que-es-gitops.html)
Succeeding at GitOps is far easier if you equip yourself with the right tools. GitKraken will help fulfill multiple stages of the GitOps flow, including staging, committing, pull requests, and code review.
# GitHub Universe 2017 不容错过的内容
> 原文:<https://www.gitkraken.com/blog/what-not-to-miss-at-github-universe>
从旨在帮助软件开发人员集中精力编写代码的播放列表中进行选择。播放列表包括流行的音乐剧、视频游戏曲目、棕色噪音等等。
# 技术领域的女性采访和网络研讨会
> 原文:<https://www.gitkraken.com/blog/women-tech-interview>
称艾米·艾尔斯为开发者、天才、勤奋者或问题解决者,但不要称她为先驱。因为她并不觉得科技领域存在性别问题。在你开始想“等等,什么?有问题!我们有一个差距,我们需要与之抗衡!不鼓励我们女生喜欢数学和科学!”请继续读下去…
很明显,每天和大约 15 个男人坐在一个编码室里的 Axosoft 开发人员 Ayres 一直是一个鹤立鸡群的人。艾尔斯说,进入一个男性主导的行业的关键只是强大的基础和信心。当然,还有智力。
“我很幸运,我们家里有一台电脑,而大多数人都没有,”Ayres 解释说。“我的高中有一门计算机课,尽管对我来说有点简单,老师还是让我做我想做的事情。”小学时,艾尔斯有一个苹果 IIe,附带“几本书和一些简单的游戏。”
这说明了很多,因为艾尔斯很满意自己的工作,做自己的事情,并且非常满足于她在那个男性主导的开发室中坚持自己的事实。和她相处一段时间后,你要完全相信自信是关键。
“当我三年级的时候,我因为一些事情惹了麻烦,一个老师要我写 100 遍‘我不会…..不管我犯了什么过错。所以我没有写,而是写了 4-5 行代码,简单地将文本打印了 100 次。“老师有点恼火,但印象深刻,她传达道。
艾尔斯认为,坚定的决心加上强大的支持性基础肯定会让她获得成功。这似乎是显而易见的,但她的父母知道他们在和什么样的脑力打交道,以及如何帮助她实现成功。她的父亲是一所大学的网络工程师,母亲主修数学,后来在一所社区大学教授计算机科学。回忆起她的童年,艾尔斯说,
> “我父母为我做的最好的事情之一就是完全不帮忙。我必须解决自己的问题,成为一个非常独立的人。”
一旦艾尔斯被大学录取,她就选择了计算机科学作为专业。如果那不起作用,b 计划是电气工程。当被问及是否有人试图劝她放弃时,她脸上的表情是一种*你在开玩笑吗?*
“当你在六年级做八年级的数学时,你很清楚自己的优势在哪里——不管你是什么性别,”她说,“只要做你擅长的事情,知道你的心在哪里。”
艾米·艾尔斯
很明显,艾尔斯是她自己的梯队中最优秀的女性,也是最优秀的学生之一——甚至在小学时也完全适应了。但是,艾尔斯对那些可能不在班上名列前茅、对自己的数学或技能有点不确定或者被“性别问题”困扰的学生有什么建议呢
> “试一试没什么坏处。试着去做,你会获得解决问题的技能,无论发生什么都会对你有帮助。即使在某种程度上没有成功,你仍然获得了那些技能。你可能会决定改变。但是你没有失去任何东西。她说:“你可以将这些技能用于任何职业。
“这真的不是男孩对女孩的问题,”她补充道。“关键在于你是否擅长于此。每个人都应该做自己想做的事情。不要为了讨好别人而去做一些自己认为应该做的事情。跟着自己的心走就好了。”
我们通过研究知道,女孩在 12-17 岁之间会进入一个特别脆弱的时期。这是他们的信心动摇的时候,也是他们易受外界影响的时候。
> “我认为这是一些女孩为了不被视为书呆子而感到压力的时候。”
艾尔斯特别提到了她自己的两个孩子。她试图总是确保他们得到足够的支持。“如果你的家庭生活很美满,你就能更容易地在现实世界中捍卫自己。”
随之而来的是,如果一名女性发现自己身处科技行业,她们会有足够的自信去解决她们看到的任何问题,包括歧视。
> “你不会想为那些会歧视任何人的人工作,”艾尔斯解释道。“我只是把它看作是对我的一个额外的筛选过程。她解释说:“歧视是恶劣工作环境的一个很好的指标。
那么,技术岗位上的女性和男性有什么不同呢?“我认为有些女性倾向于更加努力,只是因为在某些地方她们确实需要证明一些东西。艾尔斯解释说:“我有一些朋友在完成学位的同时还在工作,尽管这个学位并不是 100%必要的。虽然这只是一个轶事,但它表明科技领域是一个人的领域,在这里,热情、激情和冒险是必不可少的。只要你有动力,你的性别并不重要。
如果您想了解更多关于在技术领域为女性创造文化的信息,包括如何雇佣和留住合格的多元化人才,请注册参加我们即将于 10 月 21 日上午 11 点(太平洋时间)举行的网络研讨会。
# WordPress、GitHub 和 GitKraken |如何为 WordPress 使用 Git
> 原文:<https://www.gitkraken.com/blog/wordpress-github>
这篇文章是一位客座作者写的。
如果你已经建立客户网站有一段时间了,你可能还记得 WordPress 出现之前的一段时间。当[建立网站](https://zyro.com/)意味着手工创建每一个 HTML 页面的时候。在某个时候,你可能认为每个客户在他们的网站上都需要*的共同特征,所以你开始使用一个客户的网站作为下一个客户的模板。当然,如今,WordPress 是许多现代网站的底层软件,没有必要重新发明核心功能。也许你总是从你建立的每个网站的相同主题开始,或者也许有你喜欢的一堆插件。*
如果你发现自己总是在建立一个新的 WordPress 站点时安装相同的主题和插件,那么可能是时候开始在 WordPress 中使用 Git 了,更具体地说是在 GitHub 中使用 WordPress。
毕竟,使用 Git 的可靠工作流对于灾难恢复非常有用,并且是快速部署新客户站点的高度可伸缩的模板。在本文中,您将学习在 WordPress 中使用 Git 和 GitHub,以及一些特定于 WordPress 的提示和技巧。
如果您在 GitHub 中使用 Git,请使用 GitKraken Git 客户端和 CLI 增强您的体验并提高工作效率。
## **为 WordPress 模板站点创建 GitHub 知识库**
为了将代码从你的 WordPress 站点复制到 GitHub,你需要[创建一个 GitHub 库](https://github.com/new)。考虑只为核心、插件和主题文件创建一个存储库(没有媒体),因为存储库的[推荐大小](https://docs.github.com/en/repositories/working-with-files/managing-large-files/about-large-files-on-github)是 1GB 或更小。如果你使用 GitHub 来备份你的代码库,这是一个专业的举动。如果你把它作为一个完整的备份解决方案,有[更好的选项](https://help.nexcess.net/74095-wordpress/creating-backups-in-managed-wordpress-portal)来考虑媒体文件和数据库归档。
WordPress .gitignore
## ProTip:创建存储库时,选择。gitignore 模板:WordPress 选项。它将为某些插件和插件文件夹添加一些默认的允许列表和跟踪首选项。或者,如果您愿意,您可以从这个[示例](https://gist.github.com/lukecav/bc2a0c368ca55185cbcf5d5687d717b4)中创建自己的 gitignore 文件。
ProTip:创建存储库时,选择。gitignore 模板:WordPress 选项。它将为某些插件和插件文件夹添加一些默认的允许列表和跟踪首选项。或者,如果您愿意,您可以从这个[示例](https://gist.github.com/lukecav/bc2a0c368ca55185cbcf5d5687d717b4)中创建自己的 gitignore 文件。
在命名您的 [Git 存储库](https://www.gitkraken.com/learn/git/tutorials/what-is-a-git-repository)时,尽可能地描述清楚。
ProTip:当 Git 和来自管理 WordPress 公司的 WordPress 一起使用时,从仓库中排除 WordPress 核心和特定于主机的 MU 插件是一个好主意,因为它们是代表你管理的。如有疑问,请咨询您的主机,以了解哪些文件是托管的。
ProTip:当 Git 和来自管理 WordPress 公司的 WordPress 一起使用时,从仓库中排除 WordPress 核心和特定于主机的 MU 插件是一个好主意,因为它们是代表你管理的。如有疑问,请咨询您的主机,以了解哪些文件是托管的。
**如何同步 WordPress 和 GitHub**
## 为了获得 Git for WordPress 的强大功能,你需要确保你的主机支持 Git *和*,这样你就可以访问命令行工具,比如 [GitKraken CLI](https://www.gitkraken.com/cli) 。
在本教程中,我们将连接到 Nexcess 上强大的[托管 WordPress 主机,并用现有站点创建我们的存储库。](https://www.nexcess.net/wordpress/)
在本教程中,我们将连接到 Nexcess 上强大的[托管 WordPress 主机,并用现有站点创建我们的存储库。](https://www.nexcess.net/wordpress/)
**找到您的 SSH 凭证**
### 首先,在站点的托管门户中获取 SSH 凭证。
首先,在站点的托管门户中获取 SSH 凭证。
记下主机名、端口、用户名和密码。这些都是连接到您的 web 服务器所必需的。如果你刚刚开始使用 Git for WordPress,学习一下 Git 中 SSH 的工作原理。
记下主机名、端口、用户名和密码。这些都是连接到您的 web 服务器所必需的。如果你刚刚开始使用 Git for WordPress,学习一下 Git 中 SSH 的工作原理。
GitKraken 提供的强大的 GitHub 集成使您能够轻松地生成 SSH 密钥并将其添加到 GitHub,推送 GitHub repos 和从 GitHub repos 中提取,管理 GitHub pull 请求,等等。
GitKraken 提供的强大的 GitHub 集成使您能够轻松地生成 SSH 密钥并将其添加到 GitHub,推送 GitHub repos 和从 GitHub repos 中提取,管理 GitHub pull 请求,等等。
[Learn More about GitKraken for GitHub](/integrations/github)
初始化你的远程代码库
## 在你通过 SSH 连接到 WordPress 站点 Git 之后,是时候寻找你想要组织到一个存储库中的文件了。
我们的文件在`public_html`目录中,因此我们将导航到该目录:
`cd public_html`
接下来,我们想要初始化 WordPress 服务器上的 Git 存储库。
`git init`
最后,是时候将活动目录指定为存储库的主要分支了。
接下来,我们想要初始化 WordPress 服务器上的 Git 存储库。
`git checkout -b main`
`git init`
最后,是时候将活动目录指定为存储库的主要分支了。
**将你的远程 WordPress 代码库推送到 GitHub**
接下来,您需要将您的用户电子邮件和姓名(来自 GitHub)添加到 git 配置中。为此,您可以使用下面的 [Git 命令](https://www.gitkraken.com/learn/git/commands)(记住交换您的实际信息)。如果使用 GitKraken,这些都可以从[你的用户档案](https://support.gitkraken.com/start-here/profiles/)中配置。
**将你的远程 WordPress 代码库推送到 GitHub**
`git config --global user.email "[you@example.com]" `
`git config --global user.name "[Your Name]"`
接下来,您需要将您的用户电子邮件和姓名(来自 GitHub)添加到 git 配置中。为此,您可以使用下面的 [Git 命令](https://www.gitkraken.com/learn/git/commands)(记住交换您的实际信息)。如果使用 GitKraken,这些都可以从[你的用户档案](https://support.gitkraken.com/start-here/profiles/)中配置。
## 现在大概也是[抢你 GitHub 令牌](https://github.com/settings/tokens/new)的大好时机。GitKraken 用户可以[通过 OAuth](https://support.gitkraken.com/integrations/github/) 向 GitHub 认证,而不需要手动检索。
接下来,您需要定义 GitHub 存储库的位置。
现在大概也是[抢你 GitHub 令牌](https://github.com/settings/tokens/new)的大好时机。GitKraken 用户可以[通过 OAuth](https://support.gitkraken.com/integrations/github/) 向 GitHub 认证,而不需要手动检索。
`git remote add origin https://github.com/[USERNAME]/[REPOSITORY NAME].git`
拉下。gitignore 文件从远程存储库使用;
接下来,您需要定义 GitHub 存储库的位置。
`git pull --set-upstream origin main `
`git remote add origin https://github.com/[USERNAME]/[REPOSITORY NAME].git`
既然您已经设置好了一切,那么是时候将您的代码库提交到您刚刚在远程服务器上创建的存储库中了。要创建您的第一个 [Git commit](https://www.gitkraken.com/learn/git/commit) ,您需要在暂存文件之前添加文件。您可以使用以下命令:
`git add`
然后,您可以使用以下命令将您的更改提交给 Git:
`git pull --set-upstream origin main `
`git commit -m "initial commit"`
既然您已经设置好了一切,那么是时候将您的代码库提交到您刚刚在远程服务器上创建的存储库中了。要创建您的第一个 [Git commit](https://www.gitkraken.com/learn/git/commit) ,您需要在暂存文件之前添加文件。您可以使用以下命令:
现在是关键时刻了!是时候将远程文件推送到您的 GitHub 存储库了。
`git add`
`git push origin main `
然后,您可以使用以下命令将您的更改提交给 Git:
就在那里!就这样,你的文件在你的远程服务器上被 Git 管理,并被推送到 GitHub。现在,下一次你需要建立一个客户的 WordPress 网站时,你可以放下你的代码库开始工作了!
`git commit -m "initial commit"`
**从 GitHub 恢复文件到 WordPress**
WordPress 的硬件设置几乎和天上的星星一样多。也许你只是想对你的内容文件夹进行版本控制,或者你想保持核心更新并部署到你所有的站点上。您从 GitHub 向 live 站点拉取或克隆的工作流程将在很大程度上取决于您的特定设置,无论您是否在托管主机上,以及其他服务器细节。
为了让你从正确的方向开始,[看看 stack exchange 上的这个帖子](https://stackoverflow.com/questions/5377960/git-whats-the-best-practice-to-git-clone-into-an-existing-folder)。
`git push origin main `
**使用 GitHub 部署 WordPress 插件**
因为许多 WordPress 主题和插件都是在 GitHub 中管理的,所以你可以直接从 GitHub 快速部署对特定站点插件或主题的修改。使用 WP-CLI 的强大功能和任何存储库的归档端点,只需使用以下命令就可以强制更新插件:
**使用 GitHub 部署 WordPress 插件**
`wp plugin install https://github.com/liquidweb/woo-better-reviews/archive/develop.zip --force`
WordPress 的硬件设置几乎和天上的星星一样多。也许你只是想对你的内容文件夹进行版本控制,或者你想保持核心更新并部署到你所有的站点上。您从 GitHub 向 live 站点拉取或克隆的工作流程将在很大程度上取决于您的特定设置,无论您是否在托管主机上,以及其他服务器细节。
## 为了让你从正确的方向开始,[看看 stack exchange 上的这个帖子](https://stackoverflow.com/questions/5377960/git-whats-the-best-practice-to-git-clone-into-an-existing-folder)。
就像魔术一样,WordPress 插件是从 GitHub 库安装的。
**使用 GitHub 部署 WordPress 插件**
因为许多 WordPress 主题和插件都是在 GitHub 中管理的,所以你可以直接从 GitHub 快速部署对特定站点插件或主题的修改。使用 WP-CLI 的强大功能和任何存储库的归档端点,只需使用以下命令就可以强制更新插件:
## **Git+GitHub+WordPress = Heaven**
记住,如果你发现你自己在你创建的每一个新的 WordPress 站点上都安装了相同的主题和插件,那么是时候寻找一个节省你时间的工作流程了(我们都知道时间就是金钱)。
最后一个提示: [GitKraken Git 客户端](https://www.gitkraken.com/git-client)和 [GitKraken CLI](https://www.gitkraken.com/cli) 使得使用 Git、GitHub 和你的 WordPress 代码库更加容易、安全和强大。您可以在 GitKraken 中快速集成、克隆和可视化您的 GitHub 库,节省您在 WordPress 中构建客户端网站的更多时间。
记住,如果你发现你自己在你创建的每一个新的 WordPress 站点上都安装了相同的主题和插件,那么是时候寻找一个节省你时间的工作流程了(我们都知道时间就是金钱)。
GitKraken 使得使用 WordPress 和 Git 更加容易、安全和强大。无论您更喜欢在 GUI 中工作还是直接在终端中工作,您都可以得到两个世界的好处。
GitKraken 使得使用 WordPress 和 Git 更加容易、安全和强大。无论您更喜欢在 GUI 中工作还是直接在终端中工作,您都可以得到两个世界的好处。
**Git+GitHub+WordPress = Heaven**
记住,如果你发现你自己在你创建的每一个新的 WordPress 站点上都安装了相同的主题和插件,那么是时候寻找一个节省你时间的工作流程了(我们都知道时间就是金钱)。
## 最后一个提示: [GitKraken Git 客户端](https://www.gitkraken.com/git-client)和 [GitKraken CLI](https://www.gitkraken.com/cli) 使得使用 Git、GitHub 和你的 WordPress 代码库更加容易、安全和强大。您可以在 GitKraken 中快速集成、克隆和可视化您的 GitHub 库,节省您在 WordPress 中构建客户端网站的更多时间。
Remember, if you find yourself installing the same themes and plugins on every new WordPress site you create, it’s time to look for a workflow that saves you time (and we all know that time is money).
GitKraken 使得使用 WordPress 和 Git 更加容易、安全和强大。无论您更喜欢在 GUI 中工作还是直接在终端中工作,您都可以得到两个世界的好处。
GitKraken makes working with WordPress and Git easier, safer, and more powerful. Whether you prefer to work in a GUI or directly in the terminal, you get the best of both worlds.
# GitKraken Big Sur 问题的解决方法
> 原文:<https://www.gitkraken.com/blog/workaround-gitkraken-big-sur-issues>
从旨在帮助软件开发人员集中精力编写代码的播放列表中进行选择。播放列表包括流行的音乐剧、视频游戏曲目、棕色噪音等等。
# 写下来就好| GitKon 2022 |活的 Spec 团队
> 原文:<https://www.gitkraken.com/gitkon/write-it-down-living-spec>
[https://www.youtube.com/embed/kYxuM6QV1XM?feature=oembed](https://www.youtube.com/embed/kYxuM6QV1XM?feature=oembed)
视频
Living Spec 的团队已经在各种问题上远程工作了超过 15 年,因此在这个过程中学到了很多。
**道场工具包**
## 2004 年,Living Spec 的首席执行官 Dylan Schiemann 共同创立了一个开源的 JavaScript 框架 [Dojo Toolkit](https://dojotoolkit.org/) 。迪伦和联合创始人亚历克斯想要定义 Dojo 应该成为什么。
Dylan 和 Alex 下载了当时第一个协作编辑器 SubEthaEdit for the Mac。他们带着笔记本电脑背靠背坐在加州山景城的一家咖啡店里,花了几个小时写了一份 20-30 个特性和用例的清单。他们发布了列表,大约两年后,列表上的所有东西都以某种形式存在于 Dojo 中。
Dylan 和 Alex 下载了当时第一个协作编辑器 SubEthaEdit for the Mac。他们带着笔记本电脑背靠背坐在加州山景城的一家咖啡店里,花了几个小时写了一份 20-30 个特性和用例的清单。他们发布了列表,大约两年后,列表上的所有东西都以某种形式存在于 Dojo 中。
**提高团队的书面沟通能力**
## 与此同时,迪伦在 Living Spec 的联合创始人内曼贾·托希奇(ne manja Schmidt)正在一个大型企业团队中工作,通常会收到来自业务部门的为良好用例模型制作的规范。
这些模型会返回到开发团队和项目经理那里,沿着管道,每个相关的人都以他们自己的方式重写它们。当开发人员在物理白板上记录事情时,一些项目经理使用 Excel。每个人都用自己的方式写下了自己的信息。
这对于任何给定的团队成员来说,将项目的各个部分放在一起,知道信息在初始系统中的位置,以及跟踪已经完成的工作和下一步应该做的工作,都是一个挑战。
麦肯锡(McKinsey)2022 年的一项研究表明,不良协调正在扼杀公司的适应能力,不良协调导致大约一半的工程生产率损失。
许多不同的原因都可能导致协调不良。有时你已经进入状态,准备写代码,但是你的问题比答案还多:我在构建什么?我为什么要建造它?这是正确的版本吗?
许多不同的原因都可能导致协调不良。有时你已经进入状态,准备写代码,但是你的问题比答案还多:我在构建什么?我为什么要建造它?这是正确的版本吗?
写下来:在哪里,何时,如何,什么
## 另一个经常出现的问题是:我在哪里写东西?我如何写下信息?它属于哪一页?什么类型的语言,或者什么类型的模板?此时此刻,你唯一想做的事情是从你的头脑中得到一个想法,但是你却沉浸在细节和机制中。
例如,许多团队使用 Google docs 进行书面交流,有五六个文档都写着 final,所以实际上没有人知道哪一个是 final。
这一切都是为了说明,像写下信息这样简单的事情会遇到很多障碍,而这是成功的关键之一。如果你把一些事情写下来,完成的几率会高得多。
这一切都是为了说明,像写下信息这样简单的事情会遇到很多障碍,而这是成功的关键之一。如果你把一些事情写下来,完成的几率会高得多。
**写在哪里**
## 那么你把重要的事情写在哪里呢?你能不能直接告诉别人,放在 Slack 里,或者在 Zoom 上提一下?你的信息需要被写在一个容易得到的地方,在那里它可以随着时间的推移被阅读和编辑。
这里重要的事情是创建一个过程,这样团队中的每个人都知道在哪里访问信息,在哪里添加新信息。
这里重要的事情是创建一个过程,这样团队中的每个人都知道在哪里访问信息,在哪里添加新信息。
**什么时候写下来**
## 有人会立即告诉他们这是错误的,或者他们是愚蠢的,或者这是不完美的。这会让你很难取得任何成就。
信息需要流动,信息需要被接受,而不是被评判。
例如,GitHub 通过引入 draft [pull requests](https://www.gitkraken.com/learn/git/problems/github-pull-requests) 在这方面提供了帮助,允许开发人员添加代码而不用担心判断。类似地,工作进行中(WIP)标签表明某些东西还没有准备好进行彻底的审查和检查。
例如,GitHub 通过引入 draft [pull requests](https://www.gitkraken.com/learn/git/problems/github-pull-requests) 在这方面提供了帮助,允许开发人员添加代码而不用担心判断。类似地,工作进行中(WIP)标签表明某些东西还没有准备好进行彻底的审查和检查。
使用 GitKraken 客户端可以轻松管理 GitHub pull 请求草案和工作进度变更,从而改善团队协作和沟通。
使用 GitKraken 客户端可以轻松管理 GitHub pull 请求草案和工作进度变更,从而改善团队协作和沟通。
**写下什么**
## 有时,需要几分钟才能找到丢失的信息。您可能没有写下来,或者不知道您需要在哪个系统中写下来,或者您可能不知道与谁共享信息或为什么共享信息,或者需要听取谁对哪些更改的意见。
这些是一些需要解决的问题和需要回答的问题。好消息是有工具可以帮助这个过程。
这些是一些需要解决的问题和需要回答的问题。好消息是有工具可以帮助这个过程。
**怎么写下来**
## 虽然把事情写下来听起来很容易,但要最有效地把事情写下来,把别人说的话记下来,然后慢慢思考,确实需要时间。这通常有助于将信息分成更小的范围和更具体的上下文。
像 [Living Spec](https://livingspec.com/) 这样的工具通过提供一个包含页面、任务、文件、评论、人员等的协作文档树来帮助识别协作的摩擦源,并努力消除它们。
通常,团队开始时很小,然后工作随着迭代而发展,变得比预期的更大。信息可以链接到多个地方,让一个项目自然成长,而不是把数据放在一个特定的地方,然后再也不碰它。
通过提高在相关地点将想法联系起来的效率,团队可以开始改善协作。
通过提高在相关地点将想法联系起来的效率,团队可以开始改善协作。
**拥抱不完美**
## 接受不完美并允许一个自然的过程发生是很重要的。人类的自然过程是混乱的。这可能不太好,但你需要把你的想法说出来。你必须把它们拿出来,让那些能根据你写的东西提出建议的人看到,而不是把所有的东西都记在脑子里,然后试图记住所有需要组合在一起的点点滴滴。
拥有一个能让你尽快将信息从头脑中取出并输入系统的流程是关键。如果花了三分钟才找到你想输入的位置,你会放弃,求助于纸质文件、谷歌文档或 notes 应用程序。
拥有一个不会评判你的精简高效的流程。它帮助你更有效地完成工作,拥抱混乱,随着时间的推移不断迭代,并对你没有丢失信息充满信心。
GitKraken 的开发工具套件旨在改善团队协作和沟通。免费试用一下我们的工具:桌面版的 [GitKraken 客户端](https://www.gitkraken.com/git-client),VS 代码版的[Git lens](https://www.gitkraken.com/gitlens),吉拉版的 [Git 集成](https://www.gitkraken.com/git-integration-for-jira)。
GitKraken 的开发工具套件旨在改善团队协作和沟通。免费试用一下我们的工具:桌面版的 [GitKraken 客户端](https://www.gitkraken.com/git-client),VS 代码版的[Git lens](https://www.gitkraken.com/gitlens),吉拉版的 [Git 集成](https://www.gitkraken.com/git-integration-for-jira)。
# 在 WSL 2 中使用 GitKraken 客户端|更好的开发体验
> 原文:<https://www.gitkraken.com/blog/wsl2-and-gitkraken-client>
对于喜欢 Linux 开发环境但需要使用 Windows 作为主要操作系统的开发人员来说,WSL 2 非常有用。开发人员和团队使用 GitKraken 客户端来可视化和有效地使用他们的 Git 存储库。
有了 GitKraken 客户端的 [9.1 版本,就可以结合两种资源的优点。在本文中,我们将探索在 WSL 2 中使用 GitKraken 客户端的优点,并提供如何设置的分步说明。](https://www.gitkraken.com/blog/gitkraken-client-9-1)
如果你正在读这篇文章,你很可能属于两个阵营之一:
高级 WSL/GitKraken 用户
## 如果您已经掌握了 WSL 2 的丰富经验,下面让我们快速了解一下 GitKraken Client 9.1 是如何改进这种体验的。
GitKraken Client 9.1 允许您立即使用 WSL 2(WSLg)*处理您的回购。这是通过安装两个 GitKraken 客户端来实现的,一个安装在您的 Windows 机器上,另一个安装在您的 WSLg Linux 环境中。这使您可以根据您的存储库所在的位置,在 GitKraken 的两个安装之间快速切换。*
*我们知道,许多用户希望只在 Windows 端安装 GitKraken 客户端,然后在 WSL Linux 中无缝读取和使用 git repos。然而,现在有显著的架构障碍阻止我们实现这一点。为了避免花很长时间来获得有用的东西,我们决定现在就开始帮助每个人使用 WSL。
此更新的另一个好处是改进了 GitKraken Client 的 Linux 版本,以修复在 WSL 2 环境中操作时的常见问题。这将允许用户以最小的摩擦跨 Windows 和 WSL 实例操作 GitKraken 客户端。
请继续阅读关于如何在 WSL 2 上下载和安装 GitKraken 客户端的说明
WSL/GitKraken 初学者
对于那些不确定 WSL/WSL 2 是什么或者刚刚开始使用 GitKraken 客户端的人。WSL,即 Linux 的 Windows 子系统,是由微软开发的兼容层,允许在 Windows 10/11 上本地运行 Linux 应用程序。WSL 2 是 WSL 的最新版本,它使用由微软构建和维护的真正的 Linux 内核,从而提高了兼容性和性能。WSL 2 在 Windows 中提供了一个完整的 Linux 环境,允许用户运行 Linux 工具和应用程序,包括系统服务,以及 Windows 应用程序和工具。
## 总结一下:
WSL 的总括术语,有时人们说这意味着第一次迭代(WSL 1)通常,人们使用 WSL 2 并且对它感兴趣。
**WSL 2:** 当前用于 Linux 的 Windows 子系统。它相当稳定,使用完整的 Linux 内核。
**WSLg:**“g”代表图形。它为您的 Linux 实例启用了一个 GUI,并允许 GitKraken 客户端在 WSL 2 环境中工作。这实际上并不是一件独立的事情,它是随着 WSL 2 的最新版本自动出现的。
**WSL 2:** 当前用于 Linux 的 Windows 子系统。它相当稳定,使用完整的 Linux 内核。
继续阅读关于如何在 WSL 2 上下载和安装 GitKraken 客户端的说明,并寻找我们在整篇文章中为初学者确定的特定标注。
如何在 WSL 2 中下载和安装 GitKraken 客户端
GitKraken 客户端与 Windows 11 或 Windows 10 build 19044 或更高版本上的 WSL 2 兼容,其中包括用于 GUI 支持的 WSLg。下面几节详细介绍了如何更新或安装 WSL 2,以及一旦有了 WSL 2 的最新版本,如何下载 GitKraken Client。请务必遵循与您的经验水平相符的说明。
## 如何在 WSL 2 中下载和安装 GitKraken 客户端
高级 WSL/GitKraken 用户:如果已经安装了 WSL 2,请更新它
如果您已经在 Linux 发行版中安装了 WSL,请从 PowerShell 或以管理员身份打开的 Windows 命令提示符下运行以下命令,以更新到 WSL 的最新版本。
### `wsl --update `
WSL/GitKraken 初学者:安装 WSL 2
如果您需要使用 Linux 的默认 Ubuntu 发行版安装 WSL,只需从 PowerShell 或以管理员身份打开的 Windows 命令提示符下运行以下命令,并根据提示重新启动。
`wsl --install -d ubuntu`
### WSL/GitKraken 初学者:安装 WSL 2
重新启动后,安装将继续。您将被要求在 Linux 终端中输入用户名和密码。这些将是您的 Linux 凭证。
WSLg 会自动包含在更新和初始 WSL 设置中,因此您可以准备安装 GitKraken 客户端了。
在 WSL 2 上下载并安装 GitKraken 客户端
在 WSL 2 实例上安装哪个版本的 GitKraken 客户端取决于您使用的 Linux 发行版。最常用的是 Ubuntu,但你也可能在用别的。请参见下面的安装选项:
对于 Ubuntu(和其他基于 Debian 的发行版),您可以在 Linux 终端中运行以下命令来下载和安装 GitKraken 客户端:
### `wget https://release.gitkraken.com/linux/gitkraken-amd64.deb`
`sudo apt install ./gitkraken-amd64.deb`
对于 Ubuntu(和其他基于 Debian 的发行版),您可以在 Linux 终端中运行以下命令来下载和安装 GitKraken 客户端:
根据您的喜好,您也可以使用 **.tar.gz** 来代替(尽管在大多数情况下最简单的就是**)。deb【上面的 )。要安装 GitKraken 客户端的. tar.gz 版本,请在 Linux 终端中运行以下命令**
`wget https://release.gitkraken.com/linux/gitkraken-amd64.tar.gz`
`sudo tar -xvzf gitkraken-amd64.tar.gz`
根据您的喜好,您也可以使用 **.tar.gz** 来代替(尽管在大多数情况下最简单的就是**)。deb【上面的 )。要安装 GitKraken 客户端的. tar.gz 版本,请在 Linux 终端中运行以下命令**
如果您正在使用其他 Linux 发行版,如 RHEL 7+,CentOS 7+或 Fedora 34+,您可能希望使用**。转速**。
`wget https://release.gitkraken.com/linux/gitkraken-amd64.rpm`
`sudo yum install ./gitkraken-amd64.rpm`
如果您正在使用其他 Linux 发行版,如 RHEL 7+,CentOS 7+或 Fedora 34+,您可能希望使用**。转速**。
如果安装因缺少软件包而未完成,您可能需要在尝试再次安装之前运行以下命令。
`sudo apt --fix-broken install`
你都准备好了!您现在应该能够打开 GitKraken 客户端并使用 WSL 中存储的 repos。
`sudo apt --fix-broken install`
在 WSL 2 中使用 GitKraken 客户端的好处
GitKraken 客户端帮助开发人员可视化他们的 Git 库,并使使用 Git 变得容易。在 WSL 2 中使用 GitKraken Client 的好处很简单——您可以一起使用 Linux 和 GitKraken Client,就像您正在本地运行它们一样!将该应用程序安装在 WSL 2 / WSLg 上的 Linux 实例中,您将获得与在任何非虚拟 Linux 机器上运行 GitKraken 客户端几乎相同的性能速度。这为您带来了一个 Linux 环境,带有著名的 Git 客户机,同时运行 Windows 作为主要操作系统。
## 在 WSL 2 中使用 GitKraken 客户端的好处
GitKraken 客户端帮助开发人员可视化他们的 Git 库,并使使用 Git 变得容易。在 WSL 2 中使用 GitKraken Client 的好处很简单——您可以一起使用 Linux 和 GitKraken Client,就像您正在本地运行它们一样!将该应用程序安装在 WSL 2 / WSLg 上的 Linux 实例中,您将获得与在任何非虚拟 Linux 机器上运行 GitKraken 客户端几乎相同的性能速度。这为您带来了一个 Linux 环境,带有著名的 Git 客户机,同时运行 Windows 作为主要操作系统。*