文章目录
Git 简介
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的分布式版本控制系统。
与常用的版本控制工具 CVS, Subversion 等不同,它有几个特点:
- 采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。
- Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。
- Git 最为出色的是它的合并跟踪(merge tracing)能力。
同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用分布式版本控制系统 BitKeeper 来管理和维护代码。
到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了免费使用 BitKeeper 的权力。这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds )不得不吸取教训,只有开发一套属于自己的版本控制系统才不至于重蹈覆辙。他们对新的系统制订了若干目标:
- 速度
- 简单的设计
- 对非线性开发模式的强力支持(允许上千个并行开发的分支)
- 完全分布式
- 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。它的速度飞快,极其适合管理大项目,它还有着令人难以置信的非线性分支管理系统,可以应付各种复杂的项目开发需求。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。
Git 是一个非常强大的版本管理工具,也是目前最流行的代码管理工具。学习 GIT 首先理解几个关键点
- Git 本身是基于本地管理的。也就是说,即使你不需要联网,也可以使用 Git 管理你的代码。
- 它创建分支与合并分支容易,推送速度快,配合网上代码仓库提交代码也更容易。
- 所以,为了充分体现 GIT 管理的优越性,也便于共享代码,目前有很多基于 Git 的代码托管网站。
- 这些网站与GIT的关系就好比文件夹与云盘的关系,国外著名的有 GitHub,国内有:Gitee
本地仓库
GIT的基本元素就是本地仓库,本地仓库由 git 维护的三棵“树”组成。
- 第一个是你的 工作目录,它持有实际文件;
- 第二个是 暂存区(Index),它像个缓存区域,临时保存你的改动;
- 最后是 HEAD,它指向你最后一次提交的结果。
如上图,他实际上关联着 GIT 的三种基本操作:
add
添加修改内容
git add *
commit
从上面的图中你可以看到,add命令只是将文件放入暂存区,并没有真正保存你的改动,所以你还需要commit
git commit -m "更新信息"
commit以后,你的文件就在head区,它指向你最后一次提交的结果,这个时候你的本地管理就完成了,
push
当然如果你需要推送到云仓库,还需要执行push
操作
git push -u origin master
Git 快速入门
# Git 全局设置:
git config --global user.name "xxxx"
git config --global user.email "xxxx@xxx.com"
# 创建 git 仓库:
mkdir Code
cd Code
git init
# 添加文件到仓库
touch README.md
git add README.md
# 推送
git commit -m "first commit"
git remote add origin https://gitee.com/xxxx/Code.git
git push -u origin master
# 已有仓库?
cd existing_git_repo
git remote add origin https://gitee.com/founderznd/Python.git
git push -u origin master
# 删除
rm -rf .git
下载安装
更新代码
当你修改完代码以后,代码还处于缓存区,GIT 并没有真正保存你的改动,所以你还需要commit,commit以后,你的文件就在head区,这时候你还需要连接到你的代码仓库,最后再把项目推送到仓库上
git commit -m "更新信息"
git remote add origin https://github.com/xxx/HelloWorld.git
git push -u origin master
系统会提示你输入用户名和密码
Username for 'https://github.com': xxxxx
Password for 'https://xxxxx@github.com':
输入正确以后,git就开始上传你的项目到仓库上,你可以网页登陆到仓库中查看是否上传成功
克隆项目
克隆项目会将整个仓库完整的下载到你的目录以后,一般适用于第一次下载
git clone https://github.com/xxxxx/projectname.git
拉取项目
git pull 只会将最新的内容下载到本地,这需要你的本地仓库中有.git文件的存在。
如果你之前已经clone过这个仓库。那么你只需要进入到该仓库目录。
git pull
如果没有,git会让你init一个新的。
git init
git pull https://github.com/xxxxx/projectname.git
需要注意的是,这种方法会将仓库里面的内容直接下载到你当前的目录下。如果服务器的仓库里面有1000个文件,你会发现你当前所在的目录下会突然多出1000个文件,如果你恰好位于根目录。。。那么恭喜你了。。慢慢清理吧。
而clone不同,它会先在当前目录下新建一个名为projectname的文件夹,再把所有文件下载到那个文件夹当中去。这样一来,你所在的目录只会多出一个文件夹
总结
- 第一次下载仓库,最好用clone,仓库更新用pull
- 下载只有一步,clone或者pull
- 上传有三步,add、commit和push
GitHub
注册github
-
要想使用github,首先要注册一个github账号。
-
登陆以后,新建一个仓库。
-
现在你已经拥有了自己的代码仓库了,接下来对github的管理,离不开各个工具,下面简单介绍几种
eclipse下github的使用
想在eclipse下使用github进行代码的维护和管理,最简单的工具就是egit,这是eclipse提供的官方版本,简单好用。
下面说说步骤
当你新建好一个仓库以后,可以得到一个链接,点击右边的按钮,复制链接,以后会用到。
- 完成网页部分以后,回到eclipse,创建或者找到需要上传的project。 右键->team->share project。
- 然后再右键->team->commit…(快捷键Ctrl + #)->写入commit message,下面的files全选->commit and push
-
如果是第一次commit,则会出现下图,否则跳过此步骤。
-
然后一直next直到finish
如此大致上就做好一个repository了,以后当你编写完代码需要上传的时候,只需要重复步骤5就行。
如果要下载代码,则是右键->team->pull
如此,就可以愉快的编程了。
关于README.md说明文档
新建仓库,github提示你是否新建说明文档,这个是md格式的,也就是markdown的缩写,所以github的说明文档是支持markdown语法的。
这也是为什么很多人把github当博客来使用的原因。。。
不仅如此,github还有更多相当有用的地方,比如当图片的引用仓库等等~~
这里有一篇相当好的文章,分享给大家:GitHub秘籍