2019独角兽企业重金招聘Python工程师标准>>>

GitHub地址:https://github.com/leebingbin/

一、Git 是什么

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git是目前世界上最先进的分布式版本控制系统。

二、Git 能干什么

乍一看,传统的SVN好像也能满足!那 Git 和 SVN 又有何区别呢?

三、怎么下载、安装和配置

1、官网及下载地址: https://git-scm.com/downloads

2、安装与配置

2.1 Windows 版本安装与配置

Tips:

在“Configuring the line ending conversions”选项中,
第一个选项:如果是跨平台项目,在windows系统安装,选择;
第二个选项:如果是跨平台项目,在Unix系统安装,选择;
第三个选项:非跨平台项目,选择。

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

Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。

操作系统的用户路径下的.gitconfig文件里面可以看到,刚才设置的用户名和邮箱。

2.2 Linux / Unix 版本安装与配置

下载适用于Linux和Unix
使用Linux发行版的包管理,在Linux上安装Git是最简单的。
如果你喜欢从源代码构建,你可以在kernel.org上找到tarball 。Debian / Ubuntu# apt-get install git
对于Ubuntu,这个PPA提供了最新的稳定的上游Git版本# add-apt-repository ppa:git-core/ppa
# apt update; apt install gitFedora
# yum install git(直到Fedora 21)
# dnf install git(Fedora 22及更高版本)Gentoo
# emerge --ask --verbose dev-vcs/gitArch Linux
# pacman -S gitopenSUSE
# zypper install gitMageia
# urpmi gitNix/NixOS
# nix-env -i gitFreeBSD
# pkg install gitSolaris 9/10/11(OpenCSW)
# pkgutil -i gitSolaris 11 Express
# pkg install developer/versioning/gitOpenBSD系统
# pkg_add gitAlpine
$ apk add git
红帽企业Linux,Oracle Linux,CentOS,Scientific Linux等。
RHEL和衍生产品通常会运送旧版本的git。可以下载一个tarball并从源代码构建,
或者使用第三方存储库(如IUS社区项目)来获取更新版本的git。Slitaz
$ tazpkg get-install git

Tips: dnf命令

DNF是新一代的rpm软件包管理器。他首先出现在 Fedora 18 这个发行版中。而最近,它取代了yum,正式成为 Fedora 22 的包管理器。

DNF包管理器克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。DNF使用 RPM, libsolv 和 hawkey 库进行包管理操作。尽管它没有预装在 CentOS 和 RHEL 7 中,但你可以在使用 YUM 的同时使用 DNF 。 DNF 的最新稳定发行版版本号是 1.0,发行日期是2015年5月11日。 这一版本的  DNF 包管理器(包括在他之前的所有版本) 都大部分采用 Python 编写,发行许可为GPL v2.

3、Git 常用操作

我们把文件往Git版本库里添加的时候,是分两步执行的:
    第一步是用“git add”把文件纳入Git管理,实际是把本地文件修改添加到暂存区;
    第二步是用“git commit”提交更改,实际上就是把暂存区的所有内容提交到当前分支 。

因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以commit就是往master分支上提交更改。可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。一旦提交完后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的。即:nothing to commit (working directory clean)。

 * 用“git diff HEAD -- filename”命令可以查看工作区和暂存区里面最新版本的区别* 新建过撤销未add: git checkout  -- 文件名* 撤销已add未commit:先git  reset HEAD  文件名 再 git checkout -- 文件名* 撤销已add已commit:       git reset –hard HEAD^

Tips:Git 常用命令

1  新建一个仓库,并且该仓库应该是git类型1.1  git init新建git类型的仓库2 新建文件并放入git仓库2.1 touch a.txt   touch a.txt或者vi2.2    git add 将新建的a.txt纳入git管理2.3 git status,查看文件在git仓库中的状态2.4    git commit -m "提交修改的信息说明",完成了首次提交2.5  新增文件内容,再次尝试提交。3  git的日志和跟踪管理3.1  git log,查看每次操作的日志情况。git log --pretty=oneline可以一行显示,查看关键信息3.2    git diff,查看内容不同。4   git版本的回退4.1 退一步,git reset --hard HEAD^,指针回退一步;4.2  退多步V1,git reset --hard HEAD^^^^^^^^^^,多个箭号4.3    退多步V2,git reset --hard HEAD~数字步数4.4  穿梭穿越,git reflog获得头7位版本号,然后git reset --hard 7位版本号5 git三区(见上图)6   git分支6.1    git branch 查看分支6.2  git branch 分支名字  作用是新建分支6.3 git checkout 分支名  作用是切换分支6.4    git merge 目的分支   作用是将目的分之的内容合并进当前分支6.5  git branch -d 分支名   作用是删除分支6.6  git checkout -b 分支名 作用是新建+切换一步搞定7  第一种冲突分支合并后的冲突,如何解决见VCR。第二种冲突git本地命令和github的交互冲突,push提交后的内容冲突,请先pull到本地人工干预收工合并后再push第三种冲突TortoiseGit和TortoiseSVN是同样的操作解决TortoiseGit--黄色三角感叹号---edit conflict---merge---resolve--commit--->OK第四种冲突,Egit处理有冲突了先pull,具体见Vcr8 TortoiseGit 可以图形化操作的Git 9   EGit[branch "master"]remote = originmerge = refs/heads/master[remote "origin"]url = git@github.com:zzyybs/换成你自己的工程.gitfetch = +refs/heads/*:refs/remotes/origin/*push = refs/heads/master:refs/heads/master

四、Github简介

GitHub是一个Git项目托管网站,主要提供基于git的版本托管服务。 GitHub是一个基于Git的代码托管平台, Git 并不像 SVN 那样有个中心服务器。目前我们使用到的 Git 命令都是在本地执行,如果你想通过 Git 分享你的代码或者与其他开发人员合作。 你就需要将数据放到一台其他开发人员能够连接的服务器上。

GitHub 官方网址:https://github.com

1、注册+检查.ssh秘钥

由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以我们需要配置验证信息(No such file or directory表示第一次)

未配置如下:

已配置如下:

2、创建SSH Key


ssh-keygen -t rsa -C "libingbin2015@aliyun.com"

后面的邮箱即为 github 注册邮箱,之后会要求确认路径和输入密码,一路回车就行。成功的话会在~/下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key。

3、验证 SSH Keys 是否添加成功


ssh -T git@github.com

五、GitHub 与 Git 协同办公

1、基本概念

1.1 必须了解的概念

(1)仓库 - Repository
    仓库即你的项目,你想在GitHub上开源一个项目,那就必须要新建一个Repository。如果你开源的项目有多个,那么你就有多个Repositories。
    (2)收藏 - Star
    收藏项目,方便下次查看。如果你的项目被收藏的次数越多,那么你的项目也就越受广大开发者的欢迎咯。
    (3)复制克隆项目 - Fork
    如果你开源了一个项目,别人想在你这个项目的基础之上做些改进,然后应用到自己的项目中,这时他就可以Fork你的项目,然后他的GitHub主页上就多了一个项目,只不过这个项目是基于你的项目为基础(相当于别人拿到了一个副本)。Fork之后,他就可以随心所欲地去改进,但是丝毫不会影响原有项目的代码与结构。
    (4)发起请求 - Pull Request
    如果别人在你的项目基础之上做了一些改进,并且觉得改得很不错,应该要把这些改进让更多的人受益。于是,他就想把自己的改进合并进原有项目之中,这时他就可以发起一个Pull Request。而原有项目创建人也就是你,可以收到这个请求,这个时候你可能会仔细review他的代码,并且测试后觉得OK,就可以接受他的Pull Request,之后他做的改进就可以融入到原有项目之中了。
    (5)关注 - Watch
    类似于微博中的关注,如果你Watch了某个项目,那么以后只要这个项目有任何更新,你都会第一时间收到关于这个项目的通知提醒。
    (6)事务卡片 - Issue
    你开源了一个项目,别人发现你的项目中有bug,或者哪些地方做的不够好,他就可以给你提一个Issue(即问题)。你如果看到了这些Issue,就可以逐个去Fix修复,修复OK之后就可以一个一个地Close掉。
    (7)GitHub主页
    如果你注册了一个GitHub账号,那么久会有一个属于你的GitHub主页,该页面左侧主要显示用户动态以及关注用户/仓库的动态,右侧则显示所有的Git库。
    (8)仓库主页
    仓库主页主要显示项目的信息,如:项目代码、版本、收藏/关注/Fork情况 等等。
    (9)个人主页
    个人信息:头像、个人简介、关注我的人,我关注的人,我关注的Git库,我的开源项目,我贡献的开源项目信息 等等。

1.2 必须完成的准备
    要使用GitHub,首先必须得注册一个GitHub账号啦!注册过程很简单,就跟你平时注册小网站会员一样,详细信息可以浏览:点此了解注册详情(https://github.com/join)
    需要注意的地方就是,选择Free免费账号完成设置!那么收费的跟免费的有什么区别呢?私有的仓库只有自己或者指定的朋友才有权限操作。

注册完成之后,记住要验证邮箱!如果未验证邮箱,那么你是没法做后续操作的。

2、GitHub基本操作

  2.1 创建仓库

  在GitHub中点击New repository活着Start a Project即可:

Step1.填写必要信息:

  Step2.浏览仓库主页 (所需的功能,点击对应的按键操作即可)

3、与 Git 协同办公

3.1 本地 到 github 远程库

情景描述:现在的情景是,我在本地创建了一个OA项目后,我又想在GitHub创建一个OA项目,并且让这两个仓库进行远程同步

先在本地新建好一个git项目,到Github上新建一个同名的空项目
     本地和github上的仓库进行关联

git remote add origin https://github.com/leebingbin/oa.git

把本地库的内容推送到远程git push命令,实际上是把当前分支master推送到远程

git push -u origin master

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

3.2 github远程库 到 本地

情景描述:现在的情景是,我们从零开发,那么最好的方式是先创建远程库,然后从远程库克隆

登陆GitHub,创建一个新的仓库,名字叫OA2 ;远程库OK,下一步是用命令git clone克隆一个本地库

Git clone git@github.com:leebingbin/oa2.git

3.3 Git交互模型-上

情景描述:现在的情景是,本地或者远程均有修改,如何同步共享,提交修改
    本地修改,同步给远程; 远程修改,同步到本地,即可。

3.4 Git交互模型-下

一般工作流程如下:

1 克隆 Git 资源作为工作目录。2 在克隆的资源上添加或修改文件。3 如果其他人修改了,你可以更新资源。4 在提交前查看修改。5 提交修改。6 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。

3.5 Fork

情景描述:现在的情景是,用叉子把别人的东西(copy no cut)叉到你碗里。
    其实,就是把别人的项目clone一份,但是owner变成自己,这样你就可以在遵守Open source license的前提下任意修改这个项目了。 相当于你在原项目的主分支上又建立了一个分支,你可以在该分支上任意修改,如果想将你的修改合并到原项目中时,可以pull request,这样原项目的作者就可以将你修改的东西合并到原项目的主分支上去,这样你就为开源项目贡献了代码,开源项目就会在大家共同的努力下不断壮大和完善。

3.6 解决Git push时重复输入用户名密码

C:\Users\admin目录下新建名字为_netrc的文件并编辑该文件写如下内容:


machine github.com
login 你的用户名
password 你的密码

3.7 Git 常用命令小总结

mkdir:         XX (创建一个空目录 XX指目录名)

pwd:          显示当前目录的路径。

git init          把当前的目录变成可以管理的git仓库,生成隐藏.git文件。

touch           xx文件或者新建文件

git add XX       把xx文件添加到暂存区去。

git commit –m “XX”  提交文件 –m 后面的是注释。

git status        查看仓库状态

git diff  XX      查看XX文件修改了那些内容

git log          查看历史记录

git reset  --hard HEAD^

cat XX         查看XX文件内容

git reflog       查看历史记录的版本号id

git checkout -- XX  把XX文件在工作区的修改全部撤销。

git rm XX          删除XX文件

git remote add origin https://github.com/zzyybs/testgit 关联一个远程库

git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库

git clone https://github.com/arjrzhouyang/testgit  从远程库中克隆

git checkout –b dev  创建dev分支 并切换到dev分支上

git branch  查看当前所有的分支

git checkout master 切换回master分支

git merge dev    在当前的分支上合并dev分支

git branch –d dev 删除dev分支

git branch name  创建分支

git remote 查看远程库的信息

git remote –v 查看远程库的详细信息

git push origin master  Git会把master分支推送到远程库对应的远程分支上

六、GitHub Pages搭建网站

1、 个人站点

  GitHub要求个人站点的仓库名称必须是 用户名.github.io, 例如 leebingbin.github.io

建立方法很简单,也是新建一个repository,然后填写你的个人站点名,例如 edisonchou.github.io。之后通过Git,你可以将你在本地开发的html网页同步到github,之后你就可以通过域名访问你的个人站点啦!

2、 项目站点

搭建后的访问域名为:https://用户名.github.io/仓库名

  (1)进入项目主页,点击Settings(2)在Settings页面,点击Launch automatic page generator来自动生成主题页面(3)新建站点基础信息设置(4)选择主题(5)生成网页

本文为博主原创文章,转载请注明出处!

https://my.oschina.net/u/3375733/blog/

转载于:https://my.oschina.net/u/3375733/blog/1589675

玩转 Git 与 GitHub相关推荐

  1. R,Git和Github(下)

    作者:Wenhu 博客:http://bioinfostar.com/ 本讲第一部分,介绍git的"足够你用"命令:本讲为第二部分,介绍github的主要用途,包括版本管理.分枝管 ...

  2. clone git 修改保存路径_Git和Github详细入门教程(别再跟我说你不会Git和Github)

    前言:成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成.你好,我是梦阳辰,快和我一起搞定Git和Github吧. 文章目录 01.Git概述 02.Git的本地仓库操作 Git的版本回退操作 ...

  3. Git和GitHub使用教程

    Git和GitHub使用教程 转载于 –https://www.jianshu.com/p/296d22275cdd MachinePlay 3 2018.12.20 00:18:30 字数 4,36 ...

  4. 【转】玩转git分支

    玩转git分支 https://www.cnblogs.com/sunshine-anycall/p/4342520.html 搞个代码的管理工具,居然不弄上分支啥的东西.这简直太low了.尤其是在使 ...

  5. Git及Github之入门到进阶

    一言以蔽之, 所谓Git,一款免费.开源的分布式版本控制系统:所谓Github,用Git做版本控制的代码托管平台.一张图来说明代码提交者.Git与Github之间的关系: 以下主要分以下几个阶段来对G ...

  6. 工具篇:Git与Github+GitLib常用操作(不定期持续更新)

    工具篇:Git与Github+GitLib常用操作(不定期持续更新) 前言: 写这个主要是打算自己用的,里边很多东西都是只要我自己看得懂,但是用了两个星期发现真是越用越简单,越用越好用,私以为得到了学 ...

  7. 玩转Git三剑客——01. 课程综述

    学习视频:玩转Git三剑客(苏玲 携程代码平台负责人)--极客时间 https://time.geekbang.org 1. 版本控制系统(Version Control System, VCS)的演 ...

  8. Git结合GitHub常用命令

    简介 GIT 学习手册简介 这是 Git 学习参考手册.目的是为学习与记忆 Git 使用中最重要.最普遍的命令提供快速翻阅. 这些命令以你可能需要的操作类型划分,并且将提供日常使用中需要的一些常用的命 ...

  9. 【连载】Git和GitHub的使用——有了远程仓库,妈妈再也不用担心我的硬盘了

    我是灼灼,一只初学Java的大一金渐层. 向往余秀华和狄兰·托马斯的疯狂,时常沉溺于将情感以诗相寄:追逐过王尔德.王小波的文字,后陷于毛姆和斯蒂芬·金不可自拔:热爱文学的浪潮,白日梦到底却总在现实里清 ...

  10. 对初学者友好的Git和Github使用指南之介绍和安装篇

    本文首发在个人博客:ladyzero.cool,欢迎前往阅读,阅读体验更佳. 原文地址:对初学者友好的Git和Github使用指南之介绍和安装篇 前言 本文将初步介绍Github和Git是什么,以及介 ...

最新文章

  1. 国内 Java 开发者必备的两个神器:Maven国内镜像和Spring国内脚手架
  2. docker 卸载镜像_Centos7 安装 Docker
  3. 华中科技大学 教学大纲 计算机,教学大纲-华中科技大学计算机学院
  4. sharepoint column中的图片链接不能显示为图片
  5. 减少mysql主从数据同步延迟问题的详解
  6. C# Windows服务
  7. php传递字符串给python,用PHP和Python生成短链接服务的字符串ID
  8. 退出android app时界面残留影响,【Android】App 或 Activity 销毁重建的状态恢复对回调带来的影响...
  9. 中国专利电子申请网CPC客户端的安装教程
  10. PING 192.168.5.13 (192.168.5.13 ) 56(84) data bytes后长时间不响应
  11. iOS 播放器静音设置方法
  12. RFC5869翻译 HMAC-based Extract-and-Expand Key Derivation Function (HKDF)
  13. JAVA生成椭圆形签章
  14. python机器学习——决策树(分类)及“泰坦尼克号沉船事故”数据集案例操作
  15. 【Redis学习05】优惠券秒杀及其优化
  16. 创建表空间oracle10g,Oracle10g创建表空间慢问题
  17. mysql的nosql功能_“NoSQL”的定义、作用和使用方法详细说明
  18. 机器人控制器编程课程-教案05-秘籍
  19. 钉钉小程序 实现Tab选项卡
  20. Xcode快捷键修改 复制一行、删除一行

热门文章

  1. Noodle.ai的Atlas机器学习(ML)框架第1部分:构建AI应用程序面临的挑战
  2. numpy常用的一种高效切片方式
  3. AttributeError: module ‘tensorflow‘ has no attribute ‘constant‘
  4. 计算机专业答辩网站怎么保证安全性,答辩(计算机专业答辩题目选集)
  5. 随手记---字符和词汇的区别
  6. go导出mysql中的excel表,MySQL导出数据,并转存到Excel表格中
  7. ZeroMQ接口函数之 :zmq_proxy – 开始ZMQ内置代理
  8. 极域电子教室卸载或安装软件后windows7无法启用触摸板、键盘
  9. 使用Visual Studio 2010打造C语言编译器
  10. 虚拟化实验室推进计算机网络专业实践教学的解决方案