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. Go语言之进阶篇爬捧腹网

    1.爬捧腹网 网页规律: https://www.pengfu.com/xiaohua_1.html   下一页 +1 https://www.pengfu.com/xiaohua_2.html 主页 ...

  2. 前端Js框架汇总【转】

    概述: 有些日子没有正襟危坐写博客了,互联网飞速发展的时代,技术更新迭代的速度也在加快.看着Java.Js.Swift在各领域心花路放,也是煞是羡慕.寻了寻.net的消息,也是振奋人心,.net co ...

  3. window.open 浏览器差异.

    首先引入 w3help的,莫的测试: 原帖地址:http://www.w3help.org/zh-cn/causes/BX1053   w3help的测试,和我的测试相互补充,应该比较完整了.悲剧的是 ...

  4. 读书笔记,《Java 8实战》,第三章,Lambda表达式

    第一节,Lambda管中窥豹    可以把Lambda表达式理解为简洁地表示可传递的匿名函数的一种方式,它没有名称,但它有参数列表.函数主题和返回值.    本节介绍了Lambda表达式的语法,它包括 ...

  5. C# 键值对数据排序

    对于键值对的数据进行排序方法总结. /*使用排序字典,默认只支持升序 SortedDictionary<DateTime, String> dd = new SortedDictionar ...

  6. 原生JS实现new方法、new一个对象发生的四部、new里面常用的优先级

    一.js中new一个对象的过程 首先了解new做了什么,使用new关键字调用函数(new ClassA(…))的具体步骤: 1.创建一个新对象: var obj = {}; 2.设置新对象的const ...

  7. 大数据开发实战:Stream SQL实时开发二

    1.介绍 本节主要利用Stream SQL进行实时开发实战,回顾Beam的API和Hadoop MapReduce的API,会发现Google将实际业务对数据的各种操作进行了抽象,多变的数据需求抽象为 ...

  8. Bootstrap风格button

    一直非常喜欢Bootstrap的按钮风格,仿照Bootstrap做了一套按钮.在ie6/7/8/9/10/11.chrome.firefox下能正常使用. ie6/7/8不支持css3的样式.按钮在这 ...

  9. lstm(一) 演化之路

    递归神经网络引入了时序的反馈机制,在语音.音乐等时序信号的分析上有重要的意义. Hochreiter(应该是Schmidhuber的弟子)在1991年分析了bptt带来的梯度爆炸和消失问题,给学习算法 ...

  10. Android 关于操作栏 ActionBar 的设计原则【转载+整理】

    原文地址 本文内容 操作栏目的 基本布局 适应旋转和不同的屏幕尺寸 副操作栏的布局 操作栏按钮 上下文操作栏 操作栏清单 设计原则就是为你在编写 Android APP 时,尤其是如何安排操作按钮的位 ...