Git学习

一、Git常用操作命令

git init gitproject创建仓库

git add text.txt添加文件到暂存区

git status查看暂存区状态,是否存在文件添加或修改

git commit提交文件到仓库中

3

1) 远程仓库相关命令

检出仓库:$ git clone git://github.com/jquery/jquery.git

查看远程仓库:$ git remote -v

添加远程仓库:$ git remote add [name] [url]

删除远程仓库:$ git remote rm [name]

拉取远程仓库:$ git pull [remoteName] [localBranchName]

推送远程仓库:$ git push [remoteName] [localBranchName]

2)分支(branch)操作相关命令

查看本地分支:$ git branch

查看远程分支:$ git branch -r

创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支

切换分支:$ git checkout [name]

创建新分支并立即切换到新分支:$ git checkout -b [name]

删除分支:$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项

合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并

创建远程分支(本地分支push到远程):$ git push origin [name]

删除远程分支:$ git push origin :heads/[name]

三、Git/Github的使用以及与Eclipse的整合

Git简介

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

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

clip_image001

因此对于任何一个文件,在 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,

clip_image002

点SSH Keys,

clip_image003

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

clip_image004

点Add。

clip_image005

终端测试一下:

ssh -T git@github.com

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

clip_image007

如果出现

Agent admitted failure to sign using the key.

Permission denied (publickey).

执行

ssh-add

再进行连接就没问题了。

使用git

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

打开一个开源工程的页面

clip_image009

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

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

终端运行:

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

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

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

首先在github上面创建工程。

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

clip_image010

填写一些信息,点Create respository

clip_image012

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的页面,发现文件已经跟新好了。

clip_image014

在Eclipse中整合git

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

Help->Install New Software.

输入地址

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

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

在Eclipse中创建一个工程。

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

clip_image015

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

clip_image016

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

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

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

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

项目上右击Team->commit。

clip_image017

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

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

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

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

再执行

git push -f

成功执行后就像这样:

clip_image018

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

clip_image020

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

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

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

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

再执行->Team->Merge.

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值