博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
史上最浅显易懂的Git教程!
阅读量:5265 次
发布时间:2019-06-14

本文共 4614 字,大约阅读时间需要 15 分钟。

本教程只会让你成为Git用户,不会让你成为Git专家。很多Git命令只有那些专家才明白(事实上我也不明白,因为我不是Git专家),但我保证 这些命令可能你一辈子都不会用到。既然Git是一个工具,就没必要把时间浪费在那些“高级”但几乎永远不会用到的命令上。一旦你真的非用不可了,到时候再自行Google或者请教专家也未迟。

 

Git是什么?

Git是目前世界上最先进的分布式版本控制系统(没有之一)。

Git有什么特点?简单来说就是:高端大气上档次!

 

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了。

 github是一个网站,给用户提供git服务。这样你就不用自己部署git系统,直接用注册个账号,用他们提供的git服务就可以。

 

 

第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下

有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接 跳到下一步。如果没有,打
开Shell(Windows下打开Git Bash),创建SSH Key:

ssh-keygen -t rsa -C "youremail@example.com"

第2步:登陆GitHub,打开“Account settings”,“SSH Keys”⻚页⾯面:

然后,点“Add SSH Key”,填上任意Title,在Key⽂文本框⾥里粘贴id_rsa.pub⽂文件的内容:

 

为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而

不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只
有你自己才能推送。

当然,GitHub允许你添加多个Key。假定你有若干电脑,你⼀一会⼉儿在公司提交,一会儿在
家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送
了。
最后友情提示,在GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能
改)。所以,不要把敏感信息放进去。
如果你不想让别人看到Git库,有两个办法,一个是交点保护费,让GitHub把公开的仓库变
成私有的,这样别人就看不见了(不可读更不可写)。另 一个办法是自己动手,搭一个Git
服务器,因为是你自己的Git服务器,所以别人也是看不见的。

 

Windows下要使用很多Linux/Unix的工具时,需要Cygwin这样的模拟环境,Git也⼀一样。

Cygwin的安装和配置都比较复杂, 就不建议你折腾了。不过,有高人已经把模拟环境和
Git都打包好了,名叫msysgit,只需要下载一个单独的exe安装程序,其他什么也不用装,
绝对好 用。
msysgit是Windows版的Git,从http://msysgit.github.io/下载,然后按默认选项安装即
可。
安装完成后,在开始菜单⾥里找到“Git”->“Git Bash”,蹦出⼀一个类似命令⾏行窗⼝口的东
⻄西,就说明Git安装成功!

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

git config --global user.name "Your Name"git config --global user.email "email@example.com"

  

因为Git是分布式版本控制系统,所以,每个机器都必须⾃自报家⻔门:你的名字和Email地址。
你也许会担⼼心,如果有⼈人故意冒充别⼈人怎么办?这个不必担⼼心,⾸首先我们相信⼤大家都是善良
⽆无知的群众,其次,真的有冒充的也是有办法可查的。
注意git config命令的--global参数,⽤用了这个参数,表⽰示你这台机器上所有的Git仓库都会
使⽤用这个配置,当然也可以对某个仓库指定不同的⽤用户名和Email地址。

 

 

用命令git clone克隆⼀一个本地库:

git clone https://github.com/Ocean-Openstack/01-openstack-homework.git

  

创建自己文件夹

cd Day4mkdir lixhcd lixhtouch zuoye.py

  

第⼆二步,通过git init命令把这个⺫⽬目录变成Git可以管理的仓库:(还在在自己目录下)

git init

瞬间Git就把仓库建好了,⽽而且告诉你是⼀一个空的仓库(empty Git repository),细⼼心的

读者可以发现当前⺫⽬目录下多了⼀一个.git的⺫⽬目录,这个⺫⽬目录是Git来跟踪管理版本库的,没事千
万不要⼿手动修改这个⺫⽬目录⾥里⾯面 的⽂文件,不然改乱了,就把Git仓库给破坏了。

 

 

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

git add .

  

执行上⾯面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明
添加成功。

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

git commit -m "first commit"

  

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

把本地master分支的最新修改推送至GitHub

git push -u origin master

删除文件

rm -rf 2.txt

git add .
git commit -m "del file"
git push -u origin master

 

 

第二次再提交作业

 

还是最后三步:

1.还是在自己的家目录

cd lixhtouch zuoye2.py  #模拟作业文件

  

2.用命令 git add 告诉Git,把⽂文件添加到仓库:

git add .

 

执行上⾯面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明

添加成功。

3.用命令 git commit 告诉Git,把⽂文件提交到仓库:

git commit -m "first commit"

  

把本地master分支的最新修改推送至GitHub

git push -u origin master

 

 

 

 

当别人在别人自己的目录提交了文件的时候,你本地目录却没有改变,或者也就是其他人在自己的目录提交了作业,当你比其他人交的晚或者最后一天发现写错想修改怎么办?

 举个栗子:

张三昨天晚上交了一个作业,GitHub上是这样的:

 

 而你本地却没有:

 

 

你会发现按照第二次交作业步骤提交会报错:

 

 

 

 这是为啥呢?

这是因为远程仓库(github)和你本地结构不一样。(这不废话吗?我TM也知道啊!)

 

怎么解决呢?

把远程仓库和本地结构合并一下(把远程服务器github上面的文件拉下来)

 

官方是这么说的:取回远程主机某个分支的更新,再与本地的指定分支合并

 

git pull origin master

执行过程中呢会出现类似于一个vim的界面,跟vim一样。直接输入:q退出即可

 

再执行 上面那三条命令(第二次交作业) 即可

总结:也就是下次交作业(提交代码的时候)先git pull一下,把代码clone下来,再提交

 

pycharm的github的使用

 

 1.file---default settings

 

 2.搜索git (File->Settings->Version Control->Github)

 

 

 

 

 3.选择Git安装路径

选择git,输入你git.exe的安装位置路径,下面是我的git.exe的位置:D:\Git\bin\git.exe,然后点击OK。

 

 

4.选择github,在旁边输入你github的用户名和密码,可以点击”test”测试一下,如果出现:Connection successful,则代表连接成功了。

 

 

 5.由于咱们已经有了项目,直接拉到本地修改即可

 

 

 

 

 

 

 

 项目已经拉了下来

 

 

 

6.修改后的文件提交

比如我在lixh下修改test2文件(蓝色代表修改的部分,绿色代表新增部分)

 

 

7.对修改后的文件或目录点击右键:Git—>Add,先把文件放入暂存区

 

 

 8.对修改后的文件或目录点击右键:Git—>Commit File,把刚才add放在暂缓区的文件提交。

 

 9.填写提交信息,和git commit -"first commit"这条命令中的“first commit”是一个意思,就是本次提交的说明。然后提交和推送,选择commit and push

 

 

 

 提交成功。可以去github上查看有没有提交成功

 

 

 

为了避免commit的时候出现问题,上传之前还是先要pull一下

 

转载于:https://www.cnblogs.com/hui520/p/6421815.html

你可能感兴趣的文章
自定义返回模型
查看>>
C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 客户端多网络支持
查看>>
HDU 4122
查看>>
Suite3.4.7和Keil u3自带fx2.h、fx2regs.h文件的异同
查看>>
打飞机游戏【来源于Crossin的编程教室 http://chuansong.me/account/crossincode 】
查看>>
[LeetCode] Merge Intervals
查看>>
【翻译自mos文章】当点击完 finishbutton后,dbca 或者dbua hang住
查看>>
Linux编程简介——gcc
查看>>
一种高效的序列化方式——MessagePack
查看>>
2019年春季学期第四周作业
查看>>
2019春第十周作业
查看>>
解决ThinkPHP关闭调试模式时报错的问题汇总
查看>>
【APT】SqlServer游标使用
查看>>
关于ExecuteNonQuery()返回值为-1
查看>>
Firefox修復QQ快速登錄
查看>>
PAT——1060. 爱丁顿数
查看>>
分布式技术追踪 2017年第二十期
查看>>
git添加公钥后报错sign_and_send_pubkey: signing failed: agent refused operation的解决办法
查看>>
Linux环境变量永久设置方法(zsh)
查看>>
MVC4.0 利用IActionFilter实现简单的后台操作日志功能
查看>>