eclipse 中 git 使用

原创 2013年12月02日 10:29:48

(一)git介绍以及命令

Git是一个分布式的版本控制工具,本篇文章从介绍Git开始,重点在于介绍Git的基本命令和使用技巧,让你尝试使用Git的同时,体验到原来一个版本控制工具可以对开发产生如此之多的影响,文章分为两部分,第一部分介绍Git的一些常用命令,其中穿插介绍Git的基本概念和原理,第二篇重点介绍Git的使用技巧,最后会在Git Hub上创建一个开源项目开启你的Git实战之旅

  Git是什么

  Git在Wikipedia上的定义:它是一个免费的、分布式的版本控制工具,或是一个强调了速度快的源代码管理工具。Git最初被Linus Torvalds开发出来用于管理Linux内核的开发。每一个Git的工作目录都是一个完全独立的代码库,并拥有完整的历史记录和版本追踪能力,不依赖于网络和中心服务器。

  Git的出现减轻了许多开发者和开源项目对于管理分支代码的压力,由于对分支的良好控制,更鼓励开发者对自己感兴趣的项目做出贡献。其实许多开源项目包括Linux kernel, Samba, X.org Server, Ruby on Rails,都已经过渡到使用Git作为自己的版本控制工具。对于我们这些喜欢写代码的开发者嘛,有两点最大的好处,我们可以在任何地点(在上班的地铁上)提交自己的代码和查看代码版本;我们可以开许许多多个分支来实践我们的想法,而合并这些分支的开销几乎可以忽略不计。

  Git 1+1

  现在进入本篇文章真正的主题,介绍一下Git的基本命令和操作,会从Git的版本库的初始化,基本操作和独有的常用命令三部分着手,让大家能够开始使用Git。

  Git通常有两种方式来进行初始化:

  git clone: 这是较为简单的一种初始化方式,当你已经有一个远程的Git版本库,只需要在本地克隆一份,例如'git clone git://github.com/someone/some_project.git some_project'命令就是将'git://github.com/someone/some_project.git'这个URL地址的远程版 本库完全克隆到本地some_project目录下面

  git init和git remote:这种方式稍微复杂一些,当你本地创建了一个工作目录,你可以进入这个目录,使用'git init'命令进行初始化,Git以后就会对该目录下的文件进行版本控制,这时候如果你需要将它放到远程服务器上,可以在远程服务器上创建一个目录,并把 可访问的URL记录下来,此时你就可以利用'git remote add'命令来增加一个远程服务器端,例如'git remote add origin git://github.com/someone/another_project.git'这条命令就会增加URL地址为'git: //github.com/someone/another_project.git',名称为origin的远程服务器,以后提交代码的时候只需要使用 origin别名即可

  现在我们有了本地和远程的版本库,让我们来试着用用Git的基本命令吧:

  git pull:从其他的版本库(既可以是远程的也可以是本地的)将代码更新到本地,例如:'git pull origin master'就是将origin这个版本库的代码更新到本地的master主枝,该功能类似于SVN的update

  git add:是将当前更改或者新增的文件加入到Git的索引中,加入到Git的索引中就表示记入了版本历史中,这也是提交之前所需要执行的一步,例如'git add app/model/user.rb'就会增加app/model/user.rb文件到Git的索引中

  git rm:从当前的工作空间中和索引中删除文件,例如'git rm app/model/user.rb'

  git commit:提交当前工作空间的修改内容,类似于SVN的commit命令,例如'git commit -m "story #3, add user model"',提交的时候必须用-m来输入一条提交信息

  git push:将本地commit的代码更新到远程版本库中,例如'git push origin'就会将本地的代码更新到名为orgin的远程版本库中

  git log:查看历史日志

  git revert:还原一个版本的修改,必须提供一个具体的Git版本号,例如'git revert bbaf6fb5060b4875b18ff9ff637ce118256d6f20',Git的版本号都是生成的一个哈希值

  上面的命令几乎都是每个版本控制工具所公有的,下面就开始尝试一下Git独有的一些命令:

  git branch:对分支的增、删、查等操作,例如'git branch new_branch'会从当前的工作版本创建一个叫做new_branch的新分支,'git branch -D new_branch'就会强制删除叫做new_branch的分支,'git branch'就会列出本地所有的分支

  git checkout:Git的checkout有两个作用,其一是在不同的branch之间进行切换,例如'git checkout new_branch'就会切换到new_branch的分支上去;另一个功能是还原代码的作用,例如'git checkout app/model/user.rb'就会将user.rb文件从上一个已提交的版本中更新回来,未提交的内容全部会回滚

  git rebase:用下面两幅图解释会比较清楚一些,rebase命令执行后,实际上是将分支点从C移到了G,这样分支也就具有了从C到G的功能

git reset:将当前的工作目录完全回滚到指定的版本号,假设如下图,我们有A-G五次提交的版本,其中C的版本号是 bbaf6fb5060b4875b18ff9ff637ce118256d6f20,我们执行了'git reset bbaf6fb5060b4875b18ff9ff637ce118256d6f20'那么结果就只剩下了A-C三个提交的版本。

git stash:将当前未提交的工作存入Git工作栈中,时机成熟的时候再应用回来,这里暂时提一下这个命令的用法,后面在技巧篇会重点讲解

  git config:利用这个命令可以新增、更改Git的各种设置,例如'git config branch.master.remote origin'就将master的远程版本库设置为别名叫做origin版本库,后面在技巧篇会利用这个命令个性化设置你的Git,为你打造独一无二的 Git

  git tag:可以将某个具体的版本打上一个标签,这样你就不需要记忆复杂的版本号哈希值了,例如你可以使用'git tag revert_version bbaf6fb5060b4875b18ff9ff637ce118256d6f20'来标记这个被你还原的版本,那么以后你想查看该版本时,就可以使用 revert_version标签名,而不是哈希值了。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

myelipse+git代码提交,冲突解决,分支使用

前面文章讲完,如何集成,项目导入和导出,下面介绍下如何在IDE中 提交代码,解决冲突,分支; 1.分支说明: 创建分支的好处是,不同开发者,用自己的分支互相独立开发,如 分支A 中,add了一个...

MyEclipse上的git冲突

git冲突

下次可以尝试这种方法

eclipse 中git解决冲突

1、工程->Team->同步:  2、从远程pull至本地,就会出现如下内容:  3、使用Merge Tool,执行第二项 使用HEAD合...
  • rosten
  • rosten
  • 2013-12-02 10:31
  • 106927

eclipse更新Git项目到本地工程

首先,连接上Git 然后点击Team Share  Project 然后你会看到一个pull, 图标是向左下, 这就对了, 点击进去你就可以...

在eclipse中使用git插件同步工程

git这么火,理应在多种环境中被使用到,而不仅限于要装个客户端或,eclipse作为强大而普及的IDE,理应也有比用命令行更简便的git同步方法,这步,今天自己网搜了下,果然发现在eclipse插件就...

Eclipse中用git解决冲突----避免每次重新拉代码

Eclipse中,git是个比较头疼的问题,如果稍有不慎,就只能将自己的代码备份一下,然后重新从服务器上拉代码,再把自己有修改的部分加上,然后提交。 每次都这样做,总会很烦的,现在来学一招,通过解决...

eclipse或者mycelipse使用git插件覆盖更新本地文件

eclipse或者mycelipse使用git插件覆盖更新本地文件摘要: 公司使用的是git作为代码版本管理的工具,而我以前是使用的svn。这不公司有需要让全部覆盖更新本地文件!于是到处百度,终...

eclipse git 强制覆盖本地文件

1、选择项目,右键选择Team,选择Team里面的Reset。 2、点击Reset后弹出Reset窗口,选择Hard选项,这样就会把远端的项目完全拉下来覆盖本地,本地没有的文件也会被...

Eclipse使用git命令行

虽然我们可以使用Eclipse的git插件进行大部分的git操作,但是部分操作使用Git命令行比较方便,如何在 Eclipse 中使用 Git命令行?以下是博主个人方法,如有其他方法请和博主分享。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)