一、Github+Pycharm基础
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基础的更多相关文章
- GitHub & Git 基础 (YouTube中文翻译版)
GitHub & Git 基础系列视频 播放列表 由于视频资源在YouTube上,可能需要FQ:https://code.google.com/p/chromeplus/ 视频包括以下内容 1 ...
- pycharm基础使用入门
pycharm基础使用入门 输出 print函数 print('hello world') 右键选择run或者右上角的三角形运行,可以运行出结果 "E:\all sorts of learn ...
- 最简单的Github入门基础
起因是小伙伴分享给我github上的一个FQ工具,让我看实现过程.于是,就由关键字"github"搜索开始. 一言之,是个开源的SVN.和CVS.SVN类似,但是,里面有千千万万程 ...
- 适合小白/外行的git与github最基础最浅显教程
首先声明,这是适合小白/外行/初学者/学生看的最基础最简单的git与github教程,已经能使用svn,git等工具的朋友请不要看这篇文章来浪费时间了. 想进一步学习git的,推荐去廖雪峰博客学习. ...
- pycharm 基础教程
pycharm 教程(一)安装和首次使用 PyCharm 是我用过的python编辑器中,比较顺手的一个.而且可以跨平台,在macos和windows下面都可以用,这点比较好. 首先预览一下 PyCh ...
- 一篇文章介绍GItHub的基础使用
最近复习了一下Git的使用,简单总结了一些.以供以后查阅和同行参考. 一,安装 首先是Linux下: 打开shell ,输入 sudo apt-get install git-core 之后回车输入密 ...
- GItHub Git 基础教程 常用命令 命令
最近复习了一下Git的使用,简单总结了一些.以供以后查阅和大家参考. 一,安装 首先是Linux下: 打开shell ,输入 sudo apt-get install git-core 之后回车输入密 ...
- Git和GitHub入门基础
-----------------------------------------//cd F:/learngit // 创建仓库git init // 在当前目录下创建空的git仓库------- ...
- (一)github之基础概念篇
1.github: 一项为开发者提供git仓库的托管服务, 开发者间共享代码的场所.github上公开的软件源代码全都由git进行管理. 2.git: 开发者将源代码存入名为git仓库的资料库中,而g ...
随机推荐
- maven 常用命名
maven项目,在命令行中操作,非常简洁.高效,现将maven项目常用命令行总结如下: maven命令行命令总结 序号 整理 统计 命令 作用 1 基本 5 mvn -v 查看maven版本 2 mv ...
- WinForm的Socket实现简单的聊天室 IM
1:什么是Socket 所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象. 一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制. 从 ...
- 精通模块化JavaScript
近日读了一本名为<精通模块化JavaScript>的书,并记录了其中的精髓. 一.模块化思维 精通模块化开发并不是指要遵循一套定义明确的规则,而是指能够将自己置身于使用者的角度,为可能即将 ...
- python-实现输出乘法口诀表
list1 = [1,2,3,4,5,6,7,8,9] 2 def number(num): 3 for i in list1[:num]: 4 result = 1 * i 5 print(&quo ...
- 07-Spring ConfigurationClassPostProcessor
ConfigurationClassPostProcessor 功能 此类是一个后置处理器类,主要功能是参与 BeanFactory 中 BeanDefinition 的操作和 BeanDefinit ...
- 数据仓库系列之ETL中常见的增量抽取方式
为了实现数据仓库中的更加高效的数据处理,今天和小黎子一起来探讨ETL系统中的增量抽取方式.增量抽取是数据仓库ETL(数据的抽取(extraction).转换(transformation)和装载(lo ...
- python基础(十二):if分支表达式
有时候,我们需要依照某种条件,再决定要不要做某个操作.在Python中,if语句能够帮助我们检查程序的当前状态,告诉计算机接下来该做什么. 条件表达式 每个if后面都跟着一个True或False的表达 ...
- ES9的新特性:异步遍历Async iteration
ES9的新特性:异步遍历Async iteration 目录 简介 异步遍历 异步iterable的遍历 异步iterable的生成 异步方法和异步生成器 简介 在ES6中,引入了同步iteratio ...
- Web协议详解与抓包实战,高效解决网络难题
无论你是前后端工程师,还是运维测试,如果想面试更高的职位,或者要站在更高的角度去理解技术业务架构,并能在问题出现时快速.高效地解决问题,Web 协议一定是你绕不过去的一道坎. 旨在帮助你对各种常用 W ...
- .NET Core3.1 Dotnetty实战系列视频
一.概要 由于在.net的环境当中对dotnetty相关资料相对较少,所以这里主要分享一个dotnetty使用教程希望能帮助到正在使用这套框架的开发者们.虽然这套框架已微软官方已经不在维护,但是这套框 ...