前言
git新手学起来,还是比较困难的。我大概花了三天时间才把老师讲的内容,顺利的练了一遍。我是个比较较真的程序员,有任何疑问或者新奇的想法都会去做,所以在练习git过程中,出现了很多容易犯的错误,希望通过这篇文章,来巩固git的使用和谈谈自己的心得。
git简介
想用好git,先要知道git是什么。它是一个分布式版本控制软件,最初由林纳斯·托瓦兹(Linus Torvalds)创作,于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计。
git是用于Linux内核开发的版本控制工具。与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。git的速度很快,这对于诸如Linux内核这样的大项目来说自然很重要。git最为出色的是它的合并追踪(merge tracing)能力。
git和其他版本控制系统(如CVS)有不少的差别,git本身关心文件的整体性是否有改变,但多数的CVS或Subversion系统则在乎文件内容的差异。因此git更像一个文件系统,直接在本机上获取数据,不必连接到主机端获取数据。
github网站
GitHub是一个通过Git进行版本控制的软件源代码托管服务,由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成。
GitHub里面的项目可以通过标准的Git命令进行访问和操作。同时,所有的Git命令都可以用到GitHub项目上面。GitHub开发了针对Windows和OS X操作系统的桌面客户端。此外,也可以使用第三方插件来实现Git功能。
网站提供了一系列社交网络具有的功能,例如赞、关注、评论。用户可以通过复刻他人项目的形式参与开发,并可通过 Collaboration graph(协作示意图)来查看有多少开发者参与了开发并追踪最新的复刻版本。此外网站还有Wiki(通过一个名为 gollum 的软件实现)等功能。
GitHub同时允许注册用户和非注册用户在网页中浏览项目,也可以以ZIP格式打包下载。但是用户必须注册一个账号然后才能进行讨论、创建并编辑项目、参与他人的项目和代码审查。
我们要使用git,要先在github上注册才行。
注册完成之后,就是git与github之间的公私钥的配置。这一步对于新手来说也是非常复杂。我前前后后试了很多次终于配上了。首先打开git bash(对于windows版本的同学,mac直接打开命令提示符),利用这段命令生成公私钥
?的代码,回复yes,生成Know_hosts文件。
之后一直回车出现这张图为止
之后新建库(New repository)。
一般我们是创建Public类型库,这是免费的。当然还有Private,这需要收费。如下图所示
当我们要把本地的代码push到github上,需要三个命令,1、git add .表示增加所有变更的文件到暂缓区;2、git commit -am "文件属性"提交到本地库;3、git push推送到github远程库,第一次先git push origin master。之后直接就git push就好了。git status是查看文档所处状态。
在github中,对于html类型文件我们可以直接设置为预览模式,直接通过URL浏览文件。
git简单使用
前面提到,把文件推送到github,有三个步骤,对应的是把文件推在不同的地方,一步一步的推送到github。每个步骤也可以通过git status命令查看步骤状态和取消步骤。
下面介绍一些git最常使用命令
创建文件 touch 文件名.格式
创建文件夹 mkdir 文件夹名
重命名文件名 mv 更改前名 更改后名
在文件里写入一个字符串 echo "hello" > a.md
把远程仓库的变动更新合并到本地仓库 git pull
修改文件 vim a.md vim是git中一个文件修改编辑器,在我的简书中有一些介绍vim使用此时会进入 vim 界面,按下i进入编辑状态,进行编辑,编辑完成后按下 esc 进入命令态, 输入 :wq 保存退出 vim
git add .
git commit -a 这里需要注意,如果提交消息包含大量字符串,提交参数不用加 m
git push origin master
rm -rf a.md 直接删除a.md文件,不需要询问直接强制删除。当然还有rm -r删除文件夹命令;rm删除文件命令。
如果之前已经git push origin master 过,后面可以直接简化成 git push
git push
git复杂使用
我们通过以下几个例子来学习git的复杂使用。
1、本地创建一个git项目推送到远程空仓库
首先要在github上创建一个仓库如图
之后在git bash上操作
跟着以上详细步骤,就能把本地newrepositor推送到远程库了。
2、分支操作
分支操作是git最具代表性的功能,开发同一个项目的程序员可以通过分支来上传合并。下面通过命令行演示一下创建分支和合并到主干上。
3、冲突
当大家一同完成一个项目时,各自把自己代码push到github上,由于自己本地的库不是最新的只要远程库被别人更新,那么你再上传就会产生冲突。下面演示一个典型的