Git简介

      Git是一个免费的、分布式的版本控制工具,或是一个强调了速度快的源代码管理工具。每一个Git的工作目录都是一个完全独立的代码库,并拥有完整的历史记录和版本追踪能力,不依赖于网络和中心服务器。

       Git 在管理项目时,在本地会有三个工作区域:Git 的本地数据目录,工作目录以及暂存区域。如下图所示:

因此对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。

安装及配置Git

终端运行:

sudo apt-get install git git-core

首先去https://github.com/ 注册一个账户,当然是free and opensource的用户了。

根目录下创建git目录。

mkdir ~/git

初始化两个参数:

git config --global user.name = "username"

git config --global user.email = "***@*****"

因为本机是通过ssh链接github的,所以先创建ssh密钥。

看一下本机是否已经有ssh的密钥。

cd ~/.ssh

提示没有文件或者目录的话说明本机还没有创建过,继续执行

ssh-keygen -t rsa -C "your_email@example.com"

一路Enter,在根目录下面就会生产.ssh文件夹(隐藏,查看隐藏文件夹的话按Ctrl+H),里面有生产的密钥文件。

用gedit打开~/.ssh/github.pub,将文件内容拷贝到剪切板,(最好用gedit,其他的工具可能出现换行空格)

回到github的页面,点击Acount setting,

点SSH Keys,

title随便取,key里面把之前复制的公钥的内容粘进去

点Add。

终端测试一下:

ssh -T git@github.com

成功连接的结果就想这样:

如果出现

Agent admitted failure to sign using the key.

Permission denied (publickey).

执行

ssh-add

再进行连接就没问题了。

使用git

最简单的一种使用方式就是从github上下载别人的开源项目。

打开一个开源工程的页面

直接点击左上角的zip包就可以下载工程了。

更方便一些的做法是在终端运行命令来下载源码。

终端运行:

git clone https://github.com/SimonVT/android-menudrawer.git

会自动下载整个工程到当前的目录。

接下来要实现的是分享自己的项目到github上,并进行版本控制。

首先在github上面创建工程。

在个人主页上点击Responsitories选项卡的New

填写一些信息,点Create respository

github上的项目就创建好了。

接下来从服务器下载工程及配置文件到本地。

终端运行:

mkdir ~/git/repos

cd ~/git/repos

git clone git@github.com:***/***.git

执行完毕后,repos文件夹下就拷贝好了github上的项目。

本地进行项目编辑,比如添加一个文件之后,

可以通过下面的命令来更新项目了。

git add . //往暂存区域添加已添加和修改的文件,不处理删除的文件

git status //比较本地数据目录与暂存区域的变化

git commit -m "commit directions" //提到代码到本地数据目录,并添加提交说明

有可能你和其他人改的是同一个文件,那么冲突的情况是在所难免的,那么在提交之后再获取一下代码,就会提示代码冲突的文件,我们需要做的就是处理这些冲突,并再次提交:

git pull //更新代码

根据提示修改冲突文件中的代码

git add .

git commit -m "commit directions"

当做完以上的步骤的时候,你需要做的是把本地数据目录的版本库的数据同步到GitHub服务器上去

git push

提交完成之后刷新github的页面,发现文件已经跟新好了。

Eclipse中整合git

首先安装git插件,在Eclispe中,

Help->Install New Software.

输入地址

http://download.eclipse.org/egit/updates

接着一路下一步,插件就安装好了。

在Eclipse中创建一个工程。

然后在工程上右击->Team->Share project->git->next.

选择Use or create repository in parent folder of project,如下图,点finish。

执行完成之后项目文件夹下就会创建好一个.git的文件夹,仓库就创建好了。

由于项目中的有一些文件没有必要上传,比如bin文件夹,需要在项目中设置好。

展开对应的项目,有小箭头的表示需要上传到服务器的目录,在不想要上传的目录上右击,Team->Ignoe,该目录就会被忽略了。

下面来commit代码到本机一下。

项目上右击Team->commit。

选中要commit的文件,点commit,完成之后,代码就上传到本地的服务器了。

接下来把代码上传到github的服务器。

命令行中进入到项目的文件夹,运行

git remote add origin https://github.com/SilangQuan/LinearCompiler.git

再执行

git push -f

成功执行后就像这样:

查看github的项目主页,发现文件已经上传好。

之后在Eclipse中修改好项目代码之后,commit之后直接在项目上右击Team->push就可以进行代码提交。

上传到github上之后,团队中另外的成员可以通过Eclipse->File->Import->Project from Git->URI来提取工程。

在团队开发中,通常在新的一天的开始工作之前,把最新的代码fecth下来。

直接在项目想右击->Team->fetch

再执行->Team->Merge.

服务器上的新文件就会添加进来了。

参考:

来自:http://www.open-open.com/lib/view/open1369361562766.html

Git/Github的使用以及与Eclipse的整合的更多相关文章

  1. Git/Github的使用并与Eclipse整合(zz)

    Git/Github的使用并与Eclipse整合 您的评价:          收藏该经验       Git简介 Git是一个免费的.分布式的版本控制工具,或是一个强调了速度快的源代码管理工具.每一 ...

  2. git &github 快速入门

    本节内容 github介绍 安装 仓库创建& 提交代码 代码回滚 工作区和暂存区 撤销修改 删除操作 远程仓库 分支管理 多人协作 github使用 忽略特殊文件.gitignore 1.gi ...

  3. git+github上传与管理

    1.首先下载并安装git,方便管理github上的代码 https://git-scm.com/downloads 2.然后点击安装好的git bash(注册好自己的github) git confi ...

  4. git/github学习笔记

    郑重提示,本文来自这里,如果喜欢,请关注原作者. 1. git 版本控制系统 相比CVS\SVN优势: - 支持离线开发,离线Repository- 强大的分支功能,适合多个独立开发者协作- 速度块 ...

  5. Git/GitHub 初用体验与总结

    Git,一个神奇而又陌生的东西,居然到现在才去了解它,就像有一位仁兄说的,现在不会用Git真的都不好意思说自己搞IT的. 简单的讲,这Git是目前最先进的分布式版本控制系统,和他相对应的就是众所周知的 ...

  6. git github简单知识

    Git 常用命令 git init here -- 创建本地仓库(repository),将会在文件夹下创建一个 .git 文件夹,.git 文件夹里存储了所有的版本信息.标记等内容 git remo ...

  7. Git/Github + TortoiseGit 使用教程

    前言 Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理. 在github上有很多优秀的项目,一个伟大的学习宝库.本文分享使用tortoisegit对github/ ...

  8. Git+GitHub 使用小结

    1.Git安装完成后需要做的配置            $ git config --global user.name "Your Name"        $ git confi ...

  9. Git & Github 一页简明笔记

    由于小组工程需要使用git&github的版本控制来协作,但我对其使用并不熟悉,特此写篇一页的笔记放在手边,备随时查阅. 相信这种一页的简明笔记,对大家也是有帮助的.我的笔记总结自廖雪峰的Gi ...

随机推荐

  1. 基于双向LSTM和迁移学习的seq2seq核心实体识别

    http://spaces.ac.cn/archives/3942/ 暑假期间做了一下百度和西安交大联合举办的核心实体识别竞赛,最终的结果还不错,遂记录一下.模型的效果不是最好的,但是胜在“端到端”, ...

  2. 开源项目kcws代码分析--基于深度学习的分词技术

    http://blog.csdn.net/pirage/article/details/53424544 分词原理 本小节内容参考待字闺中的两篇博文: 97.5%准确率的深度学习中文分词(字嵌入+Bi ...

  3. F分布

    定义:设X1服从自由度为m的χ2分布,X2服从自由度为n的χ2分布,且X1.X2相互独立,则称变量F=(X1/m)/(X2/n)所服从的分布为F分布,其中第一自由度为m,第二自由度为n.[1] F分布 ...

  4. php+C#.net混合开发

    php+C#.net混合开发 上图一张,左右是php语言,右边是C#语言,解决方案中的php项目是红色的小标识

  5. Android Volley 库通过网络获取 JSON 数据

    本文内容 什么是 Volley 库 Volley 能做什么 Volley 架构 环境 演示 Volley 库通过网络获取 JSON 数据 参考资料 Android 关于网络操作一般都会介绍 HttpC ...

  6. Active Directory 域服务(AD DS)

    本文内容 概述 工作组架构与域架构 名称空间(Namespace) 对象(Object).容器(Container)与组织单位(Organization Units,OU) 域树(Domain Tre ...

  7. phpMyadmin安装极简教程[下载,解压,登录]

    1.下载一个压缩包,例如: 2. 解压到web根目录并重命名为phpmyadmin 3.在浏览器输入http://localhost/phpmyadmin就可以看到登陆界面了,登陆之后,数据库,表的增 ...

  8. JS实现拖动(2)

    getBoundingClientRect() 来获取页面元素的位置 document.documentElement.getBoundingClientRect 该方法返回一个对象,从而获得页面中某 ...

  9. Direct hosting of SMB over TCP/IP

    http://support.microsoft.com/kb/204279 System TipThis article applies to a different version of Wind ...

  10. C++ 第五课:C/C++ 数据类型

    C语言包含5个基本数据类型: void, integer, float, double, 和 char. 类型 描述 void 空类型 int 整型 float 浮点类型 double 双精度浮点类型 ...