使用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有很多方法根据相关推荐

  1. 常见的 Git 错误解决方法

    常见的 Git 错误解决方法 从索引中取消暂存文件/目录 编辑上次提交的邮件 忘记了上次提交中的一些更改 放弃本地更改 已将个人数据提交到本地存储库 password files 将最新的提交替换为新 ...

  2. idea右键项目没有git 【解决方法】

    右键项目,没有git选项 解决方法: 进入settings,然后搜索version,按下图点击即可: over,解决:

  3. idea messages中文乱码_2019.2版本IDEA控制台中文乱码尝试了很多方法都不行

    IDEA2019.2 控制台中文乱码,尝试了很多方法没解决,试了如下方法终于解决idea控制台中文乱码问题. 1.HELP->Edit Custom VM OPtions文件中加上下马这句话 - ...

  4. iOS开发:GitHub上传代码错误提示fatal: Authentication failed for 'https://gitee.com/XXX/XXX.git/‘的解决方法

    上传代码到Git上面,有时候会遇到各种情况,有些时候是因为合并代码冲突,有些时候是因为修改了Git的登录密码需要重新认证.那么这里就来讲解错误提示fatal: Authentication faile ...

  5. windows 10 git bash 提速方法

    具体设置方法 方式1 You can significantly speed up Git on Windows by running three commands to set some confi ...

  6. git stash、git branch使用方法

    git stash.git branch使用方法 目录 git stash.git branch使用方法 一.git stash 二.git branch 1. 常用命令 2.使用场景 一.git s ...

  7. web开发-myeclipse下载git服务器代码方法-学习笔记五

    myeclipse下载git服务器代码方法: 1.新建git服务器账户. 2.安装myeclipse软件,安装破解工具和相关插件. 3.按照步骤下载代码和修改之后进行提交代码. 相关文档链接: 链接1 ...

  8. 要绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上。Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进行设置,主要方法(没有全部列

    要绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上.Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进行设置,主要方法(没有全部列 ...

  9. verycd没有的资源有很多方法下载

    [下有对策]verycd没有的资源有很多方法下载,专门用于最近的河蟹 热44nba175 2011-05-18 03:39 由于国内专门从事假冒电驴官方欺骗中国人的verycd公司出品的冒牌官方电驴& ...

最新文章

  1. Vue异步组件Demo
  2. 关于CRTP(Curiously Recurring Template Prattern)的使用
  3. 洛谷P2746 [USACO5.3]校园网Network of Schools
  4. OpenGL Cube Map立方体贴图的实例
  5. 肝!教你用Python抓取某天下楼盘数据
  6. ApiDemos示例学习(1)——ApiDemos示例的导入
  7. python列表的应用与实例_python列表生成式应用案例
  8. 服务器系统如何安装文件损坏,安装系统提示winload.exe故障,文件丢失损坏
  9. 单片机c语言论文,基于51单片机的C语言程序设计论文.doc
  10. IP地址详解、无分类编址和路由寻址(计算机网络二)
  11. IEEE 会议论文的参考文献
  12. 怎么用计算机录制mp3的音频,电脑怎么录音,电脑录制音频的方法
  13. matlab车牌识别错误,matlab车牌识别调入切割函数后就不出图了?也没有显示错误...
  14. 首旅如家:夜间赏樱、采茶旅拍和登高许愿成为2021打开春天的新方式
  15. 我们能从后验分布中学到什么?贝叶斯后验的频率解释
  16. Ubuntu官方下载地址
  17. FX5U编程常用特殊软元
  18. 能在html中打开ppt吗,怎样在PPT中直接打开网页
  19. VolumeUI音量调节对话框
  20. Serverless开发实战——FASS

热门文章

  1. 港联证券|上影线长说明什么?股票出现上影线跑吗?
  2. 来一套自动化测试面试题(答案版)
  3. win10 服务器文件夹权限,Win10无权限也能访问特殊文件夹的解决方法
  4. 信息安全界的“齐天大圣” -kali的前世今生
  5. java字符动画badapple_C语言——bad apple字符动画
  6. camera country code, sale code
  7. u3d011 秘密行动_学习记录
  8. 【简记】在Ubuntu 16.04 LTS上执行命令“dmesg -l err”返回一系列错误
  9. 如何使用win自带工具(mstsc)远程控制不在同一局域网内的电脑以及端口映射介绍
  10. 滨州学院旷考计算机二级,滨州学院学生成绩管理办法(试行)