1、git简介

  Git是目前流行的分布式版本管理系统。它拥有两套版本库,本地库和远程库,在不进行合并和删除之类的操作时这两套版本库互不影响。也因此其近乎所有的操作都是本地执行,所以在断网的情况下任然可以提交代码,切换分支。git又使用了SHA-1哈希算法确保了在文件传输时变得不完整、磁盘损坏导致数据丢失时能立即察觉到。

  git的基本工作流程:

  • git clone:将远程的Master分支代码克隆到本地仓库
  • git checkout:切出分支出来开发
  • git add:将文件加入库跟踪区
  • git commit:将库跟踪区改变的代码提交到本地代码库中
  • git push: 将本地仓库中的代码提交到远程仓库
  • git 分支

  主分支

  • 主分支

    • master分支:存放随时可供生产环境中的部署的代码
    • develop分支:存放当前最新开发成果的分支,当代码足够稳定时可以合并到master分支上去。
  • 辅助分支 
    • feature分支:开发新功能使用,最终合并到develop分支或抛弃掉
    • release分支:做小的缺陷修正、准备发布版本所需的各项说明信息
    • hotfix分支:代码的紧急修复工作##2、git在IntelliJ IDEA下的使用

2、检查Git

  检查本地是否安装Git

git --version

  检查本地是否存在SSH公钥和密钥

ls ~/.ssh

  如果存在id_rsa 和id_rsa.pub 说明已经存在。否则添加密钥到GitHub。

3、创建SSH Key

  打开终端,执行命令,并一直敲回车键。

ssh-keygen -t rsa -b 4096 -C “你注册GitHub的邮箱”

4、添加密钥到GitHub

  进入GitHub,点击头像,选择settings。

  然后选择SSH and GPG keys。

​  然后New SSH key。

  Title中输入邮箱。

  key中输入刚才本地创建SSH key生成的id_rsa.pub文件的内容,复制方法为:

pbcopy < ~/.ssh/id_rsa.pub   //执行此命令拷贝文件下的内容

  最后粘贴到key项。点击继续。

5、测试是否关联好本地和GitHub

ssh -T git@github.com

  遇到选择选yes,看到:

​ Hi xxxxx! You've successfully authenticated, but GitHub does not provide shell access.

​   说明关联成功。

6、IntelliJ配置Git

  本地安装好git,并配置合理的SSH key,IntelliJ IDEA->Performance->Version Controll->GitHub,Host输入github.com,然后输入GitHub的用户名和密码,点击Test测试一下:

  IntelliJ IDEA->Performance->Version Control->git,将自己安装git的可执行文件路径填入Path to Git executable,点击 Test测试一下:

7、远程仓库配置

  7.1、创建本地仓库

  在IDEA中创建任意一个项目,在IDEA的菜单栏中选择 VCS (倒数第三项),选择Import into Version Control (引入到版本控制) -->Create Git Repository... -->选择一个存放的路径(本文为:/Volumes/work/git-repository/springmvc -> OK
  这样就创建了一个本地仓库, 以后代码的本地提交(Commit)的内容都会更新到这个选择的路径中。

  7.1、将项目提交到本地的Git

  选中项目(或者文件) 右键选择Git--->Add (此时没任何反应)---->commit(提交)  注意:一定要先add 再提交,此时项目文件就添加到本地仓库了。

  7.3、关于远程仓库的配置

  7.3.1、在github上创建一个仓库 :
    登陆你的github -->点击你的用户名 -->选择Repositories--> 点击绿色-->输入你的仓库名称。(此时远程仓库创建完成)
  7.3.2、通过Git shell 配置远程仓库:
     进入到项目目录:
  然后复制刚才创建的远程仓库的HTTPS/SSH KEY (此处使用的SSH),在Git shell 中键入如下脚本:

git remote add origin git@github.com:kosamino/springmvc.git  #(此处为你自己远程仓库的key)
git push -u origin master   #(解释:该脚本将本地的master 推到刚才设置的github远程仓库中)

  如果执行完成2条脚本,没有任何提示,也没任何错误,恭喜你成功了!

8、IntelliJ远程Push代码

  回到IDEA,选择项目 -->Git -->Repository --Push  即可将本地的文件推送到远程仓库中,然后刷新你的github仓库你就会看到你提交的本地内容了,同时你在idea中也能看到你的操作信息。
  注意:在执行 通过Gitshell配置远程仓库的时候可能会出现一些意外:
  1.  提示这个仓库已经存在(fatal: remote origin already exists) ,如果是这样 就不需要使用add + 地址的形式了 ,请修改为:

git remote rm origin
  2.提示不能移除配置信息错误(.error: Could not remove config section 'remote.origin')
  解决方案: 在/User/用户下面找到.gitconfig文件 (本文路径为:/User/用户名/.gitconfig)

              

  打开它把里面的[remote "origin"]那一行删掉   重启gitshell再重新配置。

9、GitHub Desktop提交代码

  首先把当前本地库添加到GitHub Desktop:

  然后commit代码:

  最后publish branch:

Mac下IntelliJ的Git、GitHub配置及使用的更多相关文章

  1. Mac下Intellij IDEA Console中文是?

    Mac下Intellij IDEA Console中文是?,解决办法是在运行时的VM参数配置也加入: -Dfile.encoding=UTF-8

  2. Mac下Intellij IDea发布Web项目详解一

    Mac下Intellij IDea发布Web项目详解一 Mac下Intellij IDea发布Java Web项目(适合第一次配置Tomcat的家伙们)详解二 Mac下Intellij IDea发布J ...

  3. Mac下Intellij IDea发布Java Web项目详解五 开始测试

    测试前准备工作目录 Mac下Intellij IDea发布Web项目详解一 Mac下Intellij IDea发布Java Web项目(适合第一次配置Tomcat的家伙们)详解二 Mac下Intell ...

  4. Mac下Android studio 之NDK配置教程(一)

    Mac下Android studio 之NDK配置教程(一) 1.概述 近期项目全线转移到Mac下使用使用Android studio开发. 遇到关键代码封装到 ***native***层,此时在wi ...

  5. Mac下intellij idea环境的项目的新建、配色、快捷键的配置

    注:本文所使用的intellij idea是14.1.2的版本号. 一.项目的新建(以新建Java项目为例) 选中当中的"create new project". 接下来你会看到下 ...

  6. Mac下Virtual Box Host-Only网络配置

    Mac下的虚拟机其实有很多,Parallels.VMware Fusion.Virtual Box都不错,Parallels是目前试过感觉最好的,Fusion装64位系统驱动支持似乎不完善,而且混合模 ...

  7. MAC下用homebrew安装及配置apache、php和mysql

    我们用到php运行环境的时候总喜欢用集成包,其实在mac下,用homebrew也可以很快的安装这些东西,配置也很简单. homebrew homebrew是mac下的一个包安装管理工具,使用非常简单方 ...

  8. mac下Android开发环境的配置

    近似一天的时间,终于把Android环境配置好了. 总结:主要问题在于android的网站是国外,下载东西的时候需要vpn才可以.所以会出现各种各样的问题. 环境:Android Studio + S ...

  9. [转]Mac下cocos2dx-3.2+Xcode环境配置和项目创建

    原文:http://blog.csdn.net/u012200908/article/details/38070885 这是有关环境配置的第二篇教程,第一篇讲的是win8下的环境配置.这里我们使用C+ ...

随机推荐

  1. Error: Apache shutdown unexpectedly --解决

    原因1:端口占用,百度可解决 原因2: 配置的启动目录不存在~~~ 解决 修改默认目录:

  2. js函数的创建

    1.js 函数的创建有几种方式: 1.1  直接声明 1.2 创建匿名函数,然后赋值 1.3 声明函数,然后赋值给变量 1.4 使用1.3 得到的变量再赋值给变量 1.5 使用函数对象创建函数 < ...

  3. MySQL查询优化(转)

    在分析性能欠佳的查询时,应考虑: 1) 应用程序是否正获取超过需要的数据,即访问了过多的行或列. 2) Mysql服务器是否分析了超过需要的行. 如果发现访问的数据行数很大,而生成的结果中数据行很少, ...

  4. Bash 翻译

    Bash参考手册 目录 1简介 1.1什么是Bash? 1.2什么是shell? 2定义 3基本外壳功能 3.1 Shell语法 3.1.1外壳操作 3.1.2报价 3.1.2.1逃逸角色 3.1.2 ...

  5. Haskell语言学习笔记(82)Extensible effects

    安装 extensible-effects $ cabal install extensible-effects Installed extensible-effects-3.0.0.0 Extens ...

  6. search() 方法解析

    search()方法支持正则表达式的String对象的方法. 好,我们直接来贴代码,看效果,从实践理解透析方法的知识点和实际运用. var str="Visit W3School!" ...

  7. Structs复习 包含外部xml和默认Actiion

    包含外部xml 可以用 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PU ...

  8. mysql 去除字符串中前后空格

     update  table  set  field = replace(replace(replace(field,char(9),''),char(10),''),char(13),''); 

  9. Mysql字段类型与合理选择

    字段类型 数值 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数.许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许 ...

  10. linux 设备驱动分类

    1. 字符设备 :在I/O传输过程中以字符为单位. 2. 块设备: 在传输过程中以块为单位,相关概念有 缓冲,I/O调度,请求队列.主要体现出与字符设备在操作硬件的接口实现方式上是不一样的. 3. 网 ...