GitHub为版本管理工具

常用的版本管理工具:本地化版本管理系统、集中式版本管理系统SVN、分布式版本管理系统

一、安装git(自行百度)

二、文件操作与分支管理基础

1、版本控制系统分类

集中化版本控制系统:

centralized version control systems 简称cvcs,与本地笨笨控制系统不同,集中化版本控制系统能让在不同系统上的开发者进行协调工作,这类系统注入CVS、Subversion以及Perforce等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连接到这台服务器,取出最新的文件或者提交更新,这已经成文版本控制系统的标准做法,每个人都可以在一定程度上看到项目中的其他人正在做什么,而管理员也可以轻松掌握每个开发者的权限,并且管理个CVCS要远比在各个客户端上维护本地数据库来的轻松容易。集中化版本控制系统显而易见的缺点是中央服务器的单店故障,如果宕机一个小时,那么在这一个小时内,谁都无法提交更新,也就无法协同工作,要是中央服务器的磁盘发成故障,碰巧没做备份,或者备份不够及时,就会有丢失数据的风险

分布式版本控制系统:

Distrubuted Version Control System,DVCS,在这类系统中,像Git、Mercurial、Bazaar以及Darcs等,客户端并不只是提交最新版本的文件快照,而是把代码仓库完整的镜像下来,包括完整的历史记录,这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库回复,因为每一次的克隆操作,实际这类系统都是一次对代码仓库的完整备份,更进一步来讲,许多这类系统都可以指定和若干个不同的远端代码仓库进行交互,借此,可以在同一个项目中,分别和不同工作小组的人相互协作,分布式版本控制系统单缺点是代码容量占用比较大

git一般工作流程 1、在工作目录中添加、修改文件;2、将需要进行版本管理的文件放入暂存区域;3、将暂存区域的文件提交到git仓库;

git管理的文件有三种该娘:已修改、已暂存、已提交

三、git操作

1、创建git本地仓库,提交文件至暂存区和本地仓库

1、进入某个路径下新建一个文件目录,进入这个文件夹中,用git init创建一个init文件,产看新建的隐藏文件,新建的文件夹就是一个本地仓库

新建一个test01.py文件,把这个文件添加到暂存区

添加至暂存区之前查看状态 git status

提交至暂存区 git add,添加之后在git status提示没有需要提交的文件

接下来需要添加到本地仓库git commit -m "提交备注",提交后再git status查看提交的状态,第一次使用默认创建的master分支,由一个head指针指向版本,再次查看状态提示没有需要修改的文件,已经是最新的文件了

修改文件后git status后会提示有东西修改,修改后还是先提交文件值暂存区后再提交至本地仓库即可

git log ,查看修改的历史记录

2、版本库回退版本才做

1、首先查看版本记录 git reflog

2、回退至版本对应的版本库,git reset --hard 105ff4a

3、撤销修改操作 checkout,增加内容后撤销

1、首先更改文件,然后运行命令git checkout -- 文件名

4、删除操作 git rm 文件名

新建python.txt文件后再删除该文件,删除后查看状态,这里的删除是指的工作区删除但是暂存区还是存在,需要git add -A才能彻底删除, 需要git commit -m

5、单个版本重复提交

版本刚一提交到仓库,发现注释或其他弄错,需要这个版本再次提交,这也称之为最后一次提交操作,一个版本重复提交,版本号不会变,git commit --amend -m "备注"

四、分支管理

在之前的操作中,每次git提交,都会把版本串成一条时间线,这条时间线就是一个分支,截止到目前,只有一条时间线,这个分支叫主分支,即master分支,HEAD哈希值指向的是当前提交分支的主干节点,在实际的开发工作中,开发人员都分配不同的开发任务,每个开发任务由于功能、难度不一致,如果写完部分代码就进行提交到master分支,会导致代码异常、代码覆盖的情况,只对这种情况,git可以使用提交分支管理进行解决,开发人员创建一个属于自己的分支,其他开发人员看不到,还继续在原来的分支上正常工作,此时开发人员想提交就提交,指到开发完毕后,再一次性合并到原来的分支上,这样既安全,又不影响其他开发人员工作,所谓的分支管理,其实就是利用git对开发人员的分支管理,包含分支创建、分支合并、分支删除等操作

1、git branch 查看当前分支状况,创建一个分支  git branch dev

2、虽然有了两个分支,但是指针还是在master分支上,需要切换至dev分支,git checkout dev ,这是新建一个分支然后将head切换至新增的分支上,分为两步;同时也可以在创建分支的就切换至新建的分支

在创建分支的就切换至新建的分支 git checkout -b 分支名

3、在新建的分支上对文件进行修改并提交

4、合并分支,将所有分支合并到master分支,需要先切换至master分支后再行合并,先git branch mster 后再git merge dev

5、删除分支git branch -d 分支名,不能在指针指向该分支时删除该分支,可以在其他分支上删除分支,不一定非要在主分支上删除分株

一、Github+Pycharm基础的更多相关文章

  1. GitHub & Git 基础 (YouTube中文翻译版)

    GitHub & Git 基础系列视频 播放列表 由于视频资源在YouTube上,可能需要FQ:https://code.google.com/p/chromeplus/ 视频包括以下内容 1 ...

  2. pycharm基础使用入门

    pycharm基础使用入门 输出 print函数 print('hello world') 右键选择run或者右上角的三角形运行,可以运行出结果 "E:\all sorts of learn ...

  3. 最简单的Github入门基础

    起因是小伙伴分享给我github上的一个FQ工具,让我看实现过程.于是,就由关键字"github"搜索开始. 一言之,是个开源的SVN.和CVS.SVN类似,但是,里面有千千万万程 ...

  4. 适合小白/外行的git与github最基础最浅显教程

    首先声明,这是适合小白/外行/初学者/学生看的最基础最简单的git与github教程,已经能使用svn,git等工具的朋友请不要看这篇文章来浪费时间了. 想进一步学习git的,推荐去廖雪峰博客学习. ...

  5. pycharm 基础教程

    pycharm 教程(一)安装和首次使用 PyCharm 是我用过的python编辑器中,比较顺手的一个.而且可以跨平台,在macos和windows下面都可以用,这点比较好. 首先预览一下 PyCh ...

  6. 一篇文章介绍GItHub的基础使用

    最近复习了一下Git的使用,简单总结了一些.以供以后查阅和同行参考. 一,安装 首先是Linux下: 打开shell ,输入 sudo apt-get install git-core 之后回车输入密 ...

  7. GItHub Git 基础教程 常用命令 命令

    最近复习了一下Git的使用,简单总结了一些.以供以后查阅和大家参考. 一,安装 首先是Linux下: 打开shell ,输入 sudo apt-get install git-core 之后回车输入密 ...

  8. Git和GitHub入门基础

    -----------------------------------------//cd F:/learngit // 创建仓库git init  // 在当前目录下创建空的git仓库------- ...

  9. (一)github之基础概念篇

    1.github: 一项为开发者提供git仓库的托管服务, 开发者间共享代码的场所.github上公开的软件源代码全都由git进行管理. 2.git: 开发者将源代码存入名为git仓库的资料库中,而g ...

随机推荐

  1. P3160 [CQOI2012]局部极小值 题解(状压DP+容斥)

    题目链接 P3160 [CQOI2012]局部极小值 双倍经验,双倍快乐 解题思路 存下来每个坑(极小值点)的位置,以这个序号进行状态压缩. 显然,\(4*7\)的数据范围让极小值点在8个以内(以下示 ...

  2. 快速了解C# 8.0中“可空引用类型(Nullable reference type)”语言特性

    Visual C# 8.0中引入了可空引用类型(Nullable reference type),通过编译器提供的强大功能,帮助开发人员尽可能地规避由空引用带来的代码问题.这里我大致介绍一下可空引用类 ...

  3. Android中的TaskStack及启动模式

    目录 前言 如何观察ActivityStack? 几个问题 关键类介绍 ActivityStack的创建与种类 不同启动模式 launchMode Standard SingleTop SingleT ...

  4. P1049_装箱问题(JAVA语言)

    思路:动态规划的背包问题.使箱子剩余空间最小,也就是使箱内装的物品体积达到最大,我们可将物品的体积视为价值,然后按照01背包问题求解即可. //直接上模板 题目描述 有一个箱子容量为VV(正整数,0 ...

  5. C# - 实现类型的比较

    IComparable<T> .NET 里,IComparable<T>是用来作比较的最常用接口. 如果某个类型的实例需要与该类型的其它实例进行比较或者排序的话,那么该类型就可 ...

  6. Android Stuio让我濒临崩溃的bug之cause: unable to find valid certification path to requested target

    •问题描述 像往常一样,打开 $android studio$ 开启愉快的开发之旅: 写着写着,右下角弹出一个对话,说 $android studio$ 有新版本可更新: 有新版本为何不用,果断点击 ...

  7. Activiti工作流学习笔记(四)——工作流引擎中责任链模式的建立与应用原理

    原创/朱季谦 本文需要一定责任链模式的基础,主要分成三部分讲解: 一.简单理解责任链模式概念 二.Activiti工作流里责任链模式的建立 三.Activiti工作流里责任链模式的应用 一.简单理解责 ...

  8. 翻译:《实用的Python编程》07_04_Function_decorators

    目录 | 上一节 (7.3 返回函数) | 下一节 (7.5 装饰方法) 7.4 函数装饰器 本节介绍装饰器(decorator).因为这是一个高级主题,所以我们只做简单介绍. 译注:根据译者个人的猜 ...

  9. python基础(十二):if分支表达式

    有时候,我们需要依照某种条件,再决定要不要做某个操作.在Python中,if语句能够帮助我们检查程序的当前状态,告诉计算机接下来该做什么. 条件表达式 每个if后面都跟着一个True或False的表达 ...

  10. 201871030125-王芬 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    实验三 软件工程结对项目 项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 https://www.cnblogs ...