IDEA下通过Git实现代码管理

1、介绍

1.1 Git概述

Git是类似于SVN等代码管理软件,使用分布式技术实现。Github是互联网代码仓库,每个人可以在上面创建自己的仓库,使用git完成同github仓库的代码同步等管理工作。

IntelliJ idea->Git: 使用
Git->GitHub: 同步资源

1.2 Git逻辑架构

git架构上分为远程仓库、本地仓库和工作空间。远程仓库就是位于GitHub上的仓库,本地仓库是为用户本机的仓库目录,工作空间是用户开发所处的目录。三者关系与操作如下图所示:

远程仓库->本地仓库: 下载远程仓库到本地仓库(git clone)
本地仓库->工作空间: 检出本地仓库项目到工作空间(git checkout)
工作空间-->本地仓库: 提交变更到本地仓库(git commit)
本地仓库-->远程仓库: 推送本地仓库到远程仓库(git push)

1.3 Git分支和标记

branch是分支,是一个独立发展的路线,成熟后会合并到master主分支上。tag是分支推进过程中的里程碑,是一个记号。

1.4 Git帮助

#查看所有命令
cmd>git help -a
#
cmd>git help -g

2、Github

使用git前需要在github上注册账号,并创建字节的仓库目录。流程如下:

  1. 登录github网站

    http://github.com
  2. 注册用户

  3. 激活账号

    登录邮箱,激活账号即可。

  4. 创建仓库

  1. 查看github上仓库列表

  2. github上的仓库

    在setting选项卡中进行删除。如下图所示:

    点击删除按钮后,弹出警告窗口:

    输入确认删除的仓库名称后,最后才可删除!

3、Git安装、配置与连接

Git使用ssh连接github,下载git后不需要再单独下载ssh软件,git内部集成ssh软件包。

3.1 下载软件包Git-2.16.2-64-bit.exe

3.2 安装软件到指定目录

3.3 进入git-bash命令程序

执行以下命令:

cmd>git-bash.exe

进入命令行窗口,界面如下:

3.4 生成公私密钥对

cmd>ssh-keygen -t rsa -C "xxx@xxx.com"

注意:-C后使用的是在github中注册时所用的email地址。

查看在home目录下生成公私秘钥文件

windows的主目录位于C:\user${当前用户}\.ssh下。

3.5 复制公钥文件内容到GitHub上

打开GitHub的公钥管理页面,如图所示:

定位到SSH and GPG keys条目,如下图所示:

点击new SSH Key按钮,如下图所示:

在文本框中粘贴生成公钥文件内容,输入title后,点击add SSH Key即可。如下图:

3.6 在git-bash命令下测试是否能够ssh到github服务器

# 运行git-hbash命令行程序
cmd>git-bash.exe # ssh到远程github主机
$>ssh git@github.com

出现如下图信息,表示连接成功!

4、Git常用命令

4.1 标签和分支

标签是一条分支上具有里程碑式的阶段划分,分支是两条不同的路线。一条主分支就是master分支,在开新功能时通常会创建新的分支,在新分支上进行开发,成熟后再合并到master主分支上去。

4.2 本地仓库命令

​仓库命令都是针对整个仓库进行的操作,因此命令后面不加文件等参数。

  1. git init

    该命令时在本地创建仓库目录后,进入目录下,将该目录初始化层仓库目录的过程。该命令会创建.git目录。

    #创建目录
    $>mkdir repo1 #进入目录下
    $>cd repo1 #进行初始化处理
    $>git init
  2. git clone

    克隆仓库是在首次使用远程仓库时,即本地没有仓库目录,从远程服务器下载整个仓库到本地文件系统中的初始化本地仓库过程。因此需要指定远程仓库的url地址,该地址可以在github的仓库主页上找到。url构成由域名构成如下:

    https://github.com/{github注册账号}/{仓库名称}.git

    以下命令就是下载oldboy-xupccc账号下的test1仓库到本地系统中:

    # 进入本地仓库目录下(以下同)
    $git>cd localrepo
    # 使用远程仓库名
    $>git clone https://github.com/oldboy-xupccc/test1.git
    # 指定本地名
    $>git clone https://github.com/oldboy-xupccc/test1.git localtest1
  3. git add

    该命令是将文件添加到跟踪区域,以备能够进行版本管理。

    $>git add *.txt
    $>git add README.md
  4. git reset

    重置操作,相当于撤销之前的操作。比如add一个文件reset后,相当于文件仍没有被跟踪。

    $>git reset
  5. git status

    查看状态

    $>git status
  6. 忽略某些文件

    git使用.gitignore文件指定哪些文件忽略。

    # 以o或a结尾的文件忽律
    *.[oa]
    # 忽略以~结尾
    *.~

  7. gif diff

    git status只能查看文件的状态,但是具体哪些做了修改,可以使用diff来看。

    $>git diff
  8. git pull

    pull命令是下载远程仓库内容到本地仓库,覆盖本地仓库的内容。

    $>git pull
  9. git push

    push命令是将本地仓库上传到远程仓库,覆盖远程仓库的内容。

    $>git push

4.3 git remote

git remote是远程仓库命令组,管理跟踪的分作所在远程仓库的集合。管理远程仓库的工作,包括添加远程库,移除废弃的远程库,管理各式远程库分支,定义是否跟踪这些分支,等等。

4.3.1 查看远程当前仓库

要查看当前配置有哪些远程仓库,可以用git remote命令,它会列出每个远程库的简短名字。在克隆完某个项目后,至少可以看到一个名为 origin 的远程库,Git 默认使用这个名字来标识你所克隆的原始仓库

#查看当前远程仓库的简短描述
$>git remote #输出orginal
#查看当前远程仓库的详细描述
$>git remote -v #输出origin https://github.com/oldboy-xupccc/big12.git (fetch)
4.3.2 添加新的远程库

要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用。

$>git remote add oro https://github.com/oldboy-xupccc/big12.git

查看结果:

$>git remote -v

输出内容如下:

origin  https://github.com/oldboy-xupccc/big12.git (fetch)
origin https://github.com/oldboy-xupccc/big12.git (push)
oro https://github.com/oldboy-xupccc/big12.git (fetch)
oro https://github.com/oldboy-xupccc/big12.git (push)
4.3.3 使用短名fetch仓库的文件

fetch是抓取远程仓库有,本地仓库没有的文件。

#使用短名进行抓取
$>git fetch oro #使用具体的远程地址进行抓取
$>git fetch https://github.com/oldboy-xupccc/big12.git
4.3.4 推送数据到远程仓库
$>git push orignal master
4.3.5 查看远程仓库的信息
$>git remote show origin

输出如下内容:

* remote origin
Fetch URL: https://github.com/oldboy-xupccc/big12.git
Push URL: https://github.com/oldboy-xupccc/big12.git
HEAD branch: (unknown)
Remote branch:
refs/remotes/origin/master stale (use 'git remote prune' to remove)
Local branch configured for 'git pull':
master merges with remote master
4.3.6 删除和重命名远程仓库在本地的名称
#重命名远程仓库
$>git remote rename oro oro2
#删除远程仓库
$>git remote rm oro

5、总结

git作为一种代码管理工具,因其具有分布式特点,可以随时随地进行代码提交和管理,因此受到越来越多企业的青睐。并且在各大开发环境中也都对其进行了集成。

IDEA下通过Git实现代码管理的更多相关文章

  1. 软工实践练习一——使用Git进行代码管理心得

    在github.com的操作 注册 创建Organization 将指定代码库fork到小组Organization下 在Organization下创建repository 这些操作在学校的机房已经完 ...

  2. 软工实践练习——使用Git进行代码管理

    GITHUB上的预备活动: 注册 创建小组Organization,邀请组员进来 将代码库fork到小组Organization底下 下载并使用GIT: Git的安装 使用Git进行代码管理 1.从百 ...

  3. 软工实践练习——使用git进行代码管理心得

    一.在Github上注册账户.其中创建organization在小组成员的账户上创建,并在其账户上创建了小组的版本库.在创建organization的过程中,参考了助教提供的博客:http://sef ...

  4. 学习使用Git 版本控制 代码管理

    title: 学习使用Git 版本控制 代码管理 notebook: 经验累积 tags:Git --- Git 版本控制 学习教程 Git版本控制器,可以作为程序员.计算机科学和软件工程的研究人员在 ...

  5. 使用Git进行代码管理的心得--github for windows

    首先简述一下Git进行代码管理的情况 我使用的是github for windows,官网下载的速度太慢,所以用了离线安装包.安装之后会有GitHub和GitShell两个软件,其中Github采用图 ...

  6. GIT库代码管理规范

    GIT库代码管理规范 一. 规范要求 1. 每个项目建立单独的GIT库.每个GIT库包括两条线,命名规则如下: 开发线(测试):项目名称_DEV 生产线(正式):项目名称 2. 每条线只允许增量不允许 ...

  7. 使用scm-manager搭建git/svn 代码管理仓库

    使用 scm-manager 搭建 git/svn 代码管理仓库 1.在官网上下载scm-manager 下载地址https://www.scm-manager.org/download/ 2. 配置 ...

  8. 使用Git进行代码管理

    Git简介 Git 是 Linux Torvalds 为了帮助管理 Linux® 内核开发而开发的一个开放源码的版本控制软件. 先讲一下如何把开源项目fork到自己的github中 1.  点击图中的 ...

  9. 使用VS2013和git进行代码管理

    git是一款非常流行的分布式版本控制系统,使用Local Repository追踪代码的修改,通过Push和Pull操作,将代码changes提交到Remote Repository,或从Remote ...

随机推荐

  1. react 什么是虚拟DOM?深入了解虚拟DOM

    底层的理论基础 一. 原始生成步骤 1.state 数据 2.jsx 模版 3.数据 + 模板 结合,生成真实的DOM,来显示 4.state 发生改变了 5.数据 + 模板 结合,生成真实的DOM, ...

  2. java程序员的从0到1:@Resource与@Autowired的比较

    目录: 1.@Resource与@Autowired的源码分析 2.@Resource与@Autowired的相同点 3.@Resource与@Autowired的不同点 正文: 1.@Resourc ...

  3. Linux安装与分区解释

    Linux安装过程中最重要的就是对硬盘进行分区: Linux是先建立一个根目录“/”,然后在根目录上建立一系列的空目录,接着把硬盘分区挂载到相应目录上. 在linux系统中至少必须有两个挂载点(磁盘分 ...

  4. AJAX使用说明书 基础

    AJAX简介 什么是AJAX AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异 ...

  5. Xshell添加快捷按钮

    1.打开xshell,点击[查看],勾[快速命令]: 2.点击xshell右下角[三],选择[添加按钮],在弹出框的“标签栏”和“文本”栏分别输入名称和命令,最后点击[确定]即可.

  6. 阿里Java开发规约插件使用

    刚刚的云栖大会上,阿里巴巴公布了这款酝酿已久的Java开发规约插件,对于国内开发者来说是一次轻松提高自己代码规范的机会. 安装方法 IDEA安装方法: settings >> plugin ...

  7. sqlserver 索引进阶(下)

    参考原文 http://www.cnblogs.com/tjy9999/p/4494799.html 第十级, 索引内部结构 建立索引的目的是加快对表中记录的查找或排序.为表设置索引要付出代价的:一是 ...

  8. Java学习笔记day05_方法重载

    1.方法的重载overload 在同一个类中, 允许出现同名的方法, 只要方法的参数列表不同即可. 参数列表不同: 参数个数不同, 参数类型不同, 顺序不同. public class MethodO ...

  9. vue.js vue-jsonp解决跨域问题

    安装jsonp npm install vue-jsonp --save main.js中引入 import VueJsonp from 'vue-jsonp' Vue.use(VueJsonp) 组 ...

  10. Angular JS ng-repeat 报错 Error: [ngRepeat:dupes]

    ng-repeat常用情况: <div class="form-group" ng-repeat="item in items"></div& ...