IT技术互动交流平台

GIT使用入门篇(管理自已的代码)

作者:commandow  来源:IT165收集  发布日期:2014-11-10 20:38:42

1、Git介绍

  Git 是一款免费的、开源的、分布式的版本控制系统。旨在快速高效地处理无论规模大小的任何软件工程。

每一个 Git克隆 都是一个完整的文件库,含有全部历史记录和修订追踪能力,不依赖于网络连接或中心服务器。其最大特色就是“分支”及“合并”操作非常快速、简便。

2、Git和Svn的区别

  SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。

       Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

3、Git安装

1)在 Linux 上安装

如果要在 Linux 上安装预编译好的 Git 二进制安装包,可以直接用系统提供的包管理工具。在 Fedora 上用 yum安装:

$ yum install git-core

在 Ubuntu 这类 Debian 体系的系统上,可以用 apt-get 安装:

$ apt-get install git

2)在 Mac 上安装

在 Mac 上安装 Git 有两种方式。最容易的当属使用图形化的 Git 安装工具,界面如图 1-7,下载地址在:

http://code.google.com/p/git-osx-installer

另一种是通过 MacPorts (http://www.macports.org)安装。如果已经装好了 MacPorts,用下面的命令安装 Git:

$ sudo port install git-core +svn +doc +bash_completion +gitweb

这种方式就不需要再自己安装依赖库了,Macports 会帮你搞定这些麻烦事。一般上面列出的安装选项已经够用,要是你想用 Git 连接Subversion 的代码仓库,还可以加上 +svn 选项,具体将在第八章作介绍。(译注:还有一种是使用homebrew(https://github.com/mxcl/homebrew):brewinstall git

3)在 Windows 上安装

在 Windows 上安装 Git 同样轻松,有个叫做 msysGit 的项目提供了安装包,可以到 GitHub 的页面上下载 exe安装文件并运行:

http://msysgit.github.com/

完成安装之后,就可以使用命令行的 git工具(已经自带了ssh 客户端)了,另外还有一个图形界面的 Git 项目管理工具。

4、Git本地仓库使用

1)初始化

git init

cd到你本地的工程目录,初始git使用环境,当前目录下会创建一个.git目录。

image

我这是之前init过了,所以会提示reinit。

2)添加文件到版本库

git add [file/dir]

这样,把文件添加到git本地管理目录中,这类似Svn的add操作,实际上,还没有提交到本地管理仓库。利用

git status

通过git status可以看到,刚才的添加操作,对于本地仓库的文件有没有什么变化?

image

下一步,需要把readme.txt添加到本地仓库中去,利用:

git commit -m '你的注释说明'

这样,就把文件添加到了本地Git仓库了。

image

当然,你可以再运行git status,看一下,还有没有没提交的代码。现在本地仓库的提交已完成,下节会讲到如何把本地仓库和远程Github仓库相关联。

5、Git远程仓库使用

先注册github账号,由于你的本地Git仓库和github仓库之间的传输是通过SSH加密的,所以需要一点设置:

1)创建SSH Key

在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果有的话,直接跳过此如下命令,如果没有的话,打开命令行,输入如下命令:

ssh -keygen  -t rsa –C “youremail@example.com”

由于我本地此前运行过一次,所以本地有,如下所示:

image

本人是记不得路径的(建议可以安装everything这个软件,找文件非常方便)

登录github,打开“settings”中的SSH Keys页面,然后点击“Add SSH Key”,填上任意title,在Key文本框里黏贴github_rsa.pub文件的内容。

image

2)添加远程仓库

我们已经在本地创建了一个Git仓库后,又想在github创建一个Git仓库,并且希望这两个仓库进行远程同步,这样github的仓库可以作为备份,又可以其他人通过该仓库来协作。

image

image

点击”Create repository“,便创建了一个远程仓库。

3)关联本地Git仓库

目前,在GitHub上的这个test仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。

现在,我们根据GitHub的提示,在本地仓库下运行命令:

git remote add origin https://github.com/commandow/LeetCode.git

如果提示:

image

提示出错信息:fatal: remote origin already exists.

找到你的github的安装路径,我的是C:\Users\Administrator\AppData\Local\GitHub\PortableGit_054f2e797ebafd44a30203088cd3d58663c627ef\etc

找到一个名为gitconfig的文件,打开它把里面的[remote "origin"]和下面对应的几行删掉即可。

4)提交本地代码到远程仓库

git push –u origin master

我们第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令(不用加-u)。

但是敲入命令后,出现如下问题。

image

原因是:在Github新建目录时,同时选择了创建一个readme.txt,这样造成了远程仓库和本地仓库版本不一致。

解决办法:

image

git pull [remote_path] master

相当于把远程目录拉下做一个代码版本合并的操作。

image

Ok,至此,整个工程就添加上去了

Tag标签: 代码  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规