版本控制

Git分布式版本控制工具笔记

℡╲_俬逩灬. 提交于 2020-02-28 21:45:23
01-Git概述(Git历史) Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众多的参与者。 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。 到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。 到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。 他们对新的系统制订了若干目标: 速度 简单的设计 对非线性开发模式的强力支持(允许成千上万个并行开发的分支) 完全分布式 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量) gitlab github 码云 02-Git概述(Git与SVN对比) SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而开发人员工作的时候,用的都是自己的电脑,所以首先要从中央服务器下载最新的版本,然后开发,开发完后,需要把自己开发的代码提交到中央服务器。 集中式版本控制工具缺点: 服务器单点故障 容错性差 [

github入门到上传本地项目

我们两清 提交于 2020-02-28 08:34:57
使用Github也有一年的时间了,之前一直都是使用的Github客户端,对提交,更新,克隆,合并,分支有一定的了解和实践。一直都想试试命令行的形式,但是感觉可能桌面版的方便就没有做。 可是Github客户端是在线安装,每次台式电脑都没有安装成功,导致平时不能提交代码管理,都是在笔记本上完成的。所以狠下心来玩玩Git命令模式。安装了Git过后出现了Git Bash 和GIT GUI;搞了一下午都没有提交成功。不知道哪里出了问题。晚上来试试了Git Bash 实验成功了。实验室的代码管理也在使用SVN,所以对比一下吧。 SVN先说集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。 集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟,这还不得把人给憋死啊。 那分布式版本控制系统与集中式版本控制系统有何不同呢?首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了

为什么Git比Subversion更好?

自古美人都是妖i 提交于 2020-02-26 17:14:18
我已经使用 Subversion 几年了,在使用 SourceSafe之后 ,我只是喜欢Subversion。 结合 TortoiseSVN ,我无法想象它会如何变得更好。 然而,越来越多的开发人员声称Subversion存在问题,我们应该转向新一代的分布式版本控制系统,例如 Git 。 Git如何改进Subversion? #1楼 一些答案已经提到了这些,但我想明确指出2点: 1)进行选择性提交的能力(例如, git add --patch )。 如果您的工作目录包含多个不属于同一逻辑更改的更改,Git可以非常轻松地进行仅包含部分更改的提交。 使用Subversion很难。 2)在不公开变更的情况下提交的能力。 在Subversion中,任何提交都是立即公开的,因此是不可撤销的。 这极大地限制了开发人员“提前提交,经常提交”的能力。 Git不仅仅是一个VCS; 它也是开发补丁的工具。 Subversion仅仅是一个VCS。 #2楼 其他答案在解释Git的核心功能方面做得很好(很棒)。 但也有很多 小 方法让Git表现得更好,并有助于让我的生活更加健全。 以下是一些小事: Git有一个'干净'命令。 SVN迫切需要这个命令,考虑它会在磁盘上转储额外文件的频率。 Git有'bisect'命令。 这真好。 SVN在每个文件夹中创建.svn目录(Git只创建 一个 .git目录)。

Git的学习笔记

余生颓废 提交于 2020-02-26 13:19:37
Git简介 Git是先进的分布式版本控制系统。 什么是版本控制系统(VCS) 自动记录每次文件的改动,并可以让他人协作编辑的系统软件。 版本控制 先来理解版本控制,所谓版本控制,意思是再文件的修改历程中保留修改的历史,让你可以方便的撤销之前对文件的修改操作。 最简化的版本控制模型就是编辑器中的**[撤销]**功能。当你发现前几天有个地方写错了,要回到原来的版本时,可以通过VCS选择撤回到原来的版本。或者对于某个功能有了不同的实现方法,你想将两种都保留下来,你可以在之前的基础上创建分支,在分支上修改,也不会影响另外的版本。 主动提交 多人合作同步需求 开发团队中的每个人向中央仓库主动提交自己的改动和同步别人的改动,并在需要时查看和操作历史版本,这就是版本控制系统。 安装 从 git官网 下载安装包,按默认选项安装即可。安装完成后再开始菜单里找到"Git"->"Git Bash",会蹦出一个类似命令行窗口的东西,说明安装成功! 安装完成后,还需要最后一步设置,在命令行输入: $ git config --global user.name "Your Name" $ git config --global user.email " email@example.com " 因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。 注意 git config

版本控制svn

戏子无情 提交于 2020-02-24 17:32:22
环境:ubuntu10.04LTS 1、在终端中直接输入 sudo apt-get install subversion,选择安装即可 2、查看版本命令 svnserve --version(更多命令直接键入svnserve --help可查看到) 3、查看svnserver是否已启动: netstat -ntlp,可看到svn对应的端口3690(如果没有看见,则证明服务未启动,可使用svnserve -d启动svn服务,还可以通过 svnserve -d -r /home/wwwwfw/mobile来指定启动目录) 4、建立项目:svnadmin create mobile(mobile为项目名称,位置在当前登录用户的主目录下,如我使用wwwwfw登录,则路径为/home/wwwwfw/mobile) 5、在mobile文件夹中可以看到conf文件夹,可针对conf文件夹中的authz、passwd、svnserve.conf进行设置,svnserve.conf主要设置整体的安全策略,passwd则设置用户名和密码,authz则是设置具体的用户有什么权限。 7、常用svn命令: checkout (co)命令: svn co url --username user --password password 根据提示可以输入yes来保存帐号和密码; update (up)命令:

Git光速入门

家住魔仙堡 提交于 2020-02-22 15:49:50
Git的使用和讲解 版本控制: 说到版本控制,脑海里总会浮现大学毕业是写毕业论文的场景,你电脑上的毕业论文一定出现过这番景象! 毕业论文_初稿.doc 毕业论文_修改1.doc 毕业论文_修改2.doc 毕业论文_修改3.doc 毕业论文_完整版1.doc 毕业论文_完整版2.doc 毕业论文_完整版3.doc 毕业论文_最终版1.doc 毕业论文_最终版2.doc 毕业论文_死也不改版.doc 以上就是使用最 原始 的方式进行版本控制,但是这种方式有显著缺点: 多个文件,保留所有版本时,需要为每个版本保存一个文件… 协同操作,多人协同操作时,需要将文件打包发来发去… 容易丢失,被删除意味着永远失去…(可以选择网盘) 注意:一般版本控制工具包含两部分 客户端(本地):本地编写内容以及版本记录 # .git 仓库 服务端(网盘):将内容和版本记录同时保存在远程(可有可无) # Github 码云 git是什么? git 是一种版本控制器,更直白的说,团队开发的时候,管理代码使用的软件 git的配置! 相当于你在项目中是谁, 人在江湖飘,哪能没名号 $ git config --global user.name # 你是谁 $ git config --global user.email # 联系方式 1 2 3 cd E:/ mkdir test git init

Git(一)Git的简介安装

喜你入骨 提交于 2020-02-21 04:35:42
一.git历史 同生活中的许多伟大事件一样, Git 诞生于一个极富纷争大举创新的年代。 Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上( 1991 - 2002 年间)。到 2002 年, Linux 系统已经发展了十年了,代码库之大让 Linus 很难继续通过手工方式管理了,于是整个项目组开始启用分布式版本控制系统 BitKeeper 来管理和维护代码。 到 2005 年的时候,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了免费使用 BitKeeper 的权力。这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds )不得不吸取教训,只有开发一套属于自己的版本控制系统才不至于重蹈覆辙。他们对新的系统订了若干目标: 速度 简单的设计 对非线性开发模式的强力支持(允许上千个并行开发的分支) 完全分布式 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量) 二.git 与 svn 的区别 1.svn SVN 是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器

在公司实习4个月收获总结

血红的双手。 提交于 2020-02-20 20:47:15
   不知不觉,我已经在公司实习了四个月,确实比较辛苦,但是能真真切切地感受到自己的成长,这就很舒服了呀嘻嘻~,下面这几个点主要是想分享给在校大学生,可能大家会觉得都是一些老生常谈的东西,但是确实是我实习四个月以来感受最深的东西。 一、版本控制器的重要性    在真正的商业项目中,版本控制是必不可少的,它主要为我们解决了以下几个问题:   (1)项目代码放在一个远程仓库(svn),公司每个开发人员都可以很快的从远程仓库下载代码进行开发。(突然想到大学期间用ftp传代码的日子...)   (2)新发布到线上的代码有bug怎么破?如果没有版本控制的话,那你就只能手动查找bug,修改之后重新发布,这段时间里,线上一直是运行着有bug的那一份代码。而如果有版本控制的话,可以立即版本回退,先发布上一个版本的代码到线上,等最新代码bug修复之后再重新发布。   (3)方便多人合作,有了版本控制,妈妈再也不怕我和同事的代码有冲突或者不同步啦,大家都共同维护着一份远程服务器代码。舒服。 二、设计模式   当我们代码量多了之后,如果没有一定的设计模式思想,比如说单例模式,策略模式,代理模式,迭代器模式,发布订阅模式,命令模式,组合模式,模板模式,享元模式,职责链模式,中介者模式,装饰者模式,状态模式,适配器模式(强行列举一堆设计模式哈哈哈),有了这些设计模式思想,我们就可以巧妙地组织我们的代码

更好地使用版本控制系统追踪.ipynb文件

六月ゝ 毕业季﹏ 提交于 2020-02-17 17:46:50
更好地使用版本控制系统追踪.ipynb文件 jupyter-notebook是一款优秀的用于交互式编程的编程环境,jupyter-notebook中文件默认采用.ipynb格式保存,其内容包括程序代码以及代码的输出结果.然而,当使用版本控制系统跟踪.ipynb文件时,用户通常不需要保存代码输出结果.此外,即使对代码文件未作任何更改,当重新运行.ipynb文件时,每一代码单元(cell)的编号可能会发生变化,而代码内容并未发生任何变化,此时对这类更改的提交会使提交历史变得混乱.如何处理这两个问题对版本控制系统跟踪.ipynb文件时带来的不变呢? 本文汇总的方法均来自stackoverflow上关于该问题的相关回答,感兴趣可点击查看 具体回答 . #####1.不保存文件中的输出内容即代码单元编号 手动清除:可在在每次保存文件前,手动删除其中的输出内容及代码单元编号,方法是点击 Cell -> All Output -> Clear ,然后保存文件. 自动清除:为了在每次出保存文件时,自动清除其中的输出内容及代码单元编号,可以配置jupyter-notebook 保存文件前的钩子代码. 首先输入 jupyter --config-dir 查看当前jupyte-notebook配置文件路径,然后在** jupyter_notebook_config.py**文件中添加如下代码: def

版本控制-git(二)

夙愿已清 提交于 2020-02-17 07:50:50
  上次文章给大家介绍了Git的一些基本知识( http://www.cnblogs.com/jerehedu/p/4582398.html ),并介绍了使用git init初始化化版本库,使用git add增加文件到版本库,使用git status查看版本库的状态信息,使用git commit最终提交文件到版本库。上文最后在提交时,会出现问题导致提交不成功,这是因为我们没有对git进行配置。 Git配置   Git最重要的配置信息就是用户名和电子邮件地址。每次Git提交时都会使用这两条信息,用来标识是谁提交了更新。    使用命令:git config $ git config –global user.name “jredu” $ git config –global user.email jredu@jredu.com   通过以上两条命令可以为git配置用户名和Email信息,注意以上的两条命令中有”—global”参数,这就意味着此次配置为全局配置,所有的git项目中都使用上述配置的用户名和电子邮件作为commit的用户标识。   如果某些项目不想使用全局的用户配置信息,我们可以单独为此项目进行配置,具体命令如下: $ git config user.name “jredu001” $ git config user.email jredu001@jredu.com