codecamp

管理在GitHub上托管的项目

用于从IntelliJ IDEA内部管理GitHub项目的命令仅在您将GitHub项目指定为项目远程时才可用。

IntelliJ IDEA允许您管理由GitHub托管的项目,而无需离开IDE。

在IntelliJ IDEA中注册GitHub帐户

要从托管在GitHub上的存储库中检索数据,并且能够共享您的项目,您需要在IntelliJ IDEA中注册您的GitHub帐户。如果您还没有IDE,也可以在GitHub上创建一个帐户。

在任何一种情况下,IntelliJ IDEA都会记住您的登录名和密码,所以您不必在每次从远程获取数据时都指定凭据 ,或者推送提交。

注册现有的GitHub帐户

GitHub提供双因素身份验证,以改善对用户帐户的保护。

如果启用了双因素身份验证并使用SSH访问存储库,则可以选择任何身份验证类型:码或令牌。

如果您使用HTTP协议访问GitHub上的远程存储库,则需要配置一个Access令牌并使用它进行身份验证,否则远程Git操作将失败。当提示输入凭证时,请输入令牌作为用户名并将密码字段留空,或者指定令牌而不是密码。

要注册您的帐户,请执行以下操作:

  1. 调用“设置”对话框(Ctrl+Alt+S)并在左侧窗格中选择:版本控制| GitHub。
  2. 从“身份验证类型”下拉列表中选择要使用的身份验证类型:Password,如果选中此选项,并且在GitHub帐户设置中启用了双因素身份验证,则每次IntelliJ IDEA要求您登录到GitHub帐户时,都会要求您输入身份验证代码。Token,由GitHub推荐用于第三方应用程序的身份验证,因为它不需要IntelliJ IDEA来记住您的密码。
  3. 根据所选的身份验证类型指定您的凭据,然后单击“确定”。

创建一个新的GitHub帐户

  1. 调用“设置”对话框(Ctrl+Alt+S)并在左侧窗格中选择:版本控制| GitHub。
  2. 单击 "注册" 链接。
  3. 在浏览器中打开的“注册GitHub页面”中,选择"帐户计划"(免费或付费),并指定所需的信息。完成创建帐户后,将显示“GitHub欢迎页面”。
  4. 返回到GitHub设置并为IntelliJ IDEA指定您的凭据来注册它们。

从GitHub签出一个项目

IntelliJ IDEA允许您从GitHub中签出(复制)一个存储库,并基于它创建一个新的项目:

  1. 从主菜单中选择:VCS | 从版本控制签出| GitHub。
  2. 在打开的“克隆存储库”对话框中,指定要克隆的存储库的URL,或从列表中选择一个存储库,该存储库包含与您的帐户和您的帐户所属的组织相关联的所有GitHub项目。
  3. 在“父目录(Parent Directory)”字段中,指定将创建本地Git存储库文件夹的路径。
  4. 在“目录名称(Directory Name)”字段中,指定存储库将要克隆到的文件夹的名称。
  5. 点击"克隆"。如果要根据已克隆的源创建IntelliJ IDEA项目,请在确认对话框中单击“是”。Git根映射会自动设置为项目根目录。

在GitHub上分享一个项目

如果要在GitHub上为项目添加远程存储库,请执行以下操作:

  1. 打开您想共享的项目。
  2. 从主菜单中选择:VCS | 导入到版本控制| 在GitHub上共享项目。如果您已经在IntelliJ IDEA中注册了您的登录名和密码,则使用这些凭据建立与GitHub的连接。如果您尚未在IntelliJ IDEA中注册您的GitHub凭证,则会打开"登录到 GitHub"对话框。指定您的登录名和密码,或在那里创建一个新帐户。
  3. 当连接到GitHub时,GitHub上的共享项目对话框打开。指定新的存储库名称并输入项目主要功能的描述。如果您不希望允许其他 GitHub 用户对您的存储库进行公共访问(请注意,此选项对于免费帐户不可用),则您可以选择“私有(Private)”选项。
  4. 点击“共享”来启动一个新的存储库并上传项目源。

贡献别人的项目

如果您希望对 GitHub 上托管的项目做出贡献,而您没有权限进行强制,请遵循以下工作流程:

  • 创建您想贡献的项目的分支,即GitHub上的原始存储库的副本。
  • 克隆这个分支来创建一个本地存储库。
  • 对原始项目的副本进行更改。
  • 当您准备共享您的工作成果时,将您的fork重新放在主分支的当前HEAD,以确保您的更改不会与创建您的分支后推送的新提交冲突。
  • 创建一个拉取(pull)请求,以便您可以告诉其他人有关您所做的更改,并征求意见或审阅。请注意,拉取请求仅在批准后才会合并到原始存储库中。

对项目进行分支

打开要在 GitHub 上分支的项目并点击

将在您的帐户下创建原始项目的副本。要对此项目进行更改,您需要克隆它以创建一个本地存储库。

重新分支

从主菜单中选择:VCS | Git | Rebase my GitHub fork。您的fork将重新绑定到您创建fork的原始项目的master分支中的HEAD提交。

创建一个拉取(pull)请求

通过创建一个拉取(pull)请求,您告诉其他人您已经推送到您的分支的变化,以便他们可以被审查、讨论、并集成到基地分支。要创建拉取请求,请执行以下操作:

  1. 从主菜单中选择:VCS | Git | Create Pull Request。“ 创建拉取请求(Create Pull Request)” 对话框打开。
  2. 在“Base Fork”下,指定要将拉取请求发送到的项目。从IntelliJ IDEA填充的列表中选择一个存储库,或者点击“Select Other Fork”。
  3. 在“Base Branch”下,指定将应用所做更改的目标项目中的分支。单击"显示差异"来查看将包括在拉取请求中的提交列表。如果要查看提交详细信息,请选择它并切换到“版本控制”工具窗口的“日志”选项卡,从中可以看到所选提交、视图差异等中包含的文件列表。
  4. 在“Title”字段中指定拉取请求的名称,并可选择提供要通过请求应用的更改的说明。

通过使用Gist共享代码

Gist允许您共享您的代码。您可以共享代码片段、整个文件甚至是应用程序。运行、调试或测试代码时,您还可以使用gist来保存和共享控制台输出。

要创建一个Gist,请执行以下操作:

注意:一旦您创造了一个要点,您不能把它从私密的转化为公共的,反之亦然。

  1. 在编辑器中选择一个代码片段,或在“项目”工具窗口中选择文件和文件夹。要将控制台输出保存为要点,请在包含该输出的工具窗口或选项卡中的任意位置右键单击。
  2. 在选择的上下文菜单上,选择Create Gist(创建要点)。
  3. 在打开的Create Gist对话框中,在Filename下指定您的要点的名称,然后输入您要发布的代码的说明。
  4. 选择"私有"选项来创建所谓的私密Gist。私密Gist不可搜索,也不会显示在Discover中。他们只能用于您自己的目的,因为您不能分享他们。如果您想创建一个公开的要点,请确保取消选择此选项。公开的要点是可搜索的,他们在Discover中出现,人们可以浏览新出现的要点。如果您希望其他人能够找到并查看您的代码,请使用公共要点。
  5. 如果您想创建一个匿名的要点,选择匿名选项。匿名的要点可以是公开的或私人的。
  6. 如果要在默认浏览器中打开新创建的要点,请选择“在浏览器中打开” 选项,然后单击“确定”。

您无法从网络浏览器中删除匿名要点。要删除它,您需要联系GitHub支持,并提供您要删除的要点的URL。

跳转到文件的GitHub版本

您可以从IntelliJ IDEA跳转到文件的GitHub版本。IntelliJ IDEA检测哪个分支当前处于活动状态,并在相应的分支中打开所选文件的GitHub副本。

要查看文件的远程副本,请在编辑器或"项目"视图中选择它,然后从所选内容的上下文菜单中选择“在GitHub上打开”。当前分支中文件的远程版本将在浏览器中打开。

使用Git编辑项目历史记录
浏览CVS存储库
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

IntelliJ IDEA的一般准则

什么是IntelliJ IDEA项目

使用IntelliJ IDEA的意图行为

IntelliJ IDEA使用运行/调试配置

特定于VCS的程序

IntelliJ IDEA语言和特定框架指南

IntelliJ IDEA的数据库和SQL功能

IntelliJ IDEA使用之JavaServer Faces(JSF)

IntelliJ IDEA:分析PHP应用程序的性能

IntelliJ IDEA:调试PHP应用程序

IntelliJ IDEA:适用于PHP的Google App Engine

IntelliJ IDEA更多内容

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }