Git与GitHub入门基础(一)

Git的诞生

  很多人都知道,Linus在1991年创建了开源的Linux。从此,Linux系统不断发展,已经成为最大的服务器系统软件了。Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?

  事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!你也许会想,为什么Linus不把Linux代码放到版本控制系统里呢?不是有CVS、SVN这些免费的版本控制系统吗?因为Linus坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符。

  不过,到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统。安定团结的大好局面在2005年就被打破了,原因是Linux社区牛人聚集,不免沾染了一些梁山好汉的江湖习气。开发Samba的Andrew试图破解BitKeeper的协议(这么干的其实也不只他一个),被BitMover公司发现了(监控工作做得不错!),于是BitMover公司怒了,要收回Linux社区的免费使用权。Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情况是这样的:Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!牛是怎么定义的呢?大家可以体会一下。Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。

  历史就是这么偶然,如果不是当年BitMover公司威胁Linux社区,可能现在我们就没有免费而超级好用的Git了。

Git安装

  最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑。不过,慢慢地有人把它移植到了Windows上。现在,Git可以在Linux、Unix、Mac和Windows这几大平台上正常运行了。

Linux上安装Git

  首先,你可以试着输入git,查看系统是否安过Git:

1 $ git
2 The program ‘git‘ is currently not installed. You can install it by typing:
3 sudo apt-get install git

  像上面的命令,有很多Linux会友好地告诉你Git没有安装,还会告诉你如何安装Git。如果用Debian或Ubuntu Linux,通过一条sudo apt-get install git就可以直接完成Git的安装。

  如果是其他Linux版本,可以直接通过源码安装。先从Git官网下载源码,然后解压,依次输入:./configmakesudo make install这几个命令安装就好了。

Windows上安装Git

  在Windows上使用Git,可以从Git官网下载安装程序,然后按默认选项安装即可。安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

  安装完成后,还需要最后一步设置,在命令行输入:

1 $ git config --global user.name "Your Name"
2 $ git config --global user.email "[email protected]"

  因为Git是分布式版本控制系统,所以每个机器都必须自报家门:你的名字和Email地址。注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

创建版本库

  什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:

1 $ mkdir learngit
2 $ cd learngit
3 $ pwd
4 /Users/michael/learngit

  注意:如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。

  接下来,通过git init命令把这个目录变成Git可以管理的仓库:

1 $ git init
2 Initialized empty Git repository in /Users/michael/learngit/.git/

  这样Git就把仓库建好了,而且是一个空的仓库。可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,这个目录默认是隐藏的。没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。当然,不一定必须在空目录下创建Git仓库,选择一个已经有东西的目录也是可以的。

添加文件到版本库

  所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。

  不幸的是,Microsoft的Word格式是二进制格式,因此版本控制系统是没法跟踪Word文件的改动的,如果要真正使用版本控制系统,就要以纯文本方式编写文件。因为文本是有编码的,比如中文有常用的GBK编码,日文有Shift_JIS编码。建议使用标准的UTF-8编码,所有语言使用同一种编码,既没有冲突,又被所有平台所支持。

  使用Windows的Git时,应特别注意:

  千万不要使用Windows自带的记事本编辑任何文本文件!!原因是Microsoft开发记事本的团队使用了一个非常弱智的行为来保存UTF-8编码的文件,他们自作聪明地在每个文件开头添加了0xefbbbf(十六进制)的字符,你会遇到很多不可思议的问题!比如,明明正确的程序一编译就报语法错误,等等,都是由记事本的弱智行为带来的。建议使用Notepad++代替记事本。记得把Notepad++的默认编码设置为UTF-8 without BOM即可。

  言归正传,现在我们编写一个sayHello.py文件,内容如下:

1 def sayHello(name):
2     print("Hi,", name)

  一定要放到learngit目录下(子目录也行),因为这是一个Git仓库,放到其他地方Git再厉害也找不到这个文件。

  第一步,用命令git add告诉Git,把文件添加到仓库:

1 $ git add sayHello.py

  执行上面的命令,没有任何显示,说明添加成功。

  第二步,用命令git commit告诉Git,把文件提交到仓库:

1 $ git commit -m "creat sayHello.py file"
2 [master (root-commit) eaadf4e] creat sayHello.py file
3  1 file changed, 2 insertions(+)
4  create mode 100644 sayHello.py

  简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。

  参考:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

原文地址:https://www.cnblogs.com/zhangchao162/p/9567308.html

时间: 2024-10-09 05:58:18

Git与GitHub入门基础(一)的相关文章

Git和GitHub入门基础

教程网址:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000-----------------------------------------//cd F:/learngitgit init  // 在当前目录下创建空的git仓库-----------------------------------------// 创建文件并放到git仓库所在目录,执行下面命令将文件添加到git仓库

Git与GitHub入门基础(二)

上节回顾 初始化一个Git仓库用 git init 命令. 将文件添加到Git仓库中主要有两个步骤:    第一步,使用命令 git add <file>: 注意:使用 git add . 命令可以将全部文件同时添加到Git仓库缓存区.    第二步,使用命令 git commit -m "message" 将Git仓库缓存区文件存放到Git仓库. 这样,就完成了将文件存放到Git仓库的基本流程. ============我===是===分===割===线=========

Git和Github入门学习

注册github账号也有些时日,但一直给自己找借口github的操作麻烦,便一直逃避不肯学习,今天,我终于不再逃避,静下心来花时间和精力学习github的基本使用操作.git和github入门学习一.下载安装安装 git for windows 这个是一个git的windows系统的命令行版本 https://git-scm.com/downloads注释:安装 git for windows 一路 next 即可二.使用github1.注册账号github官网:https://github.c

Git及Github入门笔记

简介 Git是一个分布式版本控制系统(你可以通过Git来管理你的代码以及相关文档,可以在自己电脑上管理,同时也可以和同事协同使用管理),Github为Git提供一个服务器(简单的说,就是你可以把你的代码推送到Github上去,同时可以从Github上边clone一些代码下来) 安装 网上安装资料一大堆,这里推荐一个廖雪峰Git教程,安装后就可以使用了,这里要说明的是如果你需要和Github关联的话还要做进一步操作,看这里 常用命令(个人常用的命令) 1.比方说你创建了一个test.py文件,想保

git和github入门指南(3.2)

3.3.解决多人协作开发过程中的代码冲突问题 1.在多人协作开发的项目中,每次开发之前每个人最好先同步更新一下github上最新的代码,可以减少冲突的概率 git pull 2.产生冲突 目前咱们演示项目git-demo中有两个开发这,第一个人,nodeing666,第二个,nd-00002,github仓库中最新的代码是nd-00002这个人提交的代码,这个时候,如果nodeing666这个人在开发之前并没有拉取github中最新的代码,而是直接去修改index.html这个页面,例如: <s

精通Git(第2版)+Git团队协作+GitHub入门与实践+Git版本控制管理(第2版)

资源链接:https://pan.baidu.com/s/1FElckzWH6sqyugNK5o8b7w搜集并整理了网上有关GitHub学习的9本书籍,如下:<精通Git (第2版)>中英文PDF<Git团队协作>中英文PDF<Git权威指南(第2版)>和第1版PDF<Git版本控制管理 (第2版)>中英文PDF<GitHub入门与实践>PDF,以及Git桌面Win64bit版最新安装包目录及截图如下: 原文地址:http://blog.51ct

Git和GitHub快速入门

Git入门 简介 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的分布式版本控制系统. 工具 准备工具 Git下载地址:https://git-scm.com Git配置 配置的内容主要是:用户名和邮箱 git config --global --add user.name <用户名> git config -global --add user.email <邮箱地址> 配置示例如图所示: 入门示例 创建项目 mkdir test

【学习】Git和Github菜鸟入门

Git 是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理. 目录(自己创建吧) 生成ssh密钥:ssh-keygen -t rsa -C "邮箱" 生成的密钥会放在:C:\Users\Administrator\.ssh (三个回车) *id_rsa 是私钥,id_rsa.pub 是公钥.记住千万不要把私钥文件id_rsa透露给任何人.每一台电脑对应一个密钥给github!!! 添加ssh公钥到github 命令行里测试下是否联通:ssh -T [ema

GitHub 入门

1. CentOS 安装 Github. # sudo yum install skynet 安装之后查看一下版本. # git --version 2. 注册 Github 账号,登录后阅读 Github 的基础入门. 创建属于自己的 repository: 按介绍所说,Git 推荐为 repository 建立一个 readme 这样的介绍工程的文本,Git 也能快速提供 License file. 果不其然: 尝试建立看看. 总而言之,博客园记一些笔记,Git 做云代码仓库. 3. Git