git有很多方法根据
使用git有很多方法。根据团队、组织的规模和工作方式的不同而不同——是分布式的,是基于sprint的,是公司的,还是开源项目的,
可以用vanilla-git,可以用GitHub,BitBucket,GitLab,Stash。在客户端,您可以使用命令行、ide集成或独立客户端,
工作流的主要区别在于组织分支的方式和合并分支的方式。你有分支吗?你是否从其他人的分支中分出一部分,这些分支正在进行中。你是推动还是留在本地?你是像SVN那样使用它(对于一个开发人员来说,在一个喜欢的项目上完全没问题),还是钻研更“神秘”的特性,比如--force-with-lease
.
这都是由每个团队决定的,但是我想把重点放在一个非常有争议的话题上——重定基础还是合并。虽然您可以获得大量讨论重定基础与合并的结果,包括官方的git文档,但这已经变成了一场哲学辩论,而不是实践辩论。
我最基础工作流。简而言之,默认情况下,重定基础似乎不支持将东西推给中央回购。如果你在重置基础前这样做,你总是需要用力推。而强制推行可能会让基于你的分支的人很难。你已经在问的两个问题:
- 如果东西没准备好,你为什么要推呢?“DVCS”中的“D”的要点不就是能够在本地提交,并且只在准备好的时候才推送吗?好吧,即使你不像SVN那样使用git,仍然有大量的用例将每个更改推送到你自己的功能分支远程——你可能在不同的机器上工作,一个同事可能想从你离开的地方开始工作(在去度假或生病之前),甚至硬盘故障和失窃。我认为基本上你必须在注销前推送,或者更频繁。“分布式”允许离线工作,甚至没有中央回购(如果它关闭了),但这不是git的主要优势。
- 为什么会有人基于您的工作进展分支?因为它发生了。有时候,任务并没有被严格地分割,而是有依赖关系的——你写了一个功能,然后你意识到它应该被你的队友使用,他们在同一个故事/功能中处理另一个任务。您还没有完成(例如,仍在抛光、测试),但他们不应该等待。即使是一个人,在等待代码评审意见的时候,也可能希望将他的下一个任务建立在前一个任务的基础上。该工具不应该阻止您经常这样做,即使它可能不是默认的工作流场景。
此外,你不应该期望每个团队成员都是git大师,为早餐重写历史。一组基本的命令(甚至是GUI)对于git工作流应该足够了,包括边缘情况。Git是复杂的,每个团队的任务是让它为他们工作,而不是反对他们。对于每个git命令或概念,可能都有一篇标题为“X被认为是有害的”的文章,对于一个没有经验的git用户来说,走过这个迷宫并不容易。正如莱纳斯·托沃兹曾经说过的:
Git已经接管了Linux将极客分为一无所知者和无所不知者的工作。我真的没指望有人会用它,因为它太难用了,但事实证明这就是它的巨大吸引力。
回到rebase vs merge——merge(与pull requests一起)对上述内容来说感觉很自然。你经常分支,你经常推。Rebase可以在上述用例中工作(我认为这是必要的)。你可以在每次重置基础后强制推进,你可以确保你的队友解决这个问题。但是这有什么意义呢?
实际的论点是,显示回购历史的图表很好,可读性很强。我对此没有异议,因为我从来没有遇到过需要更清晰、更好的图表的情况。无论图中有多少合并提交和丑陋,您仍然可以找到自己的方式(如果您需要的话)。此外,即使没有图表,也可以很容易地跟踪某个变化(例如git annotate)。
如果你真的确定你不能没有一个漂亮的图形,并且你的队友都是能在几分钟内解决一个强制推进的git大师,那么重新设置基础可能是好的。
但是我认为只有合并的工作流是更方便的工作方式,它考虑了更多真实世界的场景。
我意识到这是有争议的,我当然是git n00b(我甚至使用SourceTree而不是命令行来执行基本命令,咄)。但是我已经使用了合并和重定基础工作流,我发现合并工作流更简单(毕竟,强制推进作为常规工作流的一部分听起来很可疑?).
Git是VCS的scala它给了你很多做事情的方法,但是没有“正确的方法”。这不一定是坏事,因为确实有许多不同的场景可以使用git。对于我所拥有的项目(常规公司中的常规项目,具有常规的半自动发布和部署周期,进行常规的敏捷开发),我总是选择合并,带有拉式请求。
身份”是一组特征,允许对一个人进行独特的识别,并将其与他人区分开来。这听起来很简单,但事实证明它在现代、互联、全球化的世界中有很多含义。
今天的身份是由政府管理的。如果一个政府没有确认你确实是重要人物,你就什么都不是。各国的程序各不相同,但在你出生后,你会得到一份出生证明,你的名字(可能还有号码)会被输入一个数据库(集中或分散)。从那时起,你就有了一个“身份”,以后你可以用某种文件(身份证、护照、驾驶执照、社会保险号等)来证明它。)
并不是政府拥有你的身份,因为你远不止是你的身份证,而是你身份的某些属性被政府记录下来,然后它(通过一个文件和相关数据库)证明这确实是你。这些属性包括你的名字,你的地址,你的照片,身高,眼睛的颜色。可能是你的指纹和虹膜。但我们稍后会谈到这些生物特征。
为什么所有这些都很重要?除了生活在孤立的小部落中的人,他们可能甚至不需要名字来识别其他人,所谓的“文明世界”需要能够出于各种原因将一个人与另一个人区分开来。司机有能力开车吗,飞行员有能力驾驶飞机吗——他们可能会出示证书,但真的是他们被认证了吗(“有本事你来抓我”说明这可能有多严重)?谁拥有给定的财产?是这个自称是约翰·史密斯的,还是那个也自称是约翰·史密斯的?所有权证书可能会丢失,但在某个地方有一个保存信息的记录。我们只需要找出真正的约翰·史密斯。
旅行是另一种情况——尽管不是很理想,但当前世界有国家和边界,以及各种旅行限制。你必须证明你就是你,你有旅行的权利。如果你想进入美国,你必须证明你是美国人,或者你有签证。
还有许多其他的案例——打击犯罪、获得银行贷款、就业等等。
你可能会争辩说,你应该能够完全匿名,并仍然做到以上所有的事情,但不幸的是,在一个全球化的社会中,欺诈太有可能让我们与匿名的人打交道。我并不是说我们应该为我们所做的每一件事而被识别——一点也不是,它应该被限制在有实际意义的地方。但是有足够数量的这些用例。
离线身份是一回事,但还有“在线身份”的概念。一种在网上证明自己身份的方式。这通常是一个匿名注册过程,很少使用像脸书或Twitter这样的身份提供商(在这种情况下,你也不必透露你的真实身份),但当进行具有法律意义的行动时,或者当与政府沟通以获得一些关于你的数据或证书时,服务提供商必须能够证明这确实是你。接下来是“电子身份识别”过程,这是最近在欧盟法规中定义的,在大多数情况下,这意味着您拥有一个政府颁发的硬件令牌,只有您拥有并知道如何解锁。
但身份既然存在,就可以被窃取或伪造。有所谓的“身份盗窃”,它被用于多种方式,超出了本文的范围。但是人们确实会窃取他人的身份——在线的和离线的。
身份盗窃的一个例子是使用他人的身份文件。同样,一个人可以伪造一份身份文件,让它说任何他们想说的话。这可能会给不知情的公民带来可怕的后果。所以政府和专家们正在努力解决这个问题。让我们看一下两个不同的用例。
通过制造更加复杂的文件来解决文件伪造问题,这些文件具有各种安全特征、不可见组件、激光雕刻元素、使用特定的激光角度等等。当然,这是不完美的,不仅因为它是“通过模糊获得安全”(谁保证你的政府不会泄露制作文件的“秘方”,或者更糟——向伪造者提供制作文件所需的原材料),还因为伪造的文件仍然可以通过检查,因为人类在检查文件时并不完美。换句话说,如果检查文件的人知道要找什么,那么伪造者肯定也知道。
文档盗窃(包括文档复制)通过比较图片来解决。仅此而已。如果你和别人长得很像,并拿到了他的身份证件,你就可以放心地长时间冒充他。
这些解决方案似乎都不够好。因此,电子文档的出现拯救了我们。护照是某种程度上通用的身份证件,现在大部分护照都是eMRTD(电子机器可读旅行证件)。撇开它们的问题不谈,基本的想法是它们存储了一些信息,这些信息a)保证文档是由可信的权威机构发布的,b)它属于持有它的人。
第一部分通过公钥基础设施来保证,文档的内容由发布机构进行数字签名。因此,没有人可以创建自己的护照或身份证,因为他没有颁发机构的私钥(私钥不能被提取,因为存储私钥的HSM不允许这样做)。
第二部分更棘手。它目前通过在芯片上存储您的面部图像和指纹,然后将持有人的图像和指纹与存储的图像和指纹进行比较来解决(记住,内容是由数字签名认证的,这实际上暂时是防弹的)。面部图像部分是有缺陷的,目前几乎没有人检查指纹部分,但这种选择是存在的,而且“随着恐怖主义的出现”,这种选择越来越受欢迎。
所以从有点直觉的身份概念开始,我们已经到了政府建立指纹数据库的地步。然后是虹膜数据和DNA(比如在科威特)。
虽然上面的一切听起来很有逻辑,但最后的结果却有些吓人。人们的生物特征信息存储在数据库中,有被泄露的潜在风险,有被政府滥用的可能,这听起来是反乌托邦的。当我们不再是我们身份的拥有者时,其他人收集了我们的属性,这些属性在我们的一生中都不会改变,并将它们储存起来以备将来使用。无论什么用途。有人不必为了识别而存储它们,因为有技术允许将数据存储在内部进行比较的卡上,而不会泄露存储的数据。但那个选项似乎被忽略了,强化了反乌托邦的感觉。
最近我一直在思考如何解决所有这些问题。如何确保身份仍然发挥作用,但又不损害隐私。在我有了一些想法两个小时后,我和一个在身份识别技术方面比我更有经验的人交谈,结果发现他也有非常相似的想法。
在这里,技术开始发挥作用。我们是我们不变特征的组合——指纹、虹膜、DNA。你甚至可以根据这些属性来区分同卵双胞胎。你还有其他更易变的属性——身高、体重、姓名、地址,甚至最喜欢的颜色。
https://weibo.com/ttarticle/p/show?id=2309404813028322312205
这些都代表了你的身份。它可以通过把本质的、不可改变的部分变成一把钥匙来管理。匿名密钥,使用单向函数导出,即所谓的“哈希”。在你散列你的指纹、虹膜和DNA之后,你会得到一个长值,例如FD 4 E1 c 67 b 2d 28 fced 849 ee 1 bb 76 e 7391 b 93 EB 12,它代)
这将是你,你将能够证明这一点,因为每当有人需要你证明你的身份时,你将获得你的指纹,虹膜和DNA扫描,应用单向函数的结果将再次是2 FD 4 E1 c 67 b 28 fced 849 ee 1 bb 76 e 7391 b 93 EB 12。
此外,您还可以在标识中添加一些“秘密”单词。所以你的身份不仅是你是什么(不能改变),也是你知道什么。这意味着没有人能想出你的身份,除非你告诉他们你的秘密(听起来有点像“地海巫师”)。
当然,很少会要求完全识别。如果你想买酒,只有你的年龄重要;如果你想得到一份有线网络的合同,只有你的名字和地址是重要的,等等。为此,子身份可以存在——它们属于“父”身份,但是验证者不需要如此高的保证级别来确定它确实是你。子身份可以是“仅仅是指纹”,或者甚至是……一个很好的旧身份文件。每个子身份可以证明一组属性,由权威机构认证,不一定是政府权威机构。
https://weibo.com/a/hot/7627289748117505_1.html
你的次身份,一组属性,可以写在一个文件上——你随身携带的东西可以证明,这确实是你。它将保存您的“哈希”,以便任何想要进行全面检查的人都可以这样做。另一个选择是植入。恐怖和反乌托邦,我知道。它似乎与身份证有一点不同——它是你随身携带的东西,而且你必须随身携带。只要你控制了是否允许别人读取你的植入体,它就变成了稍微高级一点的身份证或者驾照。
即使我们有一个身份字符串,相关数据——拥有的财产、驾驶能力、旅行签证、就业、银行贷款——也将存储在数据库中,其中身份字符串是查找关键字。这些数据库现在归政府所有,但是也可以很好地分布,例如使用区块链。没有人可以声称他是你,因为他不能根据他的生物特征产生相同的身份字符串。区块链网络上的节点可以是植入物,它保存着你的加密信息,只有你能决定何时解密。这将形成一个分布式人类数据库,人们可以完全控制自己的数据。
但这可行吗?系统的复杂性,尤其是管理一个人的身份,可能太高了。我们可以创造一个庞大复杂的系统,包括植入物和生物识别技术,来解决一个实际上很小的问题。这是我们在着手做这件事之前应该问的第一个问题。不是政府是否应该管理身份,不是我们是否应该被识别,而是我们是否需要在当前的体系中进行戏剧性的转变。或者,具有卡上匹配(非集中存储)指纹和电子签名内容的电子身份证解决了99%的问题?
虽然我觉得设想一个技术乌托邦很吸引人,其中包含大量的加密技术,并且通过技术手段保证隐私,但我不确定我们是否需要它。
git有很多方法根据相关推荐
- 常见的 Git 错误解决方法
常见的 Git 错误解决方法 从索引中取消暂存文件/目录 编辑上次提交的邮件 忘记了上次提交中的一些更改 放弃本地更改 已将个人数据提交到本地存储库 password files 将最新的提交替换为新 ...
- idea右键项目没有git 【解决方法】
右键项目,没有git选项 解决方法: 进入settings,然后搜索version,按下图点击即可: over,解决:
- idea messages中文乱码_2019.2版本IDEA控制台中文乱码尝试了很多方法都不行
IDEA2019.2 控制台中文乱码,尝试了很多方法没解决,试了如下方法终于解决idea控制台中文乱码问题. 1.HELP->Edit Custom VM OPtions文件中加上下马这句话 - ...
- iOS开发:GitHub上传代码错误提示fatal: Authentication failed for 'https://gitee.com/XXX/XXX.git/‘的解决方法
上传代码到Git上面,有时候会遇到各种情况,有些时候是因为合并代码冲突,有些时候是因为修改了Git的登录密码需要重新认证.那么这里就来讲解错误提示fatal: Authentication faile ...
- windows 10 git bash 提速方法
具体设置方法 方式1 You can significantly speed up Git on Windows by running three commands to set some confi ...
- git stash、git branch使用方法
git stash.git branch使用方法 目录 git stash.git branch使用方法 一.git stash 二.git branch 1. 常用命令 2.使用场景 一.git s ...
- web开发-myeclipse下载git服务器代码方法-学习笔记五
myeclipse下载git服务器代码方法: 1.新建git服务器账户. 2.安装myeclipse软件,安装破解工具和相关插件. 3.按照步骤下载代码和修改之后进行提交代码. 相关文档链接: 链接1 ...
- 要绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上。Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进行设置,主要方法(没有全部列
要绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上.Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进行设置,主要方法(没有全部列 ...
- verycd没有的资源有很多方法下载
[下有对策]verycd没有的资源有很多方法下载,专门用于最近的河蟹 热44nba175 2011-05-18 03:39 由于国内专门从事假冒电驴官方欺骗中国人的verycd公司出品的冒牌官方电驴& ...
最新文章
- Vue异步组件Demo
- 关于CRTP(Curiously Recurring Template Prattern)的使用
- 洛谷P2746 [USACO5.3]校园网Network of Schools
- OpenGL Cube Map立方体贴图的实例
- 肝!教你用Python抓取某天下楼盘数据
- ApiDemos示例学习(1)——ApiDemos示例的导入
- python列表的应用与实例_python列表生成式应用案例
- 服务器系统如何安装文件损坏,安装系统提示winload.exe故障,文件丢失损坏
- 单片机c语言论文,基于51单片机的C语言程序设计论文.doc
- IP地址详解、无分类编址和路由寻址(计算机网络二)
- IEEE 会议论文的参考文献
- 怎么用计算机录制mp3的音频,电脑怎么录音,电脑录制音频的方法
- matlab车牌识别错误,matlab车牌识别调入切割函数后就不出图了?也没有显示错误...
- 首旅如家:夜间赏樱、采茶旅拍和登高许愿成为2021打开春天的新方式
- 我们能从后验分布中学到什么?贝叶斯后验的频率解释
- Ubuntu官方下载地址
- FX5U编程常用特殊软元
- 能在html中打开ppt吗,怎样在PPT中直接打开网页
- VolumeUI音量调节对话框
- Serverless开发实战——FASS
热门文章
- 港联证券|上影线长说明什么?股票出现上影线跑吗?
- 来一套自动化测试面试题(答案版)
- win10 服务器文件夹权限,Win10无权限也能访问特殊文件夹的解决方法
- 信息安全界的“齐天大圣” -kali的前世今生
- java字符动画badapple_C语言——bad apple字符动画
- camera country code, sale code
- u3d011 秘密行动_学习记录
- 【简记】在Ubuntu 16.04 LTS上执行命令“dmesg -l err”返回一系列错误
- 如何使用win自带工具(mstsc)远程控制不在同一局域网内的电脑以及端口映射介绍
- 滨州学院旷考计算机二级,滨州学院学生成绩管理办法(试行)