关于git:Github仓库master分支到main分支迁移指南

1 概述2020年10月1日后,Github会将所有新建的仓库的默认分支从master批改为main,这就导致了一些旧仓库主分支是master,新仓库主分支是main的问题,这在有时候会带来一些麻烦,因而这里提供一种计划将旧仓库的master分支迁徙到main分支。 2 具体步骤四步: 克隆原仓库创立并推送main分支批改默认分支删除master分支2.1 克隆首先克隆一份原仓库到本地进行操作: git clone xxxxxxx.git2.2 创立并推送main创立并切换到main: git checkout -b main推送main: git push origin main2.3 批改默认分支这一步须要到Github中进行操作,进入仓库的设置,点击分支选项: 将其中的默认分支批改为main,并点击左边的Update,点击Update后会有提醒有可能会影响PR和克隆: 确认批改后能够看到默认分支曾经批改为了main: 2.4 删除master删除本地master: git branch -d master删除近程master: git push origin :master这样就算胜利迁徙到main分支了。 2.5 测试在仓库做一些批改后进行提交: git add -A git commit -m "test main branch"git push origin main能够看到Github上会有对应更新。

December 24, 2020 · 1 min · jiezi

关于git:git规范提交-eslint配合husky

1、装置eslint, husky标准代码,校验不通过不容许commit配置: package.json:{ "scripts": { "lint": "eslint src" }, "husky": { "hooks": { "pre-commit": "npm run lint" } }}留神,用taro初始化我的项目后,生成了.git-->hook默认文件夹(外面都是.sample后缀的示例文件),手动装置husky并不会笼罩这个文件夹,导致hook未失常增加,代码提交时没有触发hook钩子。 查看hook是否失常增加:装置husky时hooks会被增加到以后我的项目目录下的 .git > hooks 文件夹中。查看该目录下是否有相似 pre-commit 的git钩子脚本文件。没有的话能够尝试重新安装husky。如果曾经有了git钩子脚本文件在执行git的时候钩子还是没有执行,能够尝试删除该 hooks 文件夹,再重新安装husky。留神如果hooks中有提前设置好的其余钩子,请审慎删除hooks。 默认hook文件夹 删除hook目录,重新安装husky生成的hook文件夹 2、退出lint-stage 3、应用eslint-config-airbnb

December 23, 2020 · 1 min · jiezi

关于git:typoragiteepicgo设置图床

用typora的都遇到过一个问题,文件不能随便挪动,不然一些资源就加载不进去,typora当初反对了图床性能 1.装置node.jshttps://nodejs.org/en/download/ 2、装置picgohttps://github.com/Molunerfinn/PicGo/releases 3、装置gitee插件(搜寻gitee装置即可) tip搜不到怎么办(起因未知)? 手动装置,关上cmd进入C:Users你的用户名AppDataRoamingPicGo这个目录下 输出npm install picgo-plugin-gitee-uploader命令 ,而后重启picgo即可 4、创立一个仓库(能够参照图片) 5、获取token右上角拍板像抉择设置左侧栏有一个私人令牌 点击生成新令牌(默认提交就能够),记得保留,token只会显示一次 6、进行picGo的设置(依照如图设置) 下图为github的。应用cdn减速(https://cdn.jsdelivr.net/gh/【用户名】/【仓库名】) 7、上传图片测试 失败的话看这里大部分起因是因为网络端口设置问题,依照下列步骤顺次排查 首先查看你的互联网状态查看你的server开启了没有重启利用看报错日志或者更新下软件 对于代理模式picgo只反对简略代理模式,只能够写一个代理服务器地址,须要输出用户名明码的就不能用了

December 23, 2020 · 1 min · jiezi

关于git:git-进阶命令

1: 分之提交历史查看git for-each-ref --sort=committerdate refs/heads/ --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(color:red)%(objectname:short)%(color:reset) - %(contents:subject) - %(authorname) (%(color:green)%(committerdate:relative)%(color:reset))'依照git commit 提交顺序排列本地分之。能够用此命令将一些很久没有用到的分之delete掉。 2:扁平化mergegit merge --squash其实还是挺有用的,在github,gitee等代码托管网站中对于pr的合并我个别都会应用扁平化合并进行合并

December 22, 2020 · 1 min · jiezi

关于git:GIT实操手册-Git-Tag是时间的里程碑

目录为什么有必要应用Git Tag?git tag的基本操作git tag的分类 轻量级标签创立带有阐明的标签git tag的作用那么问题来了?为什么有必要应用Git Tag?每一个提交都有一个commitID,然而每次记录commitID都很简单,应用git tag能够在一些重要的版本和批改中退出一个标识,能够很疾速的找到咱们须要的版本。 git tag和git commitID的作用,就和IP地址和域名的作用是一样的,一个 git tag 对应一个commitID,命名的时候不能反复。 git tag的基本操作查看所有标签和指定标签# 所有标签git taggit tag -l# 指定标签git tag -l <tagName>在以后分支的最新HEAD上打新标签git tag <name>遗记打标签时不要紧,能够给对应的某个commitID打标签git tag <name> <commitID> 删除本地标签git tag -d <tagname> git tag的分类轻量级标签git tag <tagName>创立带有阐明的标签git tag -a <tagname> -m "message"# 用-a指定标签名,阐明要创立带阐明的tag,-m指定阐明文字如果只是输出的git tag -a <tagname> 会跳进去输入框让被动进行输出阐明文字。 这两个区别,就在于咱们应用git show的时候会不会将阐明显示进去。 git tag的作用作用实际1.能够疾速进行分支切换2.能够疾速进行版本回滚其余所有能够用commitID做的事件都是用tag代替实现| -那么问题来了?如果分支名称和tag名称一样的时候,会产生什么事件呢? 能够查查,应该是有抵触的。

December 19, 2020 · 1 min · jiezi

关于git:Gerrit-GitLab-Hooks

第一次在公司见到 Gerrit、一面懵逼。什么xx玩意..... Gerrit,一种凋谢源代码的代码审查软件,应用网页界面。利用网页浏览器,同一个团队的软件开发者,能够互相审阅彼此批改后的代码,决定是否可能提交,回退或是持续批改。它应用版本控制系统Git作为底层。它分支自Rietveld,作者为Google公司的Shawn Pearce,原先是为了治理Android我的项目而产生。[2]这个软件的名称,来自于荷兰设计师赫里特·里特费尔德(Gerrit Rietveld)。 -----来自 wiki 而后公司同时还应用到了 GitLab、我懵逼了。失常来说、GitLab 曾经能满足大部分日常到应用了、到底为啥还要应用 Gerrit。 它分支自Rietveld,作者为Google公司的Shawn Pearce,原先是为了治理Android我的项目而产生。[2]这个软件的名称,来自于荷兰设计师赫里特·里特费尔德(Gerrit Rietveld)。=== GitLab wiki 起初理解到它们两者之间的关系和角色、相似如下图片 公司给到的 GitLab 账号角色是 Reporter、只能 pull 而不能 push,如果想要 push 代码到分支上、只能先 push 到 Gerrit 中、Gerrit 可能存在代码插件或者人工review、通过之后能力push 胜利。Gerrit 和 GitLab 之间会做同步、所以你能即时的在 GitLab 中看到你 push 的代码。 应用 Gerrit 的时候会将一个hook脚本搁置在你的我的项目的 .git/hooks中、 外面有各种 hook的脚本、只有你将后缀.sample去掉就会在特定的时候执行。 应用 Gerrit 的时候会用其中的一个脚本在你的commit comment中减少一个 Change-Id的随机值 在 Idea 中 commit 的时候、如果你的我的项目中存在 hook 脚本、则会呈现是否执行hook 脚本的选项 咱们尝试在 commit 之前进行一次 compile、因为有时候 push 到近程仓库的代码可能并不能编译通过(把不能失常运行甚至不能编译通过的代码push下来、真的会影响其余共事开发) ...

December 18, 2020 · 1 min · jiezi

关于git:git-大小写敏感问题的解决方案

原文地址: https://shanyue.tech/bug/mac-...个别开发中在 Mac 上开发程序,并应用 Git 进行版本治理,在应用 React 编写 Component 时,组件名个别倡议首字母大写。 有些同学对 React 组件的文件进行命名时,刚开始是小写,起初为了放弃团队统一,又改成了大写,然而 git 不会发现大小写的变动,此时就出了问题。 再梳理一遍这个逻辑: 小明编写组件 button.js,提交代码小明感觉组件命名不妥,改为 Button.js小明并批改所有文件对它的援用,本地环境运行失常,提交代码构建服务器通过 Git 拉取代码,进行构建,Git 为意识到 button.js 大小写发生变化,所有援用 Button.js 的组件产生报错,失败来重现一下犯错的这个过程: # 刚开始 test 文件是由内容的~/Documents/ignorecase-test(master ✔) cat testhello# 把 test 文件改成首字母大写的 Test 文件~/Documents/ignorecase-test(master ✔) mv test Test# 留神此时 git status 并没有产生扭转~/Documents/ignorecase-test(master ✔)~/Documents/ignorecase-test(master ✔) git ls-filestest~/Documents/ignorecase-test(master ✔) lsTest解决方案通过 git mv,在 Git 暂存区中再更改一遍文件大小写解决问题 $ git mv test Test然而批改文件夹时会呈现一些问题: fatal: renaming 'dir' failed: Invalid argument应用下边这个笨办法批改: ...

December 17, 2020 · 1 min · jiezi

关于git:如何提升软件开发速度把握这两点对你至关重要

在解决方案交付速度方面,IT领导者在这次疫情呈现之后正接受着越来越大的压力。许多企业和他们的IT团队发现自己的疾速迭代速度可能无奈满足速度一直增长的业务需要。 要想取得速度劣势,必须要采取相应的措施,并开展相应的工作。否则,开发人员可能会陷入官僚主义的泥潭,或是被大量无关紧要的想法和无休止的申请烦扰。想法和申请会减少编码的工夫,并导致版本和新产品的公布呈现提早。为了更快地满足用户需要,企业接受的压力也变得越来越大。据项目管理协会(Project Management Institute)的考察显示,86%的IT决策者认为软件开发人员数量过少是数字化转型过程中的最大挑战。 其实,IT领导者能够在不折腾IT团队的状况下,通过部署新的流程和技术来放慢开发进度。而其中有两点至为要害:  实现技术、流程和语言的标准化 如果您的开发团队都应用雷同的工具、流程和语言,那么就能够实现应用程序在我的项目和部门之间疾速且轻松的迁徙。当员工在公司外部不同部门调岗时,标准化也能够让员工更快地学习和把握新工具和流程,从而为公司带来极大的灵活性。  应用低代码/无代码平台 低代码/无代码平台技术次要在3个方面进步了速度。首先,IT部门的开发人员能够应用它们更为便捷地创立代码。其次,业务用户自身能够应用该平台疾速交付满足需要的应用程序,从而打消了他们与IT部门进行合作的工夫。第三,用户能够本人实现一些高级的开发工作,这使得IT部门能够将资源集中在更简单且价值更高的应用程序的开发工作上,从而进步开发速度。  因为工作流的所有者理解他们本人想要设计的内容,因而他们能够应用低代码/无代码平台进行实时构建。当他们在设计新的工作流时,应用程序能够在后盾被实时设计。  这里有几个实在案例与大家分享,在一家电信公司中,两名应用无代码平台的开发人员开发应用程序所需的工夫比由六名Java开发人员组成的团队节约了67%。另一家电信公司也有过相似的胜利案例。过后,两名应用无代码平台的开发人员交付应用程序的工夫比由6个.NET开发人员组成的团队少了72%。在第三个胜利案例中,两名应用无代码平台的开发人员和一名参谋的工作速度比传统开发环境中的两名参谋和四名开发人员的工作快了62%。

December 16, 2020 · 1 min · jiezi

关于git:J2PaaS一个让你快速开发软件的低代码PaaS云平台

技术正在一直降级和提高。如果您经营的组织或业务专一于特定部门,那么您可能太忙了以至于无奈赶上软件开发的最新趋势。尽管,您发现利用这些趋势对于企业及团队至关重要。 像每个企业一样,即便规模很小,也总是能够通过软件而受害。这里,将为您或您的团队引入更多开发工具及技术,兴许会对您有更大帮忙。 J2PaaS开发平台是一个以PaaS为外围的低代码+零代码开发平台,是一个集PC和APP疾速开发、系统管理、流程引擎、权限治理、数据报表、可视化数据源治理与数据构建、数据动静生成与统计、工作流、智能表单设计、微服务等全方位性能于一体的高效、稳固的疾速开发平台。 J2PaaS低代码开发平台提供了一套构建应用程序的工具,低代码、可视化、云平台、随时随地在线开发,很容易上手,反对任何设施的利用程序开发,能够帮忙开发者进步开发效率。 J2PaaS平台就能奇妙的绕过您的软件开发难题。通过可视化的后盾来搭建利用,过程像搭积木一样简略和便捷,这使软件应用搭建的工夫从原来的半年甚至是一年转变为当初的几周或者是几天,将软件定制或者是开发的难度降到最低。这一技术之所以被看好,就在于不仅缩小了大量编码工作,更可在应答市场时,灵便进行业务逻辑调整,使市场业务转变更麻利。 用J2PaaS来进行零碎开发,意味着技术选型、技术绑架、技术趟坑等问题都不再是问题,增删改查的传统工作也被撬开了一个缺口,开发门槛大幅升高;不仅能够开发轻量级零碎,简单零碎的开发也不在话下。ERP、CRM、BOM、OA、MES等利用零碎都能疾速的生成! 【举荐理由】 1、海量模块 国内首创“参数式”开发,笼罩10余行业、各类SaaS级业务利用与治理模版,一键即用,还可依据业务需要自定义个性化性能。 2、疾速部署 积木式搭建软件系统及免编码参数利用、可视化让技术及业务人员轻松搭建各类零碎及利用,5分钟即可搭建一个业务场景,软件开发更轻松。 3、所见所得 可能可视化配置工作流(Workflow),可视化构筑业务对象数据表,并反对建设关联。甚至须要反对跨利用的数据表关联,反对数据新增、改写、删除等操作,并可能融入数据填写,审批等流程节点。(这是低代码疾速开发将来可能胜出其余计划的要害劣势)。 4、以一抵百 一个J2PaaS,解决98%企业在线治理需要可依据企业需要轻松搭建经营管理所需的所有零碎利用;一个利用平台不同管理系统的数据互通,解决传统软件开发及保护问题。

December 15, 2020 · 1 min · jiezi

关于git:Git-Push-f-命令详解

最近遇到了一个Git Push 相干的问题,共事不小心把一些错误代码提交到仓库了。如果每个人间接更新的话,会导致错误代码也更新到本地了。 这个时候想要防止这种状况的产生,惟一能够做的就是将那些错误代码间接笼罩掉。 git push -fgit push -f 这个命令的作用是将本人本地仓库的代码间接推送至仓库,齐全以你的提交为准,之前其他人的提交都会被笼罩。 那么这么可怕的命令,到底在什么状况下才实用呢? 应用机会有两种状况下适宜应用这个命令: 确定须要覆笼罩提交,就像下面的那种状况,在明确局部提交会导致异样时,能够应用新的提交去笼罩。须要整顿历史提交记录时,有时候我的项目的 Commit Logs 可能比拟乱,不能清晰的看出每一次提交的作用,能够应用 rebase 命令来清理历史提交记录。因为扭转了历史,所以失常来说是 push不胜利的,所以须要应用 force push来解决这个问题。默认分支爱护因为可能会呈现不小心应用的状况,Github、Gitlab这类源码托管网站会提供分支爱护机制。能够防止某个分支被 force push,默认是 master为爱护分支。 这里以Gitlab为例,设置->仓库->Protected Branches: 所以如果想强制提交,前提须要勾销对该分支的爱护。 万一本人的代码被笼罩掉了,还救得回来吗?其实也是有方法的,那就是换你或是其它有之前提交的共事,再次进行 git push -f,将正确的内容强制提交下来,笼罩上一次git push -f所造成的劫难。 参考链接聽說 git push -f 這個指令很可怕,什麼情況能够应用它呢?

December 10, 2020 · 1 min · jiezi

关于git:搭建git远程仓库

Linux上搭建Git服务器 artoria 2019-01-07 14:37:57 3659 珍藏 12 分类专栏: Linux Git 文章标签: Git RSA 版权 因为github能够收费帮咱们治理我的项目(即我的项目的版本控制),因而咱们通常会将一些开源我的项目放在github的公共仓库。但咱们常常会有这样的需要:出于商业目标,咱们必须要我的项目的源文件进行窃密。这个时候再用github的公有仓库治理咱们的我的项目就不适合—github的公有仓库前两天还是“免费”的呀,当初收费了。这个时候,咱们就能够思考搭建一个公有的Git服务器。以下是阿里云服务器Linux作为服务器零碎,本机Windows作为客户端零碎进行示例阐明。 装置GitLinux上通过yum命令装置Git`# 通过yum工具拉取并装置最新版本的git工具包yum install git# 正确显示git的版本号,则示意曾经正确装置git --version# 咱们默认都是通过“git用户”来治理git服务器,因而要新建一个git用户# 测试服务器上是否有git用户id git# 如果没有,则通过如下命令增加一个git组下的git用户,并为git用户设置登录明码groupadd gituseradd -g git gitpasswd git` * 1* 2* 3* 4* 5* 6* 7* 8* 9* 10* 11* 12命令执行胜利后,测试成果应该如下: Windows通过安装包装置Git在Git官网下载地址,下载最新版本的Git。装置实现后配置Git的环境变量。Git官网文档外面有阐明,谷歌/百度也能搜到很多教程,这里就不再赘述。如果装置实现并配置好了Git的环境变量,鼠标右击后的菜单栏,能够看到Git Bash Here的选项,抉择后即可关上git的命令行工具。 在Linux服务器端创立Git仓库`# 新建一个空白目录blog.git,作为Git仓库mkdir -p /home/gitrepo/blog.git# 初始化仓库,--bare示意只生成一个裸仓库,没有工作目录(.git),会保留git历史提交的版本信息。git init --bare /home/gitrepo/blog.git# 将该目录的所有人改为git用户cd /home/gitrepochown -R git:git blog.git` * 1* 2* 3* 4* 5* 6* 7Windows客户端拉取近程仓库在桌面通过Git Bash Here,关上git的命令行工具,进行如下测试: ...

December 8, 2020 · 1 min · jiezi

关于git:Git工作原理及常用命令

博客链接:https://ouduidui.cn/blog/detail?blogId=5fcf247161ae700fd80190e3git介绍git(读音/t/)是一个开源的分布式版本控制系统,能够无效、高速地解决从很小到十分大的我的项目版本治理。git是Linus Torvalds为了帮忙治理Linux内核开发而开发的一个开放源码的版本控制软件。 git保留的不是文件的变动或者差别,而是一系列不同时刻的文件快照。在进行提交操作时,git回报纯一个提交对象(commit object)。该提交对象会蕴含一个指向暂存内容快照的指针。但不仅仅是这样,该提交对象还蕴含作者的姓名和邮箱、提交时输出的信息以及指向它的父对象的指针。 git装置及配置装置Linuxsudo yum install gitMac# 须要先装置homebrew/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"# 装置gitbrew install gitWin间接从官网下载安装。 配置# 配置昵称git config --global user.name "userName"# 配置邮箱git config --global user.email "userEmail"git存储git分区git存储分为四个局部: workspace:工作空间 咱们开发代码的目录index:暂存区 .git 目录下的index 文件repository:本地仓库 通过git clone 将近程的代码下载到本地,代码库的元数据信息在根目录下的.git 目录下remote:近程仓库 比方github 、gitlab 等近程仓库 工作区 —git add —> 暂存区 —git commit —> 本地仓库 —git push —> 近程仓库近程仓库 —git fetch —> 拉取最新代码至本地仓库,并应用refs/remotes门路下对应分支文件,记录近程分支末端commit_id —git merge —> 工作区近程仓库 —git pull —> 拉取最新代码至本地仓库,并主动合并代码至工作区,且应用refs/remotes门路下对应分支文件,记录近程分支末端commit_idgit fetch 和 git pullgit fetch 是将近程主机的最新内容拉取到本地,须要用户查看代码当前决定是否合并到工作本机分支中。 ...

December 8, 2020 · 3 min · jiezi

关于git:GIT操作

第一次初始化git initgit add .git statusgit commit -m 'first add'git remote add origin https://github.com/shichangqi/scqvue.gitgit pull --rebase origin mastergit push -u origin master

December 8, 2020 · 1 min · jiezi

关于git:githubgitlab提交格式

次要用于标准本人平时提交代码的格局,防止凌乱难以追溯1.标准内容[x] 组成:类型 - 模块 - 内容[x] 示例:‘add-资产台账-列表减少排序功能’2.标准类型字典{ add :"新增", update:"批改", delete:"删除", fix:"bug修复", docs:"文档批改", refctor:"重构", perf:"性能优化"}3.标准补充类型不蕴含但不仅限于(add,update,delete)内容局部尽量不超过20个字符超过一个大的代码性能,分屡次提交

December 8, 2020 · 1 min · jiezi

关于git:02IDE工具之IDEA中Module的创建及Git基本操作

创立我的项目Module并运行创立并运行java module在IDEA关上的我的项目中创立Java Module,如图所示: 在创立Java Module的界面,抉择Next,输出module名,如图所示: Java Module创立好当前的构造,如图所示: 在我的项目模块01-javase中创立包,例如: 在指定包中创立类,如图所示: 运行Java类,如图所示: 创立并运行Maven Module在我的项目中,创立maven module,如图所示: 接下来,输出module根本信息,如图所示: 关上pom.xml文件,增加Junit依赖,如图所示: 创立包、单元测试类和办法,进行单元测试,如图所示: 创立并运行Spring Initializr Module在我的项目中,创立Spring Initializr Module,如图所示: 接下来输出Spring Initializr Module信息,如图所示: 抉择springboot版本,依赖,而后进入一下,如图所示: 输出module信息,而后实现Module的创立,如图所示: Spring Initializr Module创立好当前,其构造如图所示: Module创立好当前,能够关上pom.xml文件,批改其springboot版本,如图所示: SpringBoot 版本批改好当前(可选),向pom.xml右键,抉择Add as Maven Project 选项,进行maven我的项目构建(此时才会springboot 依赖下载和编译),例如: Module 构建实现,关上启动类运行module,如图所示: Module胜利启动和运行后果,如图所示: 基于Git的我的项目操作查看Git配置。找到Git配置选项,进行Git测试,如图所示: 我的项目Push操作剖析及实现将我的项目、Module推送的Gitee近程代码托管平台,如图所示: 指定Gitee仓库的仓库名(库不存在,推送时主动创立),如图所示: 登陆Gitee,查看近程仓库内容,如图所示: ...

December 7, 2020 · 1 min · jiezi

关于git:Git应用入门

背景剖析软件我的项目开发过程中,团队间共享的代码,文档等可能被他人或本人不小心笼罩或遗失、也不晓得是谁,因为什么起因改了这段代码、也没方法很好的还原前几天的批改,于是版本控制系统(VCS-Version Control System)诞生。 有了版本控制系统,咱们能够浏览所有开发的历史纪录,把握团队的开发进度,而且作任何批改都不再胆怯,因为你能够轻易的还原回之前失常的版本。咱们也能够透过分支和标签的性能来进行软件发行的不同版本,例如稳固版本、保护版本和开发中版本。近几年版本控制系统的利用趋势,如图所示: 版本控制系统(VCS,Version Control System)能够划分为集中式和分布式两大类。集中式顾名思义,是用繁多的服务器来集中管理保留我的项目的所有文件。我的项目团队的成员通过客户端连贯到这台服务器,下载或提交文件。如图所示: 集中式客户端一旦无奈连贯服务器,那么版本控制性能将无奈应用(例如比拟历史版本差别;查看某个历史版本内容等)。集中式的VCS杰出代表是SVN. 分布式的特点是每个客户端除了能够连贯到一个集中的服务器外,客户端自身能够是一个残缺的版本控制仓库,我的项目团队成员能够在本人的电脑上对文件进行版本治理。如图所示: 与集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有残缺的版本库,某一个人的电脑坏掉了不要紧,轻易从其他人那里复制一个就能够了。而集中式版本控制系统的地方服务器要是出了问题,所有人都没法干活了。分布式的VCS杰出代表是git。 Git简介(Introduction)Git是一个开源的分布式版本控制系统,作者是传奇人物Linus,驰名的开源操作系统Linux作者。liuns花了两周工夫本人用C写出了一个Git。当初Linux零碎的源码都是由Git进行治理。Git现已是VCS畛域的江湖霸主。 Git装置(Setting Up)下载与装置Windows和Mac零碎, 能够间接从 http://git-scm.com/downloads 网址下载并运行安装程序。对于Windows用户可应用 "Git Bash" 命令行工具(Git装置时自带)应用Git,Mac零碎能够间接实用终端窗口"Terminal"。 全局用户信息配置配置用户和明码 $ git config --global user.name "your-name"$ git config --global user.email "your-email@youremail.com" 查看配置信息 $ git config --listuser.email=xxxxxx@xxxxxx.comuser.name=xxxxxxGit根底(Basic)利用实现Git 命令简介Git提供了一组简略、独特、独立的命令,这些命令的执行须要首先启动windows或mac零碎的Git终端(window 下能够可应用 "Git Bash"),其语法结构为: $ git <command> <arguments>Git 常用命令有: init, clone, config: 用于启动Git进行项目管理。add, mv, rm: 用于临时记录或存储文件的变更.commit, rebase, reset, tag:status, log, diff, grep, show: show statuscheckout, branch, merge, push, fetch, pullGit 帮忙手册:(可疾速获取命令的应用帮忙) ...

December 7, 2020 · 3 min · jiezi

关于git:Git常用操作命令

装置yum –y install git // Linux零碎brew install git // Mac零碎配置ssh-keygen -t rsa -C "你的邮箱" // 创立秘钥git config --global user.name "John Doe" git config --global user.email johndoe@example.comgit config --global --list // 查看以后用户配置 标签git tag -a R20190218-01 // 打标签git push origin R20190218-01 // 推送标签git tag -d R20190218-01 // 删除本地标签 git push --delete tag R20190218-01 // 删除远端标签增加新仓库git init // 初始化本地代码git remote add origin "github仓库地址" // 增加远端git地址git push -f origin master // 强制推送

December 4, 2020 · 1 min · jiezi

关于git:将feature分支上的部分代码合并到dev上

feature分支上的代码超前了dev分支很多版本,然而当初dev须要feature上的某一个性能,咱们只能将这一个性能合并到dev分支上。 1.找到这个性能提交时的commitgit log我应用的是别名git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"680f295就是commit的标识 2.切到dev分支git checkout devgit cherry-pick 680f295如果遇到抵触,就解决抵触之后再次cherry-pick即可,这样就把feature分支上的680f295提交合并到了dev上。 将一连串的feature提交合并到devcommit id为id1~id9 1.在feature上新建一个用于合并的分支,要指定id9为其最初一次commitgit checkout -b feature1 id9 2.此时处于feature1分支git rebase --ontomaster id1^id1^指明从哪个commit开始

December 4, 2020 · 1 min · jiezi

关于git:git-账号密码过期

git账号密码过期了,在gitlab上批改后,本地还没进行同步时,连贯远端仓库,报了这个错 解决清空本地保留的用户名、明码(须要管理员身份)git config --system --unset credential.helper此时重连会提醒输出用户名明码重新配置用户名明码git config --global user.email "you@example.com"git config --global user.name "Your Name"发现每次都会要求输出用户名明码,设置将凭证存起来git config --global credential.helper store不想用命令行,也能够间接手动批改配置文件。 解析git 配置文件git 有多个范畴(scope)的的配置文件,范畴小的,覆盖范围大的个别有system、global、local、worktree寄存目录如下: scopelocationfilenamesystem<git-install-root>\etc\,如:C:\Program Files\Git\etc\gitconfigglobalC:\Users\<username>\.gitconfiglocal<git-repo>.git\configworktree同上config.worktree查找Git配置文件记不住配置了哪些scope,能够应用以下命令查看所有的git配置文件 git config --list --show-origin具体地列出配置内容和配置文件门路 与上面命令不同的是,上面命令只显示配置信息,不显示门路 git config --list git 凭证存储git 如果是通过http拜访近程仓库,须要输出用户名和明码,此时,如果不将凭证存储,则须要一遍一遍地输出用户名明码。 git config credential.helper "$helper $options"模式存储时长存储地位不缓存【默认】----cache15min内存store永恒磁盘[其余]----

December 4, 2020 · 1 min · jiezi

关于git:Git非官方使用总结

原文地址:https://blog.dpf114.top/posts/git-often-used/ 1.什么版本控制系统独自的讲版本控制咱们或者不晓得它是什么,然而举个咱们生存中的小例子,咱们很容易明确它是什么。 例如咱们毕业批改无数遍的论文: 毕业论文最终版毕业论文最最终版毕业论文最最最终版毕业论文最最最最终版毕业论文最终不改版毕业论文最终真不改版毕业论文最终真真不改版毕业论文最终打死不改版毕业论文最终打死不改版 2...这里有很多版本,而版本控制系统就是对咱们写的内容不同版本进行管制的零碎。 罕用的版本控制系统有SVN和Git。咱们在理论开发中Git应用的比拟多。 2.装置和配置2.1.装置Windows 对于windows只有下载安装包间接装置即可。 Linux 应用apt-get工具下载安装 apt-get updatesudo apt-get install gitMac 应用brew工具下载安装 brew install git2.2.装置后配置不论是 Windows 装置还是 Linux 装置,装置好之后,咱们都先通过如下两行命令做一个根本配置,目标是为了辨别不同开发人员的身份,即每次提交都是由谁提交的。配置形式如下: git config --global user.name 'username'git config --global user.email 'username@qq.com'配置实现后配置信息存储在~/.gitconfig文件中 3.根本应用在基本操作之前咱们要理解一下Git应用的分区 工作区:工作区也就是咱们平时写代码的中央暂存区:通过git add提交后长期寄存代码的中央本地库:通过git commit提交后寄存代码的中央,本地库保留着历史版本相干信息。近程库:近程库也就是近程代码仓库,例如Gitee、GitHub、gitlab。3.1.初始化仓库初始化仓库有两种形式,一种是通过从近程仓库克隆,另外一种是间接从当前目录初始化,命令如下: git init执行实现后当前目录下会多出一个 .git 的暗藏文件夹,所有 git 须要的数据和资源都寄存在该目录中。 3.2.查看仓库状态通过git status命令能够查看仓库的状态。刚初始化的仓库查看状态如下: 批改工作区后查看状态如下图: 提交暂存区后查看状态如下图: 提交到本地仓库后查看状态如下图: 3.3.提交到暂存区通过git add能够将工作区的内容提交到暂存区,有以下几种应用状况: git add 具体文件git add .git add *.和*都代表提交工作区的所有文件。 3.4.提交到本地库通过git commit将暂存区内容提交到本地仓库,具体应用如下: git commit -m '提交形容内容'留神:形容内容不能为空。倡议每次提交写分明提交内容,可用于版本回退。3.5.提交到近程仓库如果是通过克隆的形式初始化仓库,提交到本地库后,能够间接通过git push间接提交到近程仓库,如果是通过git init初始化,须要近程近程创立好对应仓库后,让本地仓库跟近程仓库关联,让后再用 git push提交。 ...

December 3, 2020 · 2 min · jiezi

关于git:Git-实战使用探讨

应用前的筹备本地Git装置Git软件实现后,必须配置git使用者 姓名 和 邮箱,用于提交近程仓库时,如果他人发现BUG能够有渠道分割对应代码作者来修复 近程GitGit次要用于 高效多人帮助开发 ,那必须要有近程git仓库,能够本人搭(gitlab),也能够应用他人搭的(github/gitee) HTTPS与SSH的区别

December 3, 2020 · 1 min · jiezi

关于git:IDEA配置码云Gitee的使用

gitee是咱们罕用的版本控制工具,idea是应用最多的开发工具,那么两者如何搭配,更好的进步咱们的开发效率呢,本文将给你具体介绍。1、idea装置配置码云(1)装置gitee插件file--setting--plugins(2)增加码云账号并登录file--setting--version control--add account--输出用户名明码登录 (3)配置Git程序门路file--setting--version control-git--设置装置门路下的cmd中git.exe程序 (4)创立本地仓库vcs--import into version control --create git repository (5)创立近程仓库,填写近程仓库信息vcs -- import into version control --share project on gitee (6)代码提交与拉取(7)必须先提交本地仓库,再提交近程仓库 2、企业版创立我的项目上传下载(1)创立仓库(2)创立一个java我的项目(3)启用Git版本控制(4)查看码云上的.gitignore文件 用于设置哪些文件不必上传服务器(5)查看服务器地址 (6)设置服务器地址为Git增加remote (7)执行pull命令查看.gitignore文件vcs-- git --pull点击刷新按钮进行刷新的操作刷新实现后,勾选master,点pull进行拉取 (8)项目经理提交文件以上实现再点击push,提交胜利 (9)我的项目成员克隆我的项目

December 2, 2020 · 1 min · jiezi

关于git:版本管理之git神器创建仓库和搭建git服务器

https://www.bilibili.com/vide...

December 2, 2020 · 1 min · jiezi

关于git:Git版本控制工具安装及命令行操作

很多小伙伴不晓得如何来装置Git版本控制工具,对于命令操作比拟生疏。本文做了一个具体的文档,心愿对大家有所帮忙。1.git 是什么一个分布式版本控制系统,和SVN相似,但远比SVN弱小的一个版本控制系统 ①Git能够不便的在本地进行版本治理,如同你本地有一个版本治理服务器一样咱们能够抉择在适合的工夫将本地版本推送到对立的版本治理服务器 ②Git每次会提取整个代码仓库的残缺镜像,相当于对整个代码仓库都进行了一次备份,这样计时版本服务器除了问题,咱们能够间接采纳本地仓库复原!联合本地版本治理性能,近程版本治理服务器出问题了,咱们仍然能持续写本人的代码,当他复原的时候咱们再提交咱们的本地版本! Git研发初期是为了更好的治理Linux内核,不过当初曾经广泛应用于各种我的项目中!2.git装置步骤版本:Git-2.28.0-64-bit(1)下载地址:https://npm.taobao.org/mirror...软件名称:Git-2.28.0-64-bit.exe (2)装置并配置环境变量 #只须要设置装置门路,间接下一步即可 (3)查看Git版本 git --version#在cmd中没有git命令,阐明环境变量没有配置好#配置好环境变量,间接重启cmd窗口即可(4)设置全局用户信息配置初始化配置 #设置全局用户名称git config --global user.name "zhouzhihua"#设置全局邮箱号码git config --global user.email "123456789@qq.com" 如果曾经初始化过,然而不小心输错了,批改时就应用如下命令,否则会报错 #替换信息git config --global --replace-all user.name "姓名/邮箱"#删除信息git config --global --unset user.name "姓名/邮箱"#查看配置信息git config -l3、Git图形界面工具(仅windows下)工具:Git For Window下载地址: https://git-for-windows.github.io/ 3.Git本地仓库命令行操作这个代码仓库其实是用来保留版本管理所需的一些信息,咱们本地提交的代码都会提交到代码仓库中,于是乎咱们能够抉择还原到某个版本,当然,如果需要的话,咱们还能够将保留在代码仓库中的代码推送那个到近程仓库中!比方GitHub!#仓库的创立git init#查看以后仓库的状态git status#将工作区的文件退出暂存git add .#将暂存中的数据提交到咱们的分区上 #-m参数是 形容信息 是必填项git commit -m #增加仓库提交地址(仓库地址) git remote add origin url#查看曾经增加的近程仓库地址git remote -v# 将数据提交到近程仓库中去git push origin master #近程仓库之克隆 url 为近程仓库地址 git clone url(1)抉择一个目录,作为咱们的本地代码仓库,输出init命令创立好仓库。并查看以后仓库的状态 (2)关上作为仓库的文件夹,发现多了一个git暗藏文件夹 ...

December 1, 2020 · 1 min · jiezi

关于git:git-从远程仓库拉取代码

应用git 间接提交的话 间接 push 获取最新版本 有两种 拉取 和 获取 pull 和 fetch git pull 从近程拉取最新版本 到本地 主动合并 merge git pull origin master git fetch 从近程获取最新版本 到本地 不会主动合并 merge git fetch origin master git log -p master ../origin/master git merge orgin/master 理论应用中 应用git fetch 更平安 在merge之前能够看清楚 更新状况 再决定是否合并。 对了,还有好多好多的那些鬼命令:git init ,git stash ... git 啥的,都把偶给搞晕了, 能够学学这个视频点击返回>>,对git的底层机制理解个透彻,再也不必死记硬背这些什么鬼命令了, 如果你仅仅是为了可能pull、push下代码,不想搞一些什么简单的操作,能够选择性疏忽。

December 1, 2020 · 1 min · jiezi

关于git:版本管理工具Git的使用

下载及装置(依照程序装置以下各个软件) Git官网的下载链接: https://git-scm.com/download/winTortoisegit官网下载链接: https://tortoisegit.org/downl...装置Tortoisegit中文语言包: https://tortoisegit.org/downl... (记得抉择应用openssh)Git服务器 应用gitee.com国内出名开源我的项目托管平台(码云)作为服务器在gitee.com上创立本人的仓库Git克隆的形式 https形式:间接复制仓库的链接地址,复制到本地电脑上克隆的地址输入框中。(第一次克隆须要输出gitee.com上的账号和明码)ssh形式:ssh是一种开源非对称加密通信协议,git默认应用开源实现的openssh。ssh通信须要一对密钥,私钥留在本人电脑上,公钥给其余的电脑。应用GitGUI生成密钥,并包公钥放到gitee服务器上。4..gitignore文件 这个文件是设置以后我的项目中有些文件不须要纳入git治理,比方unity我的项目中的Library/Temp/Obj/Build/Logs等文件夹。 这个文件能够在gitee上创立仓库的时候默认创立,也能够在本地应用touch .gitignore命令创立。罕用的文件内的命令:#按文件名疏忽文件夹(会疏忽各个层级目录下的该名词的文件夹)文件夹名称/ ([Aa]疏忽首字母大小写)#按门路疏忽文件夹(只疏忽当前目录下的该名词的文件夹)/文件夹名(门路)/#疏忽文件*.后缀名#反疏忽,对文件和文件夹都无效!*.文件名!A/空文件夹会被主动疏忽 5.子模块 子模块就是一个git仓库蕴含其余git仓库,以后我的项目须要援用其余开源我的项目的时候就能够把其余我的项目作为一个子模块引入。

November 30, 2020 · 1 min · jiezi

关于git:鹅厂是如何使用-Git-的

明天跟大家分享一点鹅厂程序员的 Git 应用教训。 介绍四种工作流来更好地了解 Git 的我的项目应用流程,利用其弱小的分支性能为本人的我的项目构筑适配的工作流。 1.前言 开发人员在日常开发过程中,不可避免地会应用到代码的版本控制工具,如 svn、git 等等,记得在刚刚入职的时候,部门应用的次要的 VCS 工具还是 svn,期间有着十分苦楚的 download 经验,下载一份仓库花了我 2-3 个小时,相比于 svn,git 有着十分多的劣势,比方仓库 clone 速度十分快、外围的分支性能等等,后续公司也在推应用 git 来保护代码仓库,齐全摒弃轻便的 svn。 那么,切换到 git 来保护代码仓库,会对咱们的日常开发造成影响吗?许可是显然的,首先咱们须要学习 git 的基本概念与用法,而后就须要咱们在具体的我的项目实际过程中打磨咱们的 git 应用技巧,比方灵便的分支、子模块应用等等,对于 git 概念或技术上的介绍,本文不予开展,如果对 git 实现上的细节感兴趣的话,能够自行搜寻学习。 接下来次要跟大家探讨的主题是 git 工作流,git 初学者可能对这个概念并不是很清晰,脑海中想到的可能是 git 的工作原理之类的,其实并不是的,git 工作流指的是多人合作过程中的 git 的应用流程,不波及技术细节,是一种项目管理、开发约定的形式。有些同学可能感觉习得了 git 三板斧(clone、add commit、push)就算是实现了对 git 的开发认知,其实咱们可能还停留在最原始的设想之中。 2.集中式工作流 集中式工作流,这种工作形式对于应用过 svn 的同学想必会十分的相熟,让咱们思考下在 svn 下的合作体验,不同的开发同学须要顺次将本地的批改提交到服务器,如果有抵触就先解决本地的抵触再提交,这个过程中远端的服务器就像是一个集中管理者,治理着所有人的代码提交,所以 svn 的开发合作流程就是典型的集中式工作流,那切换到 git 场景下,集中式工作流的工作形式又是什么样的呢? 首先咱们看下 git 的根底操作框架,如图 2.1 所示:这里有一份地方仓库,是寄存我的项目代码的中央,三个开发人员 A、B、C 别离在本地持有一份地方仓库的拷贝 - 本地仓库,这里相比于 svn 的框架只是多了一个本地仓库; ...

November 27, 2020 · 2 min · jiezi

关于git:Logical-Programming-with-Prolog-Clauses-and-Queries

一些网址推荐SWI-PROLOG官网: [SWI-Prolog (swi-prolog.org)](https://www.swi-prolog.org/)疾速入门: [SWI-Prolog -- Manual (swi-prolog.org)](https://www.swi-prolog.org/pldoc/man?section=quickstart)在线编译工具: [SWISH -- SWI-Prolog for SHaring (swi-prolog.org)](https://swish.swi-prolog.org/)数据类型在Prolog中惟一的一种数据类型是term一个term能够是 atom(以小写字母结尾)numbervariable()

November 27, 2020 · 1 min · jiezi

关于git:Git应用入门

背景剖析软件我的项目开发过程中,团队间共享的代码,文档等可能被他人或本人不小心笼罩或遗失、也不晓得是谁,因为什么起因改了这段代码、也没方法很好的还原前几天的批改,于是版本控制系统(VCS-Version Control System)诞生。 有了版本控制系统,咱们能够浏览所有开发的历史纪录,把握团队的开发进度,而且作任何批改都不再胆怯,因为你能够轻易的还原回之前失常的版本。咱们也能够透过分支和标签的性能来进行软件发行的不同版本,例如稳固版本、保护版本和开发中版本。近几年版本控制系统的利用趋势,如图所示: 版本控制系统(VCS,Version Control System)能够划分为集中式和分布式两大类。集中式顾名思义,是用繁多的服务器来集中管理保留我的项目的所有文件。我的项目团队的成员通过客户端连贯到这台服务器,下载或提交文件。如图所示: 集中式客户端一旦无奈连贯服务器,那么版本控制性能将无奈应用(例如比拟历史版本差别;查看某个历史版本内容等)。集中式的VCS杰出代表是SVN. 分布式的特点是每个客户端除了能够连贯到一个集中的服务器外,客户端自身能够是一个残缺的版本控制仓库,我的项目团队成员能够在本人的电脑上对文件进行版本治理。如图所示: 与集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有残缺的版本库,某一个人的电脑坏掉了不要紧,轻易从其他人那里复制一个就能够了。而集中式版本控制系统的地方服务器要是出了问题,所有人都没法干活了。分布式的VCS杰出代表是git。 Git简介(Introduction)Git是一个开源的分布式版本控制系统,作者是传奇人物Linus,驰名的开源操作系统Linux作者。liuns花了两周工夫本人用C写出了一个Git。当初Linux零碎的源码都是由Git进行治理。Git现已是VCS畛域的江湖霸主。 Git装置(Setting Up)下载与装置Windows和Mac零碎, 能够间接从 http://git-scm.com/downloads 网址下载并运行安装程序。对于Windows用户可应用 "Git Bash" 命令行工具(Git装置时自带)应用Git,Mac零碎能够间接实用终端窗口"Terminal"。 全局用户信息配置配置用户和明码cmd命令 git config --global user.name "your-name"git config --global user.email "your-email@youremail.com" 查看配置信息 git config --listuser.email=xxxxxx@xxxxxx.comuser.name=xxxxxxGit根底(Basic)利用实现Git 命令简介Git提供了一组简略、独特、独立的命令,这些命令的执行须要首先启动windows或mac零碎的Git终端(window 下能够可应用 "Git Bash"),其语法结构为: git <command> <arguments>Git 常用命令有: init, clone, config: 用于启动Git进行项目管理。add, mv, rm: 用于临时记录或存储文件的变更.commit, rebase, reset, tag:status, log, diff, grep, show: show statuscheckout, branch, merge, push, fetch, pullGit 帮忙手册:(可疾速获取命令的应用帮忙) ...

November 27, 2020 · 3 min · jiezi

关于git:IDE工具之IDEA中Module的创建及Git基本操作

创立我的项目Module并运行创立并运行java module在IDEA关上的我的项目中创立Java Module,如图所示: 在创立Java Module的界面,抉择Next,输出module名,如图所示: Java Module创立好当前的构造,如图所示: 在我的项目模块01-javase中创立包,例如: 在指定包中创立类,如图所示: 运行Java类,如图所示: 创立并运行Maven Module在我的项目中,创立maven module,如图所示: 接下来,输出module根本信息,如图所示: 关上pom.xml文件,增加Junit依赖,如图所示: 创立包、单元测试类和办法,进行单元测试,如图所示: 创立并运行Spring Initializr Module在我的项目中,创立Spring Initializr Module,如图所示: 接下来输出Spring Initializr Module信息,如图所示: 抉择springboot版本,依赖,而后进入一下,如图所示: 输出module信息,而后实现Module的创立,如图所示: Spring Initializr Module创立好当前,其构造如图所示: Module创立好当前,能够关上pom.xml文件,批改其springboot版本,如图所示: SpringBoot 版本批改好当前(可选),向pom.xml右键,抉择Add as Maven Project 选项,进行maven我的项目构建(此时才会springboot 依赖下载和编译),例如: Module 构建实现,关上启动类运行module,如图所示: Module胜利启动和运行后果,如图所示: 基于Git的我的项目操作查看Git配置。找到Git配置选项,进行Git测试,如图所示: 我的项目Push操作剖析及实现将我的项目、Module推送的Gitee近程代码托管平台,如图所示: 指定Gitee仓库的仓库名(库不存在,推送时主动创立),如图所示: 登陆Gitee,查看近程仓库内容,如图所示: ...

November 27, 2020 · 1 min · jiezi

关于git:Gitmerge后想撤销该merge操作

有release、test两个分支,test上进行批改提交后,merge到release分支,但merge后想撤销此次merge操作,那要怎么操作呢? # 撤销merge操作release分支:git revert fcd8a101 -m 1 其中”fcd8a101“为想要撤销操作的commit id,-m 示意要撤销merge操作,不加-m示意撤销一般commit操作。 撤销 merge 操作后 test 分支无奈再次 merge 到release起因:无奈再次 merge 是因为 revert 操作是新操作笼罩旧操作,所以之前的批改相当于被摈弃,此时 test 分支是落后 release 分支的。 若想要实现test能够merge到release分支,能够将release分支先合并到test分支: # 合并release到testtest分支:git merge release此时release分支的批改都被带到了test分支,包含在release分支的revert操作,所以当初test分支本来的代码此时没有了。重点来了⚠️ 这时须要把revert产生的提交再revert一次,test上本来的代码又回来了,此时再进行批改或者merge到release分支都是能够操作的!

November 27, 2020 · 1 min · jiezi

关于git:使用git进行项目版本管理

为了更好地治理目前公司内的源码版本,让大家更好的协同工作,前阵子看了不少对于git版本治理的文章,总结除了一个绝对简略的治理标准,并在实际一段时间后,进行了调整。最终版如下: 1.master分支寄存的应该是随时可供在生产环境中部署的代码当开发流动告一段落,产生了一份新的可供部署的代码时,master分支上的代码会被更新。同时,每一次更新,都有对应的版本号标签(TAG)。分支命名:master该分支,由管理员负责保护,其它人只有拉取权限。来自于release分支的合并,供发版应用生命周期:随同着整个我的项目的生命周期,我的项目完结时完结。 2.develop分支develop分支是每次迭代版本的共有开发分支,从最新的master分支派生(管理员操作)当develop分支上的代码已实现了软件需要说明书中所有的性能,派生出release分支(管理员操作)分支命名:dev-版本号该分支,由开发人员在各自的feature分支开发实现后,合并至该分支。生命周期:一个阶段性能开发开始到本阶段完结 3.release分支从develop分支派生(管理员操作)测试环境中呈现的bug,对立在该分支下进行批改,并推送至近程分支。批改内容必须合并回develop分支和master分支。分支命名常规:release-版本号生命周期:一个阶段性能开发完结开始,实现阶段功能测试并修复所有发现bug,合并会develop分支完结。 4.feature分支在开发一项新的软件性能的时候应用,这个分支上的代码变更最终合并回develop分支分支命名常规:feature-姓名全拼-分支阐明-日期 / feature-分支阐明-日期例:接到一个开发对于cc视频点播替换的工作,你须要从develop分支拉出一个分支,并命名为:release-yuruixin-ccVideo-20171117。而后在该分支下进行开发,开发完结,将该分支合并至develop分支(此时的代码必须为可运行的,不能影响到别人),合并实现删掉该个性分支。开发人员的每一个新性能开发都应该在该类分支下进行。生命周期:开发一个新性能开始,实现新性能开发并合并回develop分支完结。 5.hotfixes分支在master分支发现bug时,在master的分支上派生出一个hotfixes分支,批改实现后,合并至master分支以及develop分支,合并实现,删除该hotfixes分支。分支命名常规:hotfixes-姓名全拼-分支阐明-日期示例:hotfixes-yuruixin-cclivebug-20171117生命周期:发现master分支bug开始,实现master分支bug完结。 综上,开发人员须要操作的分支如下: feature分支 (开发应用)release分支 (测试中呈现的bug批改)hotfixes分支 (master中呈现的bug批改)整个流程能够下图展现

November 24, 2020 · 1 min · jiezi

关于git:如何使用Git浅克隆来提高性能

如何应用Git浅克隆来进步性能克隆(clone)整个仓库是应用 Git 的规范操作过程。每个克隆通常包含存储库中的所有内容。 这意味着克隆时,不仅会失去文件,还会失去已经提交的每个文件的每个订正版本,以及每次提交的历史记录。而且,如果您的代码库里有很多资产,那将蕴含很长的历史。次要问题是,这将在继续集成(CI)管道中造成瓶颈。 查看 github.com 等代码库的优化我的项目,常常须要把代码实现克隆下来,越是星多的我的项目,代码量越大,历史也可能越长,在国内网络不好的状况下,常常下载若干GB当前,断网。一旦中断,无奈续传,又得从头开始,苦不堪言。 当然能够通过下载zip/gz发行源码包来实现,但如果想参加我的项目开发,这个计划就不可行了。 解决方案:Git浅克隆Git浅表克隆可让您仅获取最新的提交,而不是整个回购历史记录。因而,如果您的我的项目具备多年的历史记录或数千次提交的历史记录,则能够抉择一个特定的深度进行提取。 如何执行Git浅克隆在git clone命令中提供--depth 1的参数,以仅复制仓库的最新版本: git clone -–depth [depth] [remote-url]您还能够应用git浅克隆拜访单个分支: git clone [近程URL] --branch [名称] --single-branch [文件夹]应用git浅克隆,您能够取得更少的文件。能够疾速实现克隆、构建和反馈,能够更快地交付。 解决方案:齐全删除不须要的历史记录如果您不须要保护残缺的历史记录,则能够应用以下命令集从Git存储库中齐全删除历史记录。将存储库克隆到工作站上的门路后,请应用 --orphan 选项,该选项只需一次提交即可将其返回到init状态。 如何修剪您的存储库git checkout --orphan freshBranch git add -A git commit git branch -D master git branch -m master git push -f origin master git gc --aggressive --prune = all git push -f origin master在门路中增加所有文件并提交。接下来,删除近程主分支,将以后分支重命名为 master。而后,将新的主服务器强制推入代码托管环境。最初,应用prune命令删除所有旧文件,而后将新状态推送到近程。 通过修剪您的存储库,能够进步克隆性能,而无需应用git浅克隆。打消不须要的历史记录能够加重您的存储库的累赘,从而使交付速度更快。 是否要重置本地存储库?您还能够应用 git force clone 齐全笼罩您的历史记录。但小心点。这将毁坏您的本地未推送批改。 ...

November 24, 2020 · 1 min · jiezi

关于git:Git-忽略项目中某些文件或文件夹

前言有些时候咱们不想将本地文件或文件夹提交到git近程仓库,这个时候咱们怎么做呢?咱们以前端我的项目中的config.js为例来阐明。 操作 1、疏忽本地文件 比方:近程仓库config.js export default { host: 'http://baidu.com'}我本地的config.js export default { host: 'http://localhost:8080'}当初咱们应用命令git pull origin master的时候,会呈现抵触,所以咱们不想提交本地的config.js永远不同步近程仓库外面的config.js,咱们能够如下操作: git update-index --assume-unchanged config.jsupdate-index --assume-unchanged的作用就是疏忽本地文件,这样咱们add和commit的时候就不会提交到线上了。 2、获取线上更新 尽管咱们胜利疏忽了config.js文件,然而有时候咱们又想获取最新的配置内容,但又不想提交,这个时候咱们能够应用上面操作命令: // 解除本地疏忽git update-index --no-assume-unchanged config.js// 暂存git stash// 拉取线上更新(这个时候把想要的配置复制下来)git pull origin master// 复原本地配置(把下面的配置粘贴过去)git stash apply// 从新疏忽git update-index --assume-unchanged config.js// 提交git push origin develop总结1、疏忽本地文件和文件夹很好的解决不想同步某些配置文件。2、疏忽本地文件夹 git update-index --assume-unchanged floder/ <疏忽文件夹>留神:疏忽文件夹时。前面的斜杠‘/’肯定要带上,否则会报错:fatal: Unable to mark file sessions援用git谬误解决:Your local changes to the following files would be overwritten by merge ...

November 21, 2020 · 1 min · jiezi

关于git:移除原先远程仓库新建并指向自己的远程仓库

背景:近期在github克隆下一个我的项目,并打算基于此我的项目本人批改开发,因为是克隆下来的,以后本地我的项目近程还是指向原近程仓库,想把本地我的项目移到本人的近程仓库里 操作: 1、与原近程仓库解绑 git remote rm origin 2、去本人的github上新建本人的近程仓库3、给本地仓库增加指向本人的近程仓库 git remote add origin https://github.com/xxxx/xxx.git # 前面是你本人的近程仓库地址4、(补充,已配置信息的可疏忽此步,我因为是近程服务器,之前没有配置过须要配置)如果你之前没有给本人的git配置信息的话,你须要先配置信息,否则是提交不下来的 git config --global user.email xxx@xx.comgit config --global user.name xxx # 配置前面的name和email写你本人的5、把本地代码提交 git add .git commit -m 'xx'6、推到近程仓库并设置一下分支指向,当前就能够间接push而省略近程分支名里 git pull origin mastergit push -u origin master最初把本人运行过程的终端贴个图

November 20, 2020 · 1 min · jiezi

关于git:解决TortoiseGit每次操作都要输用户名密码问题

1.问题形容每次应用TortoiseGit操作都会弹出让输出用户名、明码的框,不仅麻烦而且还影响效率。2.解决方案Right click → TortoiseGit → Settings → Git → Credential.设置为 wincred - this repository only 或者 wincred - current Windows user

November 20, 2020 · 1 min · jiezi

关于git:idea操作git连接

咱们在我的项目变动中通常会遇到更换git地址状况,这里介绍一个在idea我的项目中简略更换git地址操作:1、点击VCS;2、点击Git;3、点击Remotes;具体步骤如图4、点击框中链接即可在左边看到一个铅笔字样的按钮,即可看到如图所示弹窗;5、点击铅笔(编辑),看到新的弹窗,链接曾经被默认选中这时候粘贴新的git地址,点击OK即实现操作。 咱们能够再简略提交一次,即可发现新的提交历史曾经呈现在新的仓库中。不过这种状况可能会留存之前仓库的提交历史,如果不喜爱这个后果的你,能够尝试用git命令行来更换新的git地址。如果所言不妥,尽请不吝赐教!

November 18, 2020 · 1 min · jiezi

关于git:github个人项目添加合作者collaborator

github集体我的项目增加合作者(collaborator)如果你想和敌人合作开发个我的项目,想在同一个仓库中开发,能够增加这个敌人为合作者(collaborator),这样他登录本人的账号也能够在你的仓库push,提交代码都很不便。 步骤:我的项目 - Settings - Mange access - Invite a collaborator

November 17, 2020 · 1 min · jiezi

关于git:git-命令行的使用

根底命令: 查看版本: git --version log命令:git log: 显示 commit 记录 log参数:--pretty:输入 log 的格局.--pretty参数:参数形容emailuse email headers like From and Subjectformatspecify own formatfullall parts of commit messagesfullerlike full and includes datesmediummost parts of messagesonelinecommit-ids and subject of messagesrawthe raw commitsshortfew headers and only subject of messagespretty 自定义格局转义字符: 如何查看到上面的参数,输出上面命令后 git log --pretty=format:%, 应用 tab 键这个老朋友显示进去(tab键性能,列出可选项,或者间接补充残缺惟一选项) 这里比拟麻烦的是 这些参数有些是 %aD 这样的 第一次 tab 键显示进去的只是 第一个可选字符,如果你想晓得 %a 前面是否能够再填写其余,就在 %a 后 再持续 tab 列出来. ...

November 13, 2020 · 3 min · jiezi

关于git:git如何只修改中间的commit内容保持原有的顺序

背景敝司应用gerrit review代码,有工夫同时提交了三个commit,批改1、批改2、批改3,并且它们之间并没有完满解耦,有时候还存在前后依赖关系,后果只有第二个没通过review,这时候只想批改第二次commit的内容,而影响其余commit,怎么做呢? 办法1、再提交一次fix 批改22、git rebase -i HEAD~4 这时候能够看到如下:接下来批改成上面这样:保留退出,呈现上面的:批改成这样:保留退出,功败垂成。能够查看 git log

November 12, 2020 · 1 min · jiezi

关于git:深入浅出git六远端命令

后面的文章讲的命令都是操作本地仓库的,我置信能够应酬大部分的开发情况,提交代码到本地仓库曾经不是问题了,那么这次咱们就来看看如何和近程仓库进行对接。 git clone --- 克隆远端代码到本地当咱们进行开发的时候,开发流程是这样的:首先将近程仓库(地方仓库)的代码clone到本地,在本地进行开发,开发实现之后将代码提交到近程仓库。 近程仓库并不简单,实际上它们只是你的仓库在另外一台计算机上的拷贝,咱们能够通过网络和这台计算机通信--也就是减少或是获取提交记录。咱们先通过命令将远端仓库clone到本地 git clone https://github.com/generalthink/git_learn.git执行命令之后git仓库就从远端clone到本地了,此时本地和远端的代码统一。执行了这个命令之后咱们本地有什么变动呢?先查看咱们当初存在哪些分支 $ git branch -a* master remotes/origin/HEAD -> origin/master remotes/origin/master当咱们执行git clone的时候, Git 会为近程仓库中的每个分支在本地仓库中创立一个近程分支(比方 origin/master)。而后再创立一个跟踪近程仓库中流动分支的本地分支,默认状况下这个本地分支会被命名为 master。 你可能留神到了咱们除了本地的master分支,还多了origin/master的分支,这种类型的分支就叫近程分支,它反映了近程仓库在你上次和它通信的状态。还记得index那篇文章吗?index文件中记录了工作目录,暂存区,本地仓库的版本用于跟踪文件状态,那么近程仓库的状态由谁来保护呢?没错就是这个origin/master分支。 须要留神的是近程分支有一个特地的属性,当咱们检出时,主动进入拆散HEAD状态(此种状态下提交并不能影响origin/master分支).git这么做是出于不能间接在这些分支上进行操作的起因, 你必须在别的中央实现你的工作。 近程分支的命令标准是这样的:<remote name>/<branch name>,当咱们应用git clone某个仓库的时候,git曾经帮咱们把近程仓库的名称设置为origin了。 能够应用上面的命令来查看近程库对应的简短名称 $ git remote -vorigin https://github.com/generalthink/git_learn.git (fetch)origin https://github.com/generalthink/git_learn.git (push)下面咱们把远端仓库同步到了本地,远端和本地的代码就是统一的了(本地仓库中两个分支都指向的最新的提交记录)。 分支跟踪当咱们将本地master分支的代码push到近程的master分支(同时会更新近程分支origin/master)的时候,咱们只须要执行git push就能够了,就如同git晓得咱们它们是关联起来的! 其实master和origin/master的关联关系是由分支的"remote tracking"属性决定的,master被设定为跟踪origin/master -- 示意master指定了推送的目的地以及拉取后合并的指标。 能够让任意分支跟踪 origin/master, 而后该分支会像 master 分支一样失去隐含的 push 目的地以及 merge 的指标。 这意味着你能够在分支 bugFix上执行 git push,将工作推送到近程仓库的 master 分支上。咱们能够通过上面的两种办法创立一个bugFix的分支,它跟踪近程分支origin/master git checkout git checkout -b bugFix origin/mastergit branch ...

November 11, 2020 · 3 min · jiezi

关于git:深入浅出git五自由的修改提交记录

上篇文章讲了merge和rebase,咱们曾经能够在commit object形成的图(当然我更违心把它看成一棵树)下面进行分支的合并了,在图上咱们能够新增节点(git commit),合并节点(merge或者rebase),这篇咱们就来解说下挪动和删除节点。 在讲挪动和删除之前,咱们先来意识下HEAD的拆散。 拆散的HEAD咱们都晓得,HEAD是指向以后分支的,而拆散的HEAD就是让其指向了某个具体的提交记录而不是分支名。 当初我本地的提交记录是这样的 当咱们执行git checkout 062704b1c3a814dfd95695aba3684c22e3f3fa85之后HEAD就处于拆散状态。 挪动节点咱们能够通过指定提交记录hash的形式挪动指针的地位(无论是分支还是HEAD),然而理论中并没有那么直观的图给咱们看,就不得不应用git log来查看提交记录的hash,然而hash又比拟长,幸好git对hash的解决比拟智能,咱们只须要提供惟一标识提交记录的前几个字符就能够了,因而咱们能够只输出git checkout 0627就能够检出提交记录了。 通过hash值来挪动节点显然并不不便,所以git提供了绝对援用,这样咱们就能够从一个易于记忆的中央(比方bugFix分支或者HEAD)开始计算。 绝对援用绝对援用很给力,罕用的两种用法 应用^向上挪动1个提交记录应用~num向上挪动多个提交记录 当咱们执行git checkout master^的时候,咱们的HEAD就指向了上一个提交记录(以后记录的是一个记录),留神这里挪动的是提交记录(commit object),同理挪动多个记录也是一样的。 应用绝对援用最多的就是挪动分支,咱们能够命令间接让分支指向另外一个提交。 当初master分支就指向了第一个提交,须要留神的是不能在以后分支操作以后分支的挪动,否则你会有这样的谬误 fatal: Cannot force update the current branch.实现挪动之后并不会切换分支,依然处于之前的分支。 任意挪动如何能将提交树的commit object任意的挪动?让咱们的批改能够更加的随便,git cherry-pick就能做到。当初咱们想把bugFix分支上C2,C4的提交记录挪动到master分支上,只须要执行 git cherry-pick C2 C4这个命令能够"复制"提交节点并在以后分支做一次齐全一样的新提交 回退代码有的时候咱们的代码提交织了,然而曾经提交到git下来了,我想要回退怎么办?还好git提供了两种办法用来撤销变更----git reset以及git revert。 git resetgit reset通过把分支记录回退几个提交记录来实现撤销 改变,其实就是挪动在图上的指针。 git revert 咱们原本是要撤销C2提交的,然而为什么还多了一个C2'提交呢?这是因为新提交记录C2'引入了更改--这个更改又是用来撤销C2这个提交的,也就是说C2'的状态于C1是雷同的。revert之后就能够把更改push到近程仓库与他人分享了。

November 11, 2020 · 1 min · jiezi

关于git:如何解决git-pushpull操作时出现的Operation-timed-out

最近git push时常呈现Operation timed out,具体内容大略如下: $ git push origin 72ssh_dispatch_run_fatal: Connection to 192.30.255.112 port 22: Operation timed outfatal: Could not read from remote repository.Please make sure you have the correct access rightsand the repository exists.意思是说:在连贯近程地址的22端口时超时了,而后要查看权限和近程仓库是否存在。 首先在网页端是能够拜访到该仓库的,所以问题并没有出在提醒的权限或近程仓库。 解决步骤查看近程仓库地址查看我的项目下的.git/config文件,留神.git文件夹是暗藏文件夹。 [remote "origin"] url = git@github.com:yunzhiclub/xxxx.git fetch = +refs/heads/*:refs/remotes/origin/*得出近程仓库的地址是github.com SSH$ ssh github.companjie@github.com: Permission denied (publickey).提醒权限不容许,确认网络可能拜访近程主机22端口。如果不能拜访,那么须要在网络上找起因了。第一先看是否能ping通,如果能ping通,则看防火墙策略是否禁用了ssh连贯或22端口。 ping网络没有问题,那问题就应该呈现在证书上了。 ping github.companjieIMacdeiMac:app panjie$ ping github.comPING github.com (192.30.255.112): 56 data bytes64 bytes from 192.30.255.112: icmp_seq=0 ttl=36 time=297.969 ms失去github.com的ip地址为192.30.255.112。 ...

November 11, 2020 · 1 min · jiezi

关于git:Git-remote-报-authentication-failed-for问题

md ---“美德”明天,在写完代码提交的时候,给我报,我查看我的之前还能提交,然而当初这个我的项目不能提交,我看了一下我的问题后,终于找到了问题所在,原来是我的电脑凭据变更了。 上面是我的解决办法,仅供参考如有不对,请给我闭嘴,嘿嘿或者上面增加正确的办法: 1、进入“控制面板”——“用户账户”——凭据管理器——windows凭据: 2、输出你登入的gitee的账号和明码,编辑批改即可。

November 11, 2020 · 1 min · jiezi

关于git:深入浅出git四merge和rebase

通过后面实践的学习,置信对git的模型曾经有了一个比拟深刻的意识,在解说罕用开发命令之前,先看下git整体操作流程 咱们依照一个失常的开发流程来学习,咱们当初要开始开发了,首先咱们须要把近程仓库同步到本地 git clone https://github.com/generalthink/git_learn.git运行完下面的命令,在咱们的当前工作目录就会有一个git_learn的文件夹,其中存在.git目录(git保护仓库的根本)以及和近程仓库一样的文件,当初咱们的代码环境就和近程仓库统一了,咱们就能够开始咱们的开发流程了。 开发流程一般来说,无论是开发新性能(feature)还是批改bug(issue)咱们都不会间接在骨干上进行开发,而是会在分支上进行开发,而后验证无误之后在同步到master。当初忽然有了一个bug咱们要新开一个分支来解决这个bug,那么咱们应该怎么做呢? 首先,新建一个bugFix分支,并切换到这个分支 git branch bugFixgit checkout bugFix或者git checkout -b bugFix 新建一个分支,只是多了一个指针指向以后最新的提交而已,前面所有的提交都基于以后的分支,星号代表以后分支。 而后,找到bug的起因,批改对应的文件,当初咱们批改了几个文件,须要提交将它退出到咱们本地仓库,同步到近程仓库会在前面的文章解说。 退出批改的文件到暂存区git add *.java下面的操作实际上是使文件工作目录和暂存区的版本统一,然而当初和仓库的版本还不统一.想要查看具体存在哪些文件须要提交能够应用git status查看。 提交文件到本地仓库git commit -m "fix bug"commit命令实际上是让index中文件在暂存区和仓库的版本保持一致,通过这个步骤,工作目录,暂存区以及仓库的版本都是统一了,上面的图是提交前后commit objects(能够查看数据模型那篇文章)的变动。 你在批改bug的同时,其他人曾经往骨干分支上提交了其余性能的代码或者你本地原本就存在两个不同的分支,所以修复了这个bug之后,咱们的仓库看上去是这样的 合并分支这个bug修复后,被测试验证通过了,而后接下来想要把这个分支的代码合并到骨干分支(或者合并两个不同的分支),罕用的合并形式有2种 git merge将bugFix合并到master分支上 //切换到master分支git checkout mastergit merge bugFix 看到了没有,master指向了一个领有两个父节点的提交记录,如果从master开始沿着箭头向上看,在达到终点的路上会通过所有的提交记录,这意味着 master 蕴含了对代码库的所有批改。 这个时候如果你还想把master分支合并到bugFix分支也是能够的 git checkout bugFixgit merge master 因为 master 继承自 bugFix,Git 什么都不必做,只是简略地把 bugFix 挪动到 master 所指向的那个提交记录。当初所有提交记录的色彩都一样了,这表明每一个分支都蕴含了代码库的所有批改! git rebase第二种合并分支的办法是 git rebase。Rebase 实际上就是取出一系列的提交记录,“复制”它们,而后在另外一个中央一一的放下去。Rebase 的劣势就是能够发明更线性的提交历史. git rebase master ...

November 11, 2020 · 1 min · jiezi

关于git:深入浅出git三索引

暂存区从 gi t的角度来看,文件的批改波及到以下三个区域:工作目录, stage区(暂存区)以及本地仓库. 当咱们对咱们的我的项目做了一些批改(新增文件,删除文件,批改文件等),咱们解决的就是咱们的工作目录.这个目录是存在于咱们电脑的文件系统上的.所有的批改都会保留在工作目录直到咱们把它们退出到暂存区(通过git add命令)。 暂存区这是对下一次提交最好的示意形式,当咱们执行git commit,git会获取暂存区中的批改,并将这些批改作为下一次的提交内容.暂存区的一个理论作用就是容许你调整你的提交,你能够向暂存区新增和删除批改直到你对你下一次的提交称心,这个时候你就能够用git commit提交你的内容了。 在提交批改后,它们就会进入.git/objects目录,在其中被保留为commit,blob以及tree objects,(参考数据模型那一篇文章) 把暂存区认为是一个存储批改的实在区域并不精确,git没有专门的stage目录来寄存这些文件的批改(blobs),git有一个名为index的文件来跟踪这三个区域的批改:工作目录,暂存区以及本地仓库。 当咱们增加批改到暂存区的时候,git会更新index文件中的信息,并且创立一个新的blob object,而后将它们放到与之前提交的记录所产生的其余blob雷同的.git/objects目录中。 index的变动接下来咱们就通过一个失常的git流程来演示下git如何应用的index 首先在咱们的仓库外面有master以及feature两个分支,如果咱们执行上面的命令,会有三件事件产生 git checkout feature第一,git会挪动HEAD指针来指向feature分支,为了更加便于了解,咱们只显示性能分支的最初一次提交 第二,git将获取feautre分支指向的提交内容并将其增加到索引中 咱们留神到index是一个文件而不是目录,所以git是没有往其中存储内容的,git只是存储咱们仓库中每个文件的信息而已,相似于下面这样 mtime : 上次更新工夫file : 文件名称wdir : 工作目录中文件版本stage : index中文件版本repo : 仓库中的文件版本文件版本以校验和来标识,如果两个文件有雷同的校验和,那么它们就有一样的内容以及版本. 最初,git会将你的工作目录和HEAD指向的内容相匹配(它将应用树和blob对象从新创立我的项目目录的内容) 所以,当你应用checkout的时候,工作目录,暂存区以及仓库都是雷同的版本咱们来看看当咱们编辑Main.java的时候会产生什么? 当初仅仅只影响了咱们的工作目录,然而咱们运行上面的命令的时候 git statusgit 首先会更新index文件中Main.java的工作目录的版本 而后咱们看到Main.java在工作目录和暂存区有不同的版本 而后git会提醒咱们 On branch featureChanges not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory)modified: Main.javano changes added to commit (use "git add" and/or "git commit -a")这就表明工作目录的批改不在暂存区中(那么下一次的提交就不会蕴含Main.java的批改). ...

November 10, 2020 · 1 min · jiezi

关于git:十年开发Git操作总结应该很全面了

写在后面你应用过 Git 吗?或者你还未接触过Git,或者你曾经应用了一段时间,但它或者依然令你困惑。本文次要解说本人学习Git的办法以及解决本人遇见的各种Git问题。首先强烈给大家举荐掘金小册 Git 原理详解及实用指南。(不是托????) 如果你是新人,读了这本小册并且跟着实际操作,你会对Git有一个大抵的理解。如果你曾经应用过一段时间Git,读了该小册之后,会让你有一种醍醐灌顶的感觉。该小册倡议倡议重复浏览(我感觉至多三次),每次浏览之后你都会有不一样的播种。*Git常用命令git四连git add . 将所有改变放进暂存区git commit -m "形容" 提交并附带概要信息git pull 从近程仓库拉去代码git push 推送代码到近程仓库(master分支) 其余常用命令git log 查看日志git log -p 查看具体历史git log --stat 查看简要统计git status 查看工作区状态git branch 名称 创立分支git checkout 名称 切换分支git checkout -b 名称 创立并切换到新分支git branch -d 名称 删除该分支(不能删除以后所在的分支,不能删除没有合并到master上的分支)git branch -D 名称 删除该分支(能够删除没有合并到master上的分支)git commit --amend 对最新的一条commit进行修改git reset --hard HEAD^ 抛弃最新提交(未提交的内容会被擦掉)git reset --soft HEAD^ 抛弃最新提交(未提交的内容不会被擦掉)git revert HEAD^ 回到某个commitgit rebase 指标根底点 从新设置根底点git merge 名称 将分支合并到head指向的分支git push origin localbranch 将代码推送到近程仓库的指定分支git push -d origin branchName 删除近程分支git stash 暂存代码git stash pop 弹出暂存代码 ...

November 10, 2020 · 2 min · jiezi

关于git:深入浅出git二分支

在开发软件的时候,可能很多人会同时为同一个软件开发性能或者修复bug,然而如果都在主分支来进行开发,引起抵触的概率将会大大增加,而且也不利于保护,如果你同时批改多个bug该怎么办?所幸,git的分支性能很好的帮忙咱们解决了这个问题,它能够帮忙咱们同时进行多个性能的开发和版本治理.请在浏览这篇文章之前,务必先浏览深入浅出git——数据模型,这样能力更好的帮忙你了解git中的分支.想晓得为什么git中新建一个分支那么快,代价那么小吗?接下来咱们就来揭开分支神秘的面纱。 这次我会只显示commit objects来简化它,并且为了让它更容易了解我会给他们取个别名来代替本来的测验和.所以对于提交记录,咱们会失去一个像上面这样的图. 相熟图论的应该留神到了下面的是一个有向无环图(DAG),这意味着从一个节点开始沿着边的方向不会通过雷同的节点.在咱们的例图中能够清晰的发现存在三个不同的分支,咱们别离用红色(蕴含A,B,C,D,E),蓝色(A,B,F,G),以及绿色(A,B,H,I,J)来标记它们 这就是定义分支的一种形式-蕴含所有的提交列表.然而这不是git应用的形式,git应用更简略更便宜的形式,git只跟踪分支上的最初一次提交,而不是持有某个分支的所有列表并更新它们,只须要晓得分支的最初一次提交,而后依据图的有向边就能够获取整个提交列表.例如要定义咱们的蓝色分支,只须要晓得蓝色分支的最初一次提交是G,如果咱们须要蓝色分支蕴含的所有提交的列表,就从G沿着图有向边遍历即可. 这就是git治理分支的形式,通过放弃执行提交记录的指针即可,接下来咱们会进行一个演示.首先通过git init初始化一个空仓库,而后查看.git目录下存在的文件 .git|-- HEAD|-- config|-- description|-- hooks| |-- applypatch-msg.sample| |-- commit-msg.sample| |-- fsmonitor-watchman.sample| |-- post-update.sample| |-- pre-applypatch.sample| |-- pre-commit.sample| |-- pre-push.sample| |-- pre-rebase.sample| |-- pre-receive.sample| |-- prepare-commit-msg.sample| |-- update.sample|-- info| -- exclude|-- objects| |-- info| |-- pack|-- refs |-- heads |-- tags这次咱们关注refs这个子目录,这个中央是git保留分支指针的地儿.当咱们没有提交任何货色的时候,refs目录下只存在两个空目录,当初咱们提交几个文件 echo "Hello Java" > helloJava.txtgit add .git commit -m "Hello Java Commit"echo "Hello Php" > helloPhp.txtgit add .git commit -m "Hello Php Commit"echo "Hello Python" > helloPython.txtgit add .git commit -m "Hello Python Commit"当咱们执行git branch的时候咱们能够看到上面这样的输入 ...

November 10, 2020 · 1 min · jiezi

关于git:Git-常用命令参考手册

尽管每天都在应用Git,然而有些命令太久不应用,还是会遗记,所以这篇笔记的目标就是整顿那些Git 常用命令。 根底配置Git的设置文件为.gitconfig,它能够在用户主目录下(全局配置),也能够在我的项目目录下(我的项目配置)。 # 查看全局配置列表$ git config --global --list# 查看部分配置列表$ git config --local --list# 设置全局用户名/邮箱$ git config --global user.name "yourName"$ git config --global user.email "example@example.com"# 设置本地当前工作区仓库用户名/邮箱$ git config --local user.name "yourName"$ git config --local user.email "example@example.com"# 将默认文本编辑器设置为 emacs/vim$ git config --global core.editor emacs/vim# 编辑以后仓库的配置文件$ git config -e # 等价与 vim .git/config# 编辑全局配置文件$ git config --global -e命令别名配置# 增加别名 git st = git status$ git config --global alias.st status# 删除 st 别名$ git config --global --unset alias.st# 执行外部命令, 只有在后面加 ! 即可$ git config --global alias.st '!echo hello';代理配置如果想晓得对于Git配置代理的更多信息,能够查阅这篇笔记。 ...

November 10, 2020 · 4 min · jiezi

关于git:git使用规范

代码提交习惯代码(或其余工作内容)禁止长时间暂存在本地,倡议每天(或更短)保留到服务器,以避免电脑故障带来的损失。另外为与团队及时交换,倡议尽早提交merge request(未实现可标记为WIP状态),个别要求不超过1周(工夫越短越好)。 根本开发流程fork我的项目到本人名下,同时配置好这个fork我的项目的CI(留神,须要配置正确的gitlab runner,可能须要runner所有者受权)本地增加两个remote: 源我的项目(origin)和本人名下的fork(${your-remote-name}) git remote add ${your-remote-name} git@xyz.com:your-name/project-name.git创立本地开发分支(每个Commit只做一件事件) git checkout -b name_of_the_feature_branch进行代码批改,保障必要的检查和测试在本地通过实现批改,commit到本地(commit message要符合规范,参考相应内容)git push commit到本人的fork,并发动merge request git push ${your-remote-name} name_of_the_feature_branch填写merge request信息,并关注对应CI运行后果推动reviewer进行code review并依据review意见批改代码如果通过review产生有多个commits,倡议通过git rebase -i进行squash后提交,保障commit log简略明且符合规范最终由reviewer合并代码其余注意事项 合并抵触,个别应该应用rebase而非mergegitlab我的项目倡议设置成Fast-forward mergegitlab我的项目倡议设置成Pipelines must succeed和All discussions must be resolved一个merge request,如果其他人review过,除非永恒敞开,否则不应该敞开从新发新的merge request,这样会失落reviewCommit message标准作用一个规范化的commit message,有以下作用: 让其余合作者能清晰精确的揣测出这个commit的内容能便捷甚至自动化的生成好看的Release Notes或CHANGELOG标准细则应用英文(业务相干我的项目除外)大写字母结尾(非凡状况除外),简练但具体的形容好的例子: Support LeakyReLU conversion from TensorFlowAdd Gather and Scatter ops for DenseTensor坏的例子: Fixing broken linksSome fixFix compatibility bug附加类别标签前缀(可选,依据我的项目而定,例如我的项目须要进行正规的Release治理),格局参考git-chglog或AngularJS Git Commit Message Conventions类型阐明feat性能开发fixbug fixperf性能优化docs增加文档style代码格调批改refactor性能不变的重构test补充测试chore维护性工作例如: feat: Add Gather and Scatter ops for DenseTensor版本号标准我的项目版本号命名规定遵循语义化版本SemVer标准: ...

November 10, 2020 · 1 min · jiezi

关于git:深入浅出git一数据模型

自2005年诞生以来,git 曾经在开源世界中大受欢迎,咱们中的许多人也在咱们的工作岗位上应用它。 它是一个很棒的VCS工具,具备很多长处,但易于学习并不是其中之一。 对于 git 如果只会死记硬背命令那么要不了多久你就会遗记,而后一而再而三的背诵,无疑让人很受打击,在我看来,相熟应用 git 甚至开始喜爱它的惟一办法是理解它如何在外部工作。 git 命令只是对数据存储的形象,如果不理解 git 的工作原理,无论咱们在笔记中记忆或存储了多少 git 命令或技巧咱们依然会对git的应用感到困惑.而git则是通过形象的命令来裸露它的数据结构的应用办法. 所以这边文章咱们更多的要关注 git 的外部关系-数据模型,当然这篇文章不会波及到 git 的源码. 筹备工作初始化仓库为了解说数据模型,咱们首先要在本人的工作目录下初始化一个空的 git 仓库 git initgit会告知咱们曾经在以后的目录下创立了一个 .git 目录,咱们来看看这个 .git 长什么样子. $ tree .git/.git|-- HEAD|-- config|-- description|-- hooks| |-- applypatch-msg.sample| |-- commit-msg.sample| |-- fsmonitor-watchman.sample| |-- post-update.sample| |-- pre-applypatch.sample| |-- pre-commit.sample| |-- pre-push.sample| |-- pre-rebase.sample| |-- pre-receive.sample| |-- prepare-commit-msg.sample| |-- update.sample|-- info| |-- exclude|-- objects| |-- info| |-- pack|-- refs |-- heads |-- tags8 directories, 15 files其中一些文件和目录是不是看着有些相熟,当初咱们次要还是看objects这个目录,当初它是空的,然而一会儿咱们就会扭转它. ...

November 10, 2020 · 2 min · jiezi

关于git:Git老鸟查询手册

Git老鸟查问手册 作者:hackett 微信公众号:加班猿 1.用户名,邮箱配置 git config --global user.name "用户名" git config --global user.email "邮箱"2.创立仓库 git init #当前目录创立仓库3.增加文件到暂存区 git add readme.txt #readme.txt为须要增加的文件4.提交 git commit -m "add a readme file."# -m 前面为提交记录5.修改最初一次提交 git --amend #简略地来说,能够了解成对最初一次提交做修改。<前提是以后最初一次提交没有`merge`>6.查看以后仓库状态 git status #以后仓库状态7.查看文件不同之处 git diff readme.txt #readme.txt为须要查看的文件8.查看提交日志记录 git log  git log --pretty=oneline #显示一行日志 git log --graph --pretty=oneline --abbrev-commit#第一个参数是图形查看 第二个是显示一行记录 第三个是简略模式显示commit9.版本回退 git reset --hard HEAD^ #回退到上一个版本  git reset --hard HEAD^^ #回退到上上个版本  git reset --hard HEAD~100 #回退到前100个版本  git reset --hard 1094a #回退到特定版本号的版本 10.查看历史记录的版本号id git reflog #用来复原本地错误操作很重要的一个命令11.查看文件工作区和版本库的区别 git diff HEAD -- readme.txt #readme.txt的区别12.撤销工作区的批改(误删复原) git checkout -- readme.txt #撤销工作区readme.txt的批改13.撤销暂存区的批改(add后撤销) git reset HEAD readme.txt ##撤销暂存区readme.txt的批改14.删除文件 git rm test.txt #删除文件test.txt15.关联近程仓库 git remote add origin SSH链接 #换成本人想要关联的链接(仓库名) git remote rm origin #删除关联16.第一次推送 git push -u origin master 17.日常推送 git push origin master18.克隆仓库 git clone SSH链接 #换成本人想要克隆的链接(仓库名)19.创立分支 git branch dev #创立一个名为dev的分支20.切换分支 git checkout master #工作区已扭转的复原  git switch master #工作区内容不变21.创立并切换到分支 git checkout -b dev git switch -c dev #新版本命令22.查看分支 git branch23.合并指定分支到以后分支 git merge dev #合并dev分支 24.删除分支 git branch -d dev  git branch -D feature-vulcan #强制删除25.查看分支的合并状况 git log --graph --prett=oneline --abbrev-commit26.禁用Fast forward模式 git merge --no-ff -m "merge with no-ff" dev27.保留以后的工作区 git stash28.查看保留记录 git stash list29.保留记录操作 git stash apply #复原  git stash pop #复原并删除  git stash drop #删除记录  git stash apply stash@{0} #利用保留的记录30.合并修复的bug到分支 git cherry-pick 4c805e2 31.推送失败后,先合并 git pull  git branch --set-upstream-to=origin/dev dev  #pull失败提醒no tracking information时应用 32.打标签 git tag v1.0  git tag v0.9 f52c633` git tag v0.8 0a1a47 -m "test tag" 33.列出所有标签 git tag 34.查看标签详情 git show v0.9 35.删除标签 git tag -d v0.8 36.推送标签 git push origin v1.0  git push origin --tags  #推送全副标签37.删除推送的标签 git tag -d v1.0  git push origin :refs/tags/v1.0 如果你感觉文章还不错,记得"点赞关注" ...

November 9, 2020 · 2 min · jiezi

关于git:云小课版本管理发展史之Git代码托管

摘要:抉择一款版本管理工具,曾经被大多数企业作为我的项目的必要筹备工作之一,置信没有一个开发者没有听过Git、SVN这些工具。 明天咱们来寻根溯源,扒一扒版本治理的发展史。版本管理工具之于软件开发,犹如地基之于修建。这句话真是再贴切不过了,当我的项目越做越大,迭代越来越频繁,版本管理工具变得越来越具备必要性。 有了版本管理工具,咱们能够更不便地浏览、检出所有开发过程的历史版本与批改记录,做任何批改都不再胆怯,因为你能够轻易的还原回任意一个版本并且通晓每一次批改的起因。甚至你能够从历史版中独自抽出某一次批改,将它放到另一个版本中。 咱们也能够通过版本管理工具来同时并行批改和公布软件的不同版本,例如公测版本、付费版本和开发中版本。 抉择一款版本管理工具,曾经被大多数企业作为我的项目的必要筹备工作之一,置信没有一个开发者没有听过Git、SVN这些工具。 明天咱们来寻根溯源,扒一扒版本治理的发展史。 版本治理发展史 上图是版本治理发展史的里程碑图,上面咱们将其分成四个阶段具体来说说。 史前时代 手动备份在批改文件之前将它手动备份一份,名称做上标记,这就是最早的版本治理。 手动备份的存在,阐明了人们须要版本管理工具。 农耕时代 本地版本管理工具如同农耕时代的信息灵通一样,第一批产生的版本管理工具被称为本地版本管理工具,它们只被赋予在一台服务器上管理文件版本的能力,并不具备联网、交互的个性。 其中比拟有代表性的是1982 年由米国普渡大学的 Walter F. Tichy 首次公布的RCS(Revision Control System),它比Linux的内核公布还要早9年,最后是为了代替世界上第一款版本管理软件(SCCS,1972,用于Unix零碎)所研发的,起初RCS只利用在Unix零碎,而后移植到Linux平台,甚至还有利用于Windows平台的可执行程序。 尽管它们曾经慢慢被人们淡忘,然而毕竟是版本治理畛域的文化启蒙之作,现在你仍能从各大开源网站找到它们的源码。 这个时代也产生了锁的概念。 通过加锁能够将并发提交转换成程序提交,防止了同一文件被多人同时批改,这也是最后的版本控制伎俩之一。 帝国时代 集中式版本管理工具集中式版本管理工具的特点是,用一个服务器来保留所有文件的订正版本,而协同工作的人们都通过客户端连到这台服务器,下载最新的代码或是更新提交,这像极了中央集权制的帝国时代。 其毛病很显著,就是如果服务器挂了,所有参与者都无奈工作了,并且工作成绩有可能就此失落。 然而集中式版本管理工具的呈现,解决了软件行业遇到的第一个史诗级问题——跨地区协同开发。 有问题,就会呈现解决问题的英雄,一位名叫 Dick Grune 的荷兰科学家在 1986 年开发了一款名叫CVS(Concurrent Versions System)的版本管理工具,这是世界上第一款集中式版本管理工具,它的设计初衷就是解决跨地区协同开发带来的不便。 过后Dick和他的两名学生正在单干实现一个编译器我的项目,一个学生是朝九晚五的稳固工人,另一个学生的工夫是不法则的,而Dick自己只能在早晨做这个我的项目,显然三个人没法坐到一起实现我的项目,为此Dick在RCS的根底上研发了CVS。 CVS曾是世界上最为风行的版本管理软件,这种状况继续了十余年,直到 2000 年被 Subversion(SVN) 所取代。 SVN设计的目标就是创立一个更好用的版本管理系统以取代 CVS,比拟乏味的是,SVN在研发初期是应用CVS来治理其源代码的,并且其次要研发者是CVS畅销书《Open Source Development with CVS》的作者Karl Fogel,Karl和他的敌人Jim Blandy在CollabNet公司的赞助下从2000年2月开始研发SVN,用了14个月的工夫,终于在2001年8月31号让SVN 能够“自我寄生”了,就是说,SVN开发人员停止使用CVS治理 SVN的源代码,开始应用SVN代替。 2010 年 1 月,SVN正式成被 Apache 软件基金会接管,并成为一个顶级我的项目,现在(2020年)SVN依然是集中式版本管理工具中的江湖扛把子。 SVN也是独创应用分支零碎的版本管理软件,尽管其起初仅能将所有文件备份做为一个分支,但也对今后版本管理软件的倒退产生了深厚的影响。 分支,能够了解为一个我的项目中平行存在的几套代码,它们能够彼此独立被批改,也能够被合并。 共产主义时代 分布式版本管理工具分布式版本管理系统的最大特点就是客户端并不只从服务器提取最新版本的文件快照,而是把仓库残缺的镜像下来,包含了残缺的历史记录。 ...

November 9, 2020 · 1 min · jiezi

关于git:Git-常用命令总结

1、配置 Git设置用户名和电子邮件git config --global user.name "用户名"git config --global user.email "邮箱"生成 SSH 公钥ssh-keygen –t rsa –C “email”2、Git 最根本命令初始化本地仓库git init增加文件到暂存区git add fileName // 增加指定文件到暂存区git add . // 增加全副文件到暂存区将暂存区文件提交至本地仓库git commit -m “commitInfo”将本地仓库提交至近程仓库git push查看仓库状态git status查看文件变动git diff3、版本回退 / 切换查看提交的记录信息git loggit log –pretty=oneline // 一行内显示查看版本变动信息(获取commit_id)git reflog // 最后面的为commit_id,用于回退到指定版本回退到上一版本git reset –hard HEAD^回退到指定版本git reset –hard “commit_id”4、分支操作(重要)创立新分支git branch branch_name查看所有分支git branch切换到指定分支git switch branch_name分支合并git merge branch_name查看分支合并情况git log –-graph –pretty=oneline –abbrev-commit删除分支git branch -d branch_name5、联合近程仓库操作将本地仓库与近程仓库关联(创立仓库形式1.1)git remote add origin “仓库地址”将近程仓库拉取到本地仓库(创立仓库形式1.2)git pull origin master克隆近程仓库到本地仓库(创立仓库形式2)git clone url查看近程仓库分支git branch -r将新创建的分支推送到近程仓库git push origin branch_name // 后续若需将本地仓库内容提交也执行该命令将本地仓库内容提交到近程仓库git push origin branch_name6、标签治理给以后版本打上标签git tag tag_name // tag_name 个别具备意义,如版本号 V2.0创立带阐明的标签git tag -a tag_name-m "message" commit_id // message为标签阐明信息,如version2.0 released查看所有标签git tag查找以前的版本(获取commit_id)git log --pretty=oneline --abbrev-commit给指定版本打上标签信息git tag tag_name commit_id 查看指定标签的版本信息git show tag_name

November 8, 2020 · 1 min · jiezi

关于git:git上传项目到码云

git上传我的项目到码云1.开发环境 windows10专业版2.在开发的过程中,咱们常常会应用到 git命令进行上传我的项目,上面我来分享一下,应用git上传我的项目到码云,心愿对你有所帮忙!3.新建一个文件夹,应用 git的 bash!而后之后一下命令 1.git init //初始化2.git config user.name //初始化用户名,只有在第一次应用的时候,须要配置3.git config user.email //初始化邮箱4.git remote add origin 'https://' //关联仓库地址5.git remote -v //查看近程仓库信息6.gt pull origin master //将近程仓库的README文件 pull(下载)下来7.git add . //将代码存起来8.git commit -m '提交正文'9.git push origin master //提交4.本期的分享到了这里就完结啦,是不是很nice,心愿对你有所帮忙,让咱们一起致力走向巅峰!

November 6, 2020 · 1 min · jiezi

关于git:优秀-华为是这样使用Git-rebase的

世界上最快的捷径,就是好高鹜远,本文已收录【架构技术专栏】关注这个喜爱分享的中央。引言应用git参加多人之间的合作开发大略有三年的工夫,大多数场景下应用的git命令一只手多一点就能数的过去 git addgit commitgit pushgit mergegit pullgit log实践上来说,只有能正当治理我的项目分支,这几个命令曾经足以应酬所有的日常开发工作。然而如果咱们偶然看一下本人的git graph,我的天呐,为什么会这么乱。 鉴于分支治理的凌乱(或者基本就没有进行过分支治理),咱们常常遇到一些意想不到的问题,因而须要应用很多面生的git命令来解决咱们的问题,比如说本文讲到的git rebase。 git rebase 和 git merge 区别Git rebase 的中文名是变基,就是扭转一次提交记录的base。在这一环节,咱们无妨带着这样一个假如:git rebase ≈ git merge,并用两种命令实现同一工作流来比照他们之间的异同。 回忆咱们日常的工作流,假如a和b两人合作开发,三个分支:develop, develop_a, develop_b。两个人别离在develop_a和develop_b分支上进行日常开发,阶段性地合入到develop。 那么从a的角度来看,可能的工作流是这样的: (1)集体在develop_a分支上开发本人的性能 (2)在这期间其他人可能一直向develop合入新个性 (3)集体性能开发结束后通过merge 的形式合入他人开发的性能 git merge<img src="https://imgkr2.cn-bj.ufileos.com/8cc6cb08-2204-41f3-81fd-7ed6fdfe93c4.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=m4aOEBDAYY81ui7sIjaOojyXJro%253D&Expires=1604394415" alt="img" style="zoom:50%;" /> 上图为日常merge 工作流,对应的git操作命令如下: git checkout develop_a// 本地性能开发...git pull origin develop = git fetch origin develop + git merge develop复制代码git rebase同样走完这样一个工作流如果咱们应用git rebase来实现,后果如下: git rebase 之前,如图: <img src="https://imgkr2.cn-bj.ufileos.com/b91971db-ef92-42b1-98d9-c06bd36bc3c6.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=JwrW9r03NwUSfrGx1COB7atRCqI%253D&Expires=1604394434" alt="img" style="zoom:50%;" /> git rebase 之中,如图: <img src="https://imgkr2.cn-bj.ufileos.com/cb7eb279-95f0-4218-8e15-0ece04b1613f.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=nQx3CttQG6lmgb6qDWdNfRslDxc%253D&Expires=1604394450" alt="img" style="zoom:50%;" /> git rebase 之后,如图: ...

November 2, 2020 · 2 min · jiezi

关于git:git使用总结

一、Git的装置Windows版的Git,从https://git-scm.com/download/...。装置实现后,右键关上菜单栏找到“Git”->“Git Bash”,蹦出一个相似命令行窗口的货色,就阐明Git装置胜利! 装置实现后,还须要最初一步设置,在命令行输出:git config --global user.name "Your Name"git config --global user.email "email@example.com"备注:以上两步的名字和邮箱可随便配置,但最好应用本人的邮箱。 git config user.name 用于查看配置的姓名git config user.email 用于查看配置的邮箱因为Git是分布式版本控制系统,所以每个机器都必须自报家门:你的名字和Email地址。二、 Linux的命令mkdir xxx 新建文件夹vi x.txt 新建文件(Visual editor) 1.输出 i 进入编辑模式 ESC + :+ wq 保留并退出ESC + :+ q! 不保留并退出cd xxx 进入xxx目录cd .. 返回上一级目录ls 列出以后文件夹中所有文件pwd 显示当前目录cat x.txt 显示文件内容clear 清屏三、 工作区+版本区+暂存区工作区(working Directory):简略的了解——你在电脑里能看到的目录。暂存区(stage):介于工作区和版本区两头,工作区到版本区的“必经之路”版本库(Repository):工作区有一个暗藏目录.git,精确的来说这个不算工作区,而是Git的版本库。 第一步:git add把文件增加进暂存区。第二步:git commit把暂存区的所有内容提交到以后版本库。四、 创立版本库git init命令:初始化版本库 创立胜利会提醒:Initialized empty Git repository in c:/Users/xxx/Desktop/demogit/.git/目录上多出一个.git的文件夹,这个文件夹是Git来跟踪治理版本库的,不要去批改和删除这个文件里的内容。 git add x.xx命令:增加指定文件到暂存区中1.没有任何提醒,代表交胜利了 2.若未初始化,会提醒fatal: Not a git repository (or any of the parent directories): .git ...

November 2, 2020 · 1 min · jiezi

关于git:Git

下载https://git-scm.com/ 装置傻瓜式装置 装置好后 右键桌面能看到两个git图标 把一般我的项目变成git我的项目我的项目初始化进入到我的项目里执行 git init 查看文件状态红色代表该文件还没有被跟踪,还在工作区 增加到暂存区git add a.txt (git add . 把所有的文件增加到暂存区) 提交到本地仓库git commit -m " 准注一下提交的哪个文件 "** 提交后会报错 不晓得是谁提交的 依据提醒设置个人信息就OK了,再次提交 配置个人信息 查看配置信息 git config -l 再次查看状态 如下示意:工作区和本地仓库统一批改工作区文件后 再次查看状态 显示文件已被更改(红色)再次 增加到暂存区——提交到本地仓库 交由Git近程仓库1.Gitee 2.GitHub3.GitLib4.本人搭建Git服务器 关联近程仓库git remote add origin 近程仓库地址(origin就是近程仓库的别名)查看近程仓库地址 git remote -v 从本地master代码推送到近程仓库git push origin master 克隆代码进入指定的地位(代码要寄存的地位)执行 git clone 代码地址 进行批改后 又将批改的传上去后 须要主我的项目把减少的文件拉进来git pull origin master 分支查看有哪些分支git branch 创立分支 ——devgit branch dev ...

October 30, 2020 · 1 min · jiezi

关于git:Git

版本治理版本治理是一种记录文件变动的形式,以便未来查阅特定版本的文件内容。 GitGit是一个版本治理控制系统(缩写VCS),它能够在任何工夫点,将文档的状态作为更新记录保存起来,也能够在任何工夫点,将更新记录复原回来. Git装置Git装置:https://git-scm.com/Git工作流程git仓库:用于寄存提交记录暂存区:长期寄存批改的文件工作目录:git治理我的项目目录。

October 29, 2020 · 1 min · jiezi

关于git:字节研发设施下的-Git-工作流

Git 提供了丰盛的分支策略和工作流形式,咱们在深刻学习业界 Git 工作流时,每种工作流都设计的十分好,仿佛都能使用到团队实际。但在引入 Git 工作流标准开发时要注意:Git 工作流仅仅是整个研发流程中的一环。上游项目管理/缺点追踪零碎虎视眈眈,上游 CD (Continuous Delivery) 嗷嗷待哺,还得思考团队规模、产品状态、发版形式等等因素。因而,在团队中落地 Git 工作流标准并不是一件能轻松决定的事。字节跳动 Git 仓库无效的 CR (Code Review) 覆盖率 70%,仍有晋升空间,通过调研,团队中又以 GitHub Flow 模式居多。随着字节研发效力建设愈发欠缺,GitHub Flow 已无奈充分利用研发设施进行提效并保障工程质量,很多团队均意识到这点并着手建设流程标准。本文通过介绍业界 Git 工作流和公司研发设施现状,力求从仓库状态、部署流程等多角度进行剖析,给出一些制订工作流标准的倡议。 业界 Git 工作流介绍Git Flow 高级 Git 开发者,面对这满图的分支和 merge 指向,几乎想手撕作者。高级 Git 开发者要将这个流程使用实际也大感头疼。 Git Flow 有不少长处: 分支各司其职,笼罩大部分开发场景。预期 master 分支中任何 commit 都是可部署的。严格依照流程执行,呈现重大事故的情景会大大降低。毛病也不少: 过于繁琐,无奈要求所有团队成员依照这个流程严格执行。违反 git 提倡的 short-lived 分支准则。master 分支历史记录并不洁净,只能通过打 Tag 标记哪些是 master 真正要部署的。对继续部署和 monorepo 仓库不敌对。GitHub FlowGitHub Flow 是一个基于分支的轻量级工作流。它突出了 CR 的重要性,有助于咱们把握 CR 的开发模式,但它没有解答部署、环境、公布、集成等问题。 ...

October 29, 2020 · 2 min · jiezi

关于git:从一个git仓库拷贝到另一个git仓库

利用git从一个仓库拷贝一个我的项目到另一个仓库,并且log也可能一起过来。 1、从原地址克隆一份裸版本库,比方本来托管于 GitHub。 git clone --bare http://github....(原始仓库地址)  2、进入克隆下来的目录 cd project.git(project即为你的项目名称) 3、以镜像推送的形式上传代码到新的仓库地址。 git push --mirror http://...(指标仓库地址)

October 29, 2020 · 1 min · jiezi

关于git:Git高级使用教程

Git 与 SVN 区别Git是一个开源的分布式版本控制系统,用于麻利高效地解决任何或小或大的我的项目。Git 是 Linus Torvalds 为了帮忙治理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与罕用的版本控制工具 CVS, Subversion 等不同,它采纳了分布式版本库的形式,不用服务器端软件反对。 GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。如果你是一个具备应用SVN背景的人,你须要做肯定的思维转换,来适应GIT提供的一些概念和特色。Git 与 SVN 区别点:1、GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最外围的区别。2、GIT把内容按元数据形式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息暗藏在一个相似.svn,.cvs等的文件夹里。3、GIT分支和SVN的分支不同:分支在SVN中一点不特地,就是版本库中的另外的一个目录。4、GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT短少的最大的一个特色。5、GIT的内容完整性要优于SVN:GIT的内容存储应用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时升高对版本库的毁坏。 Git工作原理Git工作流程能够分一下步骤: 克隆 Git 资源作为工作目录;在克隆的资源上增加或批改文件;如果其他人批改了,你能够更新资源;在提交前查看批改。提交批改;在批改实现后,如果发现错误,能够撤回提交并再次批改并提交; Git 工作区、暂存区和版本库: 工作区:就是你在电脑里能看到的目录。暂存区:英文叫stage, 或index。个别寄存在"git目录"下的index文件(.git/index)中,所以咱们把暂存区有时也叫作索引(index)。版本库:工作区有一个暗藏目录.git,这个不算工作区,而是Git的版本库。 常见操作全局配置用户信息git config --global user.name "smyhvae"git config --global user.email "smyhvae@163.com"Git 创立仓库git init repository如果当前目录下有几个文件想要纳入版本控制,须要先用 git add 命令通知 Git 开始对这些文件进行跟踪,而后提交: $ git add *.c$ git add README$ git commit -m 'initial project version'从现有仓库克隆$ git clone git://github.com/test/test.gitGit基本操作命令git init创立我的项目命令,在目录中创立新的 Git 仓库。 你能够在任何时候、任何目录中这么做,齐全是本地化的。在目录中执行 git init,就能够创立一个 Git 仓库。 ...

October 25, 2020 · 3 min · jiezi

关于git:git常见操作和指令

1.指令集1.1 本地与近程操作创立文件 echo > README.md(文件名)创立文件时输出信息 echo "(message)" >> README.md (文件名)初始化本地仓库 git init增加文件放入缓存流中 git add . (点"."示意增加以后文件夹全副文件,增加某个文件间接应用文件名)克隆近程仓库 git clone 仓库地址把缓存内容放进发送头 git commit -m "xx" (“xx”为对本次上传作的阐明)增加remote地址 git remote add origin 新地址查看remote地址 git remote -v删除remote地址 git remote rm origin拉取近程内容 git pull --rebase origin master提交至近程 git push (-u) origin 分支名 (-f) (第一次提交加上-u,强行提交疏忽近程批改加-f)1.2 分支相干新建分支 git branch 新分支名 (SHA值)(如果新建的分支是某个分支的拷贝,需加上SHA值,该值可在git log中找到)批改以后分支名 git branch -M main(新分支名)(参数-M跟-m区别:前者即使新的分支名曾经存在也会批改,后者则不会)删除分支 git branch -D main(分支名)查看分支状态 git status切换分支 git checkout 分支名1.3 历史相干容许合并不相干历史 ...

October 24, 2020 · 1 min · jiezi

关于git:01Git应用入门

背景剖析软件我的项目开发过程中,团队间共享的代码,文档等可能被他人或本人不小心笼罩或遗失、也不晓得是谁,因为什么起因改了这段代码、也没方法很好的还原前几天的批改,于是版本控制系统(VCS-Version Control System)诞生。 有了版本控制系统,咱们能够浏览所有开发的历史纪录,把握团队的开发进度,而且作任何批改都不再胆怯,因为你能够轻易的还原回之前失常的版本。咱们也能够透过分支和标签的性能来进行软件发行的不同版本,例如稳固版本、保护版本和开发中版本。近几年版本控制系统的利用趋势,如图所示: 版本控制系统(VCS,Version Control System)能够划分为集中式和分布式两大类。集中式顾名思义,是用繁多的服务器来集中管理保留我的项目的所有文件。我的项目团队的成员通过客户端连贯到这台服务器,下载或提交文件。如图所示: 集中式客户端一旦无奈连贯服务器,那么版本控制性能将无奈应用(例如比拟历史版本差别;查看某个历史版本内容等)。集中式的VCS杰出代表是SVN. 分布式的特点是每个客户端除了能够连贯到一个集中的服务器外,客户端自身能够是一个残缺的版本控制仓库,我的项目团队成员能够在本人的电脑上对文件进行版本治理。如图所示: 与集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有残缺的版本库,某一个人的电脑坏掉了不要紧,轻易从其他人那里复制一个就能够了。而集中式版本控制系统的地方服务器要是出了问题,所有人都没法干活了。分布式的VCS杰出代表是git。 Git简介(Introduction)Git是一个开源的分布式版本控制系统,作者是传奇人物Linus,驰名的开源操作系统Linux作者。liuns花了两周工夫本人用C写出了一个Git。当初Linux零碎的源码都是由Git进行治理。Git现已是VCS畛域的江湖霸主。 Git装置(Setting Up)下载与装置Windows和Mac零碎, 能够间接从 http://git-scm.com/downloads 网址下载并运行安装程序。对于Windows用户可应用 "Git Bash" 命令行工具(Git装置时自带)应用Git,Mac零碎能够间接实用终端窗口"Terminal"。 全局用户信息配置配置用户和明码 $ git config --global user.name "your-name"$ git config --global user.email "your-email@youremail.com" 查看配置信息 $ git config --listuser.email=xxxxxx@xxxxxx.comuser.name=xxxxxxGit根底(Basic)利用实现Git 命令简介Git提供了一组简略、独特、独立的命令,这些命令的执行须要首先启动windows或mac零碎的Git终端(window 下能够可应用 "Git Bash"),其语法结构为: $ git <command> <arguments>Git 常用命令有: init, clone, config: 用于启动Git进行项目管理。add, mv, rm: 用于临时记录或存储文件的变更.commit, rebase, reset, tag:status, log, diff, grep, show: show statuscheckout, branch, merge, push, fetch, pullGit 帮忙手册:(可疾速获取命令的应用帮忙) ...

October 22, 2020 · 3 min · jiezi

关于git:02IDE工具之IDEA中Module的创建及Git基本操作

创立我的项目Module并运行创立并运行java module在IDEA关上的我的项目中创立Java Module,如图所示: 在创立Java Module的界面,抉择Next,输出module名,如图所示: Java Module创立好当前的构造,如图所示: 在我的项目模块01-javase中创立包,例如: 在指定包中创立类,如图所示: 运行Java类,如图所示: 创立并运行Maven Module在我的项目中,创立maven module,如图所示: 接下来,输出module根本信息,如图所示: 关上pom.xml文件,增加Junit依赖,如图所示: 创立包、单元测试类和办法,进行单元测试,如图所示: 创立并运行Spring Initializr Module在我的项目中,创立Spring Initializr Module,如图所示: 接下来输出Spring Initializr Module信息,如图所示: 抉择springboot版本,依赖,而后进入一下,如图所示: 输出module信息,而后实现Module的创立,如图所示: Spring Initializr Module创立好当前,其构造如图所示: Module创立好当前,能够关上pom.xml文件,批改其springboot版本,如图所示: SpringBoot 版本批改好当前(可选),向pom.xml右键,抉择Add as Maven Project 选项,进行maven我的项目构建(此时才会springboot 依赖下载和编译),例如: Module 构建实现,关上启动类运行module,如图所示: Module胜利启动和运行后果,如图所示: 基于Git的我的项目操作查看Git配置。找到Git配置选项,进行Git测试,如图所示: 我的项目Push操作剖析及实现将我的项目、Module推送的Gitee近程代码托管平台,如图所示: 指定Gitee仓库的仓库名(库不存在,推送时主动创立),如图所示: 登陆Gitee,查看近程仓库内容,如图所示: ...

October 22, 2020 · 1 min · jiezi

关于git:鼠标垫上的Git知识库

前言Hello,大家好,我是CrazyCodes,之前在极客工夫上买过一个git鼠标垫,感觉其知识点展现的十分老练,现手敲分享给大家,文末有购买链接。 Git最小配置某账号下所有的Git仓库都无效git config --global user.name '您的名称'git config --global user.email '您的Email'只对以后Git仓库无效git config --local user.name '您的名称'git config --local user.email '您的Email'查看Git的配置查看global类型的配置项git config --global --list查看只作用于以后仓库的配置项git config --local --list革除Git的配置革除global类型的配置项git config --unset --global 某个配置项革除某个仓库的配置项git config --unset --local 某个配置项本地基本操作查看变更状况git status查看当前工作在哪个分支上git branch -v切换到指定分支git checkout 指定分支把当前目录及其目录下所有变更都退出到暂存区git add .把仓库内所有变更都退出暂存区git add -A把指定文件增加到暂存区git add 文件1 文件2 文件3创立正式的commitgit commit 比拟某文件工作区和暂存区的差别git diff 某文件比拟某文件暂存区和HEAD的差别git diff HEAD 某文件比拟工作区和暂存区的所有差别git diff --cached把工作区指定文件复原成和暂存区一样git checkout 文件1 文件2 文件3把暂存区指定文件复原成和HEAD一样git reset 文件1 文件2 文件3把暂存区和工作区所有文件复原成和HEAD一样git reset --hard用difftool比拟任意两个commit的差别git difftoll 提交A 提交B查看哪些文件没被Git管控git is-files --others加塞长期工作的解决把未解决完的变更先保留到stash中git stash长期工作解决完后持续之前未完的工作git stash pop或者git stash applypop不保留stash,apply保留stash ...

October 20, 2020 · 1 min · jiezi

关于git:Git-系统学习笔记

公众号内发送Git获取Git官网PDF教程 版本控制版本控制是一种记录一个或若干个文件内容变动、以便未来查阅特定版本订正状况的零碎。 本地版本控制系统很久以前就开发了许多本地版本控制系统、大多都是采纳某种简略的数据库来记录文件的历次更新差别。 其中最风行的一种叫做 RCS、现今许多计算机系统上都还看失去他的踪影。RCS 的工作原理是在硬盘上保留补丁集、通过利用所有的补丁、能够从新计算出各个版本的文件内容。 集中化版本控制系统让不同零碎上的开发者协同工作、集中化版本控制系统应运而生。有一个繁多的集中管理的服务器、保留所有文件的订正版本、而协同工作的人们都通过客户端连到这台服务器、取出最新的文件或者提交更新。 害处 单点故障无备份分布式版本控制系统在分布式版本控制系统中、客户端不只是提取最新版本的文件快照、而是把代码仓库残缺地镜像下来、包含残缺的历史记录。 这么一来、任何一处协同工作用的服务器产生故障、预先都能够用任何一个镜像进去的本地仓库复原。 Git 简史Git 的设计指标 速度简略的设计对非线性开发模式的强力反对(容许成千上万个并行开发分支)齐全分布式有能力高效治理相似 Linux 内核一样的超大规模我的项目间接记录快照、而非差别比拟Git 喝其余版本控制系统(Subversion) 的次要差异在于 Git 看待数据的办法。 从概念上来说、其余大部分零碎以文件变更列表的形式存储信息、这类零碎将它们存储的信息看作是一组根本文件喝每个文件随工夫逐渐累积的差别,称之为基于差别的版本控制 Git 不依照以上形式看待或保留数据、Git 更像是把数据看作是对小型文件系统的一系列快照。在 Git 中、每当你提交更新或保留我的项目状态时、它基本上就会对过后的全副文件创建一个快照并保留这个快照的索引。为了效率、如果文件没有批改、Git 则不再从新存储文件、只是保留一个指向之前存储的文件。Git 看待数据更像是一个快照流。 Git 简直与所有其余版本控制系统的重要区别就是在于这个中央。 近乎所有操作都是本地执行在 Git 中绝大多数操作都只须要拜访本地文件和资源、个别不须要来自网络上其余计算机的信息。 Git 保障完整性Git 中所有的数据在存储前都计算测验和、而后以测验和来饮用。 Git 用以计算校验和的机制叫做 SHA-1 散列。是由 40 个十六进制自发组成的字符串、基于 Git 中文件内容或目录构造计算出来的。 Git 个别只增加数据你执行的 Git 操作、简直只往 Git 数据库中增加数据 三种状态Git 有三种状态、你的文件可能处于其中的一种 已批改示意批改了文件、但没保留到数据库中 已暂存示意对一个已批改文件到以后版本做了标记、使之在下次提交到快照中 已提交示意数据曾经平安地保留在本地数据库中。 这会让咱们的 Git 我的项目领有三个阶段:工作区、暂存区、Git 目录。 工作区是对我的项目的某个版本独立提取进去的内容。这些从 Git 仓库的压缩数据库中提取进去的文件、放在磁盘供你应用或批改。 ...

October 19, 2020 · 4 min · jiezi

关于git:git获取代码出现错误500-Internal-Server-Error

由报错信息能够晓得,500为git服务器外部异样,所以不能从近程读取内容,这个时候多半就是因为咱们的git服务器崩了而导致的,简略记录一下!

October 19, 2020 · 1 min · jiezi

关于git:Git版本控制

集中化版本控制系统 分布式版本控制系统 Git工作原理 Git文件的四种状态 Untracked: 未退出到git库,即文件未被跟踪。通过git add 能够变为Staged状态Unmodified:曾经退出git库,未修改, 即版本库中的文件快照内容与文件夹中还完全一致。应用git remove移出版本库, 则成为Untracked文件。Modified:文件被批改staged:暂存状态. 执行git commit则将批改同步到库中, 此时版本库中的文件和本地文件又变为统一, 文件为Unmodified状态.Git工作区域 Workspace:本地的文件和目录Index/Stage:暂存区,即记录用户操作,个别寄存在 .git目录下,即.git/index,长期寄存未提交的改变。Repository:本地版本库,git clone 就是把近程仓库克隆到本地仓库。其中HEAD指向最新放入仓库的版本。执行git commit,文件改变提交到本地版本库。Remote:近程仓库,相似githubGit工作流程 从近程仓库拉取文件代码;在workspace,增删改查;提交文件至暂存区;提交文件至本地版本库;本地版本库文件推送至近程仓库;Git根本常用命令 git初始化配置git --version 查看git版本git config --list 查看是否配置用户和邮箱(每次提交都会援用-必配)git config --system 以后设施的所有用户git config --config 只实用于以后用户git config 仅对以后我的项目其作用git config --config user.name "demo" 指定用户git config --config user.email "123@qq.com" 指定邮箱git目录构造git init 初始化仓库find ./ -type f 查看文件,不包含目录 git对象(存储内容)key(hash值):value(数据)echo 'test content' | git hash-object -w --stdin 规范输出流存储数据(返回对应的hash值)git hash-object 文件门路(返回对应的hash值)git cat-file -p hash值 查看对应的文件内容git cat-file -t hash值 查看对应的对象树对象(存储git对象,暂存区快照版本)和stage区域无关,git对象和stage区域无关暂存区的数据提交到版本库后,暂存区的信息不会失落git ls-files -s 查看stage/index区域的信息find ./.git/objects/ -type f 查看版本库信息commit对象(版本库我的项目版本)封装树对象,即用户、正文等git add理论流程:workspace先提交到版本库再提交到暂存区,不是惯例了解的提交git add . 增加当前目录的所有文件到暂存区git add [dir] 增加指定目录到暂存区,包含子目录git add [file1] 增加指定文件到暂存区

October 17, 2020 · 1 min · jiezi

关于git:添加本地代码到git

1、(先进入我的项目文件夹)通过命令 git init 把这个目录变成git能够治理的仓库* git init 2、把文件增加到版本库中,应用命令 git add .增加到暂存区外面去,不要遗记前面的小数点“.”,意为增加文件夹下的所有文件 git add .3、用命令 git commit通知Git,把文件提交到仓库。引号内为提交阐明 git commit -m 'first commit'4、关联到近程库 git remote add origin 你的近程地址如:git remote add origin https://github.com/githubusername/demo.git5、获取近程库与本地同步合并(如果近程库不为空必须做这一步,否则前面的提交会失败) git pull --rebase origin master 6、把本地库的内容推送到近程,应用 git push命令,实际上是把以后分支master推送到近程。执行此命令后会要求输出用户名、明码,验证通过后即开始上传。 git push -u origin master *、状态查问命令 git status

October 16, 2020 · 1 min · jiezi

关于git:git的使用记录

创立本地分支git checkout -b 分支名 将本地分支推送到远端git push origin 分支名:分支名 查看所有的分支git branch -a 删除远端分支git push origin --delete 分支名

October 16, 2020 · 1 min · jiezi

关于git:Git-基本应用

本文用来整顿记录日常工作中常常应用到的 Git 命令,不便日常查问应用。对于 Git 诞生的历史及相干外部原理本文暂不波及。 根底概念首先通过下图(图片来源于网络)理解日常工作中 Git 的操作流程 基于上图介绍下 Git 的相干工作空间 术语解释本地仓库/版本库(Repository)一个仓库包含了所有的版本信息、所有的分支和Tag信息。在Git中仓库的每份拷贝都是残缺的。仓库让你能够从中获得你的工作正本。工作区目录下有一个.git的目录,这个目录就是Git来跟踪治理版本库的。工作区(workspace)本地我的项目寄存源文件的文件夹就是工作区暂存区(Index/Stage)用于长期跟踪存储相干批改近程仓库(Remote)个别指托管在近程Git服务器上的仓库,用于托管文件供多人合作应用。如GitHub、Gitee、自建的Git服务等罕用操作根底配置配置提交人标识和邮箱 $ git config --global user.name 'your_name'$ git config --global user.email 'your_email@domain.com'# 勾销配置git config --unset --global user.namegit config --unset --global user.emailconfig 的三个作用域 $ git config --local #local 只对某个仓库无效$ git config --global #global 对以后用户所有仓库无效$ git config --system # system 对系统所有登录的用户无效# local的优先级最高,即local的配置信息能够笼罩global配置的信息显示 config 的配置 $ git config --list --local$ git config --list --global$ git config --list --system删除 config 中的配置项 ...

October 15, 2020 · 6 min · jiezi

关于git:什么作为程序员你都工作了还不会用Git

git管理文件和代码的应用 作者:hackett 微信公众号:加班猿Git是一个收费的开源 分布式版本控制系统,旨在疾速高效地解决从小型到大型项目的所有内容。Git易于学习, 占地面积小,具备闪电般的疾速性能。它具备Subversion,CVS,Perforce和ClearCase之类的SCM工具,具备便宜的本地分支,不便的暂存区域和 多个工作流等性能。--《Git官网》 依稀还记得当初写论文的时候,保留的论文文档是这样子的,代码文件夹是这样的。依据需要删除或批改一些货色后另存为另一个文件,过一段时间后,想找回被删除的文字/代码,然而不晓得保留在哪个文件里去了,想保留最新的一个把其余都删除掉,又怕哪天会用上不敢删除,真的烦人,这个时候就轮到咱们弱小的Git出场了,顺便记录一下本人从廖雪峰的官方网站Git教程的学习。 我工作中罕用的指令1、如果你没有我的项目的代码,组长个别都会给你一个链接,这时候你就能够用git命令git clone下来  git clone https://github.com/CodingEmbedded/mygit.git 2、接到主管的需要(此刻的我是想拿我的ZFB收款码进去的),一般来说都是新建一个分支的去开发的  git check -b 分支名 3、此时就能够欢快地写bug了,有时候共事/主管问你改了什么问题,你改了挺多不记得能够先status再diff一下能够看到咱们批改了那些文件增删了那些内容  git status git diff 4、写好之后就能够先git add再git commit进行本地代码的提交  git add git commit -m "message"5、提交到近程仓库须要用push  git push6、如果在你写的时候有人提交了代码,这时候你须要pull最新的代码下来  git pull如果没有抵触就能够提交代码(有抵触的话就依照Git提醒做批改再提交) 7、你的代码有一个致命bug,并且曾经提交到了近程仓库,版本回退的办法: 先用上面命令找到要回退的版本的commit_id:  git reflog而后回退版本:  git reset --hard commit_id最初强制推送到近程分支:  git push -f能够看到图1是提交了一个记录为“add or del”,图2图3为回退版本操作,图4图5比照能够看出git曾经回退了 图1 图2 图3 图4 图5 一、创立版本库1、新建一个空目录(如下我是E盘 –> code目录下新建一个test版本库) 2、通过git init命令把这个目录变成Git能够治理的仓库 3、ls -ah查看.git>目录和./>../>,那是因为.git这个目录默认是暗藏的。 二、增加文件到仓库1、编写一个文件 text.txt ...

October 15, 2020 · 2 min · jiezi

关于git:Git操作个人笔记

笔记依据黑马视频教学整顿Git是一款源代码管理工具,咱们写的代码须要应用Git进行治理,人工的解决不同版本,做相应备份会很麻烦 历史:Git是linux之父当年为了保护iinux---linus之前也是手动保护,所以linus本人写了一个版本治理的工具(Git) 其余雷同工具:svn,vss,vcs... 初始化Git仓库: git initgit对咱们我的项目代码进行备份的文件 设置用户信息每一次备份都会把以后备份者的信息储存起来 $ git config --global user.name "FredLiu"$ git config --global user.email "fredliu12@163.com"把代码存储失去git仓库中 //把代码放到仓储门口$ git add ./index.md //所指定的文件放到暂存区$ git add ./ //把所有的批改的文件增加到暂存区$ git commit -m "这是一个空的文件夹!" //把暂存区的代码放到版本库git commit --all -m "一些阐明" //一次性把批改的代码提交到版本库//--all 示意把所有批改的文件提交到版本库git commit状况下:用ctrl+z ,而后:q退出即可,或者:q!强制退出查看以后的状态sstatus能够用来查看以后代码有没有被放到仓储中去: $ git status红色:示意文件批改了然而还没放到暂存区中 绿色:示意文件放到了暂存区中然而还没有进版本库 查看日志git log查看历史提交的日志 git log --oneline查看简洁版的日志 版本回退//示意回退到上一次代码提交时的状态$ git reset --hard Head~0//示意回退到上上次代码提交时的状态$ git reset --hard Head~1//通过版本号准确的回退到某一次提交的状态$ git reset --hard [版本号]]//能够看到每一次切换版本的记录:能够看到所有提交的版本$ git reflog分支 master是主分支,能够创立自定义多个分支 ...

October 14, 2020 · 1 min · jiezi

关于git:我敢打赌这是全网最全的-Git-分支开发规范手册

Git 是目前最风行的源代码管理工具。为标准开发,放弃代码提交记录以及 git 分支构造清晰,不便后续保护,现标准 git 的相干操作。 分支命名1、master 分支 master 为主分支,也是用于部署生产环境的分支,确保master分支稳定性, master 分支个别由develop以及hotfix分支合并,任何工夫都不能间接批改代码 2、develop 分支 develop 为开发分支,始终保持最新实现以及bug修复后的代码,个别开发的新性能时,feature分支都是基于develop分支下创立的。 feature 分支 开发新性能时,以develop为根底创立feature分支。分支命名: feature/ 结尾的为个性分支, 命名规定: feature/user_module、 feature/cart_modulerelease分支 release 为预上线分支,公布提测阶段,会release分支代码为基准提测。当有一组feature开发实现,首先会合并到develop分支,进入提测时会创立release分支。如果测试过程中若存在bug须要修复,则间接由开发者在release分支修复并提交。当测试实现之后,合并release分支到master和develop分支,此时master为最新代码,用作上线。 hotfix 分支 分支命名: hotfix/ 结尾的为修复分支,它的命名规定与feature分支相似。线上呈现紧急问题时,须要及时修复,以master分支为基线,创立hotfix分支,修复实现后,须要合并到master分支和develop分支 常见工作减少新性能 (dev)$: git checkout -b feature/xxx            # 从dev建设个性分支(feature/xxx)$: blabla                         # 开发(feature/xxx)$: git add xxx(feature/xxx)$: git commit -m 'commit comment'(dev)$: git merge feature/xxx --no-ff          # 把个性分支合并到dev修复紧急bug (master)$: git checkout -b hotfix/xxx         # 从master建设hotfix分支(hotfix/xxx)$: blabla                         # 开发(hotfix/xxx)$: git add xxx(hotfix/xxx)$: git commit -m 'commit comment'(master)$: git merge hotfix/xxx --no-ff       # 把hotfix分支合并到master,并上线到生产环境(dev)$: git merge hotfix/xxx --no-ff          # 把hotfix分支合并到dev,同步代码测试环境代码 (release)$: git merge dev --no-ff             # 把dev分支合并到release,而后在测试环境拉取并测试生产环境上线 (master)$: git merge release --no-ff          # 把release测试好的代码合并到master,运维人员操作(master)$: git tag -a v0.1 -m '部署包版本名'  #给版本命名,打Tag 日志标准在一个团队合作的我的项目中,开发人员须要常常提交一些代码去修复bug或者实现新的feature。 而我的项目中的文件和实现什么性能、解决什么问题都会慢慢淡忘,最初须要浪费时间去浏览代码。然而好的日志标准commit messages编写有帮忙到咱们,它也反映了一个开发人员是否是良好的协作者。 编写良好的Commit messages能够达到3个重要的目标: 放慢review的流程帮忙咱们编写良好的版本公布日志让之后的维护者理解代码里呈现特定变动和feature被增加的起因目前,社区有多种 Commit message 的写法标准。来自Angular 标准是目前应用最广的写法,比拟正当和系统化。如下图: Commit messages的根本语法以后业界利用的比拟宽泛的是 Angular Git Commit Guidelines “https://github.com/angular/an... 具体格局为: <type>: <subject><BLANK LINE><body><BLANK LINE><footer>type: 本次 commit 的类型,诸如 bugfix docs style 等scope: 本次 commit 波及的范畴subject: 简明扼要的论述下本次 commit 的宗旨,在原文中特意强调了几点:应用祈使句,是不是很相熟又生疏的一个词首字母不要大写结尾无需增加标点body: 同样应用祈使句,在主体内容中咱们须要把本次 commit 具体的形容一下,比方此次变更的动机,如需换行,则应用 | ...

October 14, 2020 · 1 min · jiezi

关于git:使用git报错RPC-failed-HTTP-504-curl-22

应用git pull拉取近程仓库数据时, 残缺报错如下 error: RPC failed; HTTP 504 curl 22 The requested URL returned error: 504fatal: the remote end hung up unexpectedly解决办法 : 增加参数--depth = 1

October 13, 2020 · 1 min · jiezi

关于git:git常用命令

1.git版本初始化git init2.git增加文件到缓存区git add *3.git提交文件git commit -m 'first commit'4.查看提交记录git log5.查看状态,缓存区文件,未跟踪文件git status6.还原到某个版本git reset 版本号git reset --hard 版本号(会还原没增加跟踪的批改和删除的文件)7.比照文件 git diff 文件名称8.还原某个文件 git checkout 文件名称9.去掉未增加跟踪的新增文件git clean -n查看会删除哪些未增加跟踪的文件git clean -f删除未跟踪文件

October 12, 2020 · 1 min · jiezi

关于git:git每次push或pull时提示enter-passphrase-for-key-sshidrsa解决方案

WHAT在本人Mac上配置了SSH公私钥,呈现了如下问题,每次都要输出明码,于是就查了一下解决办法。git每次操作近程分支(git pull,git push等)时提醒enter passphrase for key '~/.ssh/id_rsa' WHY起因应该是生成key的时候设置了明码,导致每次操作git都须要输出明码。然而很多小伙伴第一次生成key的时候都处于懵懵懂懂的状态(比方我),面对生疏的命令,莫名其妙就设置了明码,而后每次应用时都须要输出明码这个繁冗的操作。 HOW解决办法很简略,就是输出以下命令: $ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]举个例子: $ ssh-keygen -p -P 123456 -N '' -f ~/.ssh/id_rsa这样就把最开始无知的咱们设置的’123456’明码改为了''明码,而后就能够无痛应用git push、git pull等命令,再也不必输出明码了。解决办法来自于stackoverflow

October 11, 2020 · 1 min · jiezi

关于git:一张图了解-git-rebase

October 11, 2020 · 0 min · jiezi

关于git:git-commit报错husky-commitmsg-hook-failed

报错信息➜ guchejia_web_app git:(5.1.1) ✗ git commit -am "[feat]: 批改弹窗"Warning: Setting commit-msg script in package.json > scripts will be deprecatedPlease move it to husky.hooks in package.json, a .huskyrc file, or a husky.config.js fileOr run ./node_modules/.bin/husky-upgrade for automatic updateSee https://github.com/typicode/husky for usagehusky > commit-msg (node v8.9.0)⧗ input: [feat]: 批改弹窗✖ subject may not be empty [subject-empty]✖ type may not be empty [type-empty]✖ found 2 problems, 0 warningsⓘ Get help: https://github.com/conventional-changelog/commitlint/#what-is-commitlinthusky > commit-msg hook failed (add --no-verify to bypass)➜ guchejia_web_app git:(uicheck) ✗ git statusOn branch uicheckChanges to be committed: (use "git reset HEAD <file>..." to unstage) modified: npm-shrinkwrap.json modified: src/page/weibaochaxun/app.tsx modified: src/page/weibaochaxun/components/dialog/index.tsx modified: src/page/weibaochaxun/components/dialog/style.scss modified: src/page/weibaochaxun/components/payResultToast/index.tsx modified: src/page/weibaochaxun/components/payResultToast/style.scss modified: src/page/weibaochaxun/pages/tcDetail/index.tsx modified: src/page/weibaochaxun/weibaochaxun.html➜ guchejia_web_app git:(uicheck) ✗ git push origin uicheck warning: redirecting to http://***/guchejia_web_app.git/Everything up-to-date起因在终端输出git commit -am "**",提交代码时会触发pre-commit的钩子,他会在Git提交信息之前先做代码格调的检测如果不合乎相应规定,会报错它的检测规定就是依据.git/hooks/pre-commit文件外面的相干定义解决方案提交代码commit时,疏忽pre-commit校验的钩子,加上参数--no-verify ...

October 10, 2020 · 3 min · jiezi

关于git:怎么摆脱又臭又长的-Git-命令

在应用 Git 的时候,尽管大部分时候咱们用的是图形客户端,但图形客户端不能解决所有的操作,所以,也少不了要须要应用命令行的时候。但有些 Git 命令和参数的确又不好记,甚至有的命令每次要用的时候须要去查资料才晓得,重大影响效率。怎么解脱又臭又长的 Git 命令?所以,本篇栈长分享一个偷懒的小技巧,咱们能够给 Git 命令设置对应的别名(也能够说是缩写),比方:$ git config --global alias.br branch我给 branch 设置了一个别名:br,咱们就能够应用 git br 代替 git branch 了。--global 示意全局仓库,也能够应用 --local 设置成以后仓库命令别名。$ git br master 另外一个查看状态的 status 命令我感觉有必要设置下别名,很容易打错,也容易与 state 混同。$ git config --global alias.st status当前只须要应用 git st 是不是就简略多了。上面再举一个简单点带参数的例子:$ git config --global alias.rhm 'reset --hard origin/master'我把重置成近程分支的命令别名改为了:rhm,带参数局部须要用单引号包起来,这个命令可能平时用的不多,也不好记,关键时刻却十分有用。$ git rhmHEAD is now at 7e66820 1咱们再来看下 git 的全局配置文件 .gitconfig 内容,你会发现多了一个 alias 组:...[alias]rhm = reset --hard origin/masterst = statusbr = branch没错,咱们能够间接编辑这个配置文件,一次性设置对应的 Git 命令别名关系。OK,大家都学会了吗?

October 9, 2020 · 1 min · jiezi

关于git:创建gitignoregit上传时忽略某些文件的上传配置

1、在须要创立 .gitignore 文件的文件夹, 右键抉择Git Bash 进入命令行,进入我的项目所在目录2、输出 touch .gitignore ,生成“.gitignore”文件。3、在”.gitignore” 文件里输出你要疏忽的文件夹及其文件就能够了。(留神格局) 常见.gitignore: .DS_Storenode_modules/dist/npm-debug.log4、罕用的规定:1)/mtk/               过滤整个文件夹2)*.zip                过滤所有.zip文件3)/mtk/do.c         过滤某个具体文件 须要强调的一点是,如果你不慎在创立.gitignore文件之前就push了我的项目,那么即便你在.gitignore文件中写入新的过滤规定,这些规定也不会起作用,Git依然会对所有文件进行版本治理。简略来说,呈现这种问题的起因就是Git曾经开始治理这些文件了,所以你无奈再通过过滤规定过滤它们。因而肯定要养成在我的项目开始就创立.gitignore文件的习惯,否则一旦push,解决起来会十分麻烦。

October 9, 2020 · 1 min · jiezi

关于git:程序员如何搭建自己的个人博客

原文公布于https://www.fangzhipeng.com/life/2018/10/14/how-to-build-blog/我从2016年开始写博客,陆陆续续写了大略两百篇博客。写博客有很多益处,其一是它可能迫使你总结你学习的常识,你需岂但的消化本人的知识点,使你对常识有了更粗浅的意识;其二是你的博客如同你的个人简历,记录了你的学习历程,通过写博客,能够让他人意识你,能够结交更多的行业敌人;其三,博客起到了流传常识的作用,特地是技术类的博客可能帮忙他人解决技术问题,帮忙人是一件高兴的事,何乐而不为。所以写博客对于程序员来说至关重要,在我之前的文章,我曾经讲述过了,写博客给我带来了什么,再次不在赘述。 我一开始写博客是从简书开始的,过后被简书优雅的markdown写作形式所吸引。刚开始写文章网的浏览量,一篇可能达到几百的浏览量是十分开心的事件,如果可能被简书举荐到首页可能开心好几天。在简书我意识了木东居士、仗剑走咫尺,并在那时建设了简书圈,并放弃了十分好的友情关系,十分的宝贵。 大略17年初我将本人的写博客次要阵地转移到了CSDN,起因是CSDN在百度搜索引擎中占据了最高的权重。前面证实我的判断是正确的,我的CSDN博文浏览量一路飙升,让更多的人能够的浏览我的博客。 就在上个月我浏览了纯净的微笑的博文 技术人如何搭建本人的技术博客这篇文章,我决定折腾一下搭建一下本人的集体博客。 其实在17年,我就开始搭建了本人的集体博客,采纳Jekyll动态博客,托管在github下面的,并且买了本人的域名fangzhipeng.com,cname到github上。因为github网络不稳固,体验切实是太差,始终没有怎么打理,处于一种无人治理的状态。 就在月初,我将集体的博客迁徙到了本人的服务器,并在群里放进去,有人就让我写篇博文,让他参考下如何搭建属于本人的集体博客。于是我抽空写出了这篇文章。 这篇文章具体的介绍了如何搭建我的集体博客。 应用Github托管博客在github上托管博客上非常简单的一件事,只须要fork一个你喜爱的博客的主题,并将fork的工程名批改为{github-username}.github.io,并将原博主的文章删除,并放上本人的博文,就能够了。 比方我的博客应用的是https://github.com/Huxpro/hux...,首先我将这个我的项目fork一下,并将fork后的我的项目改名字为forezp.github.io,读者须要将forezp替换成本人的github用户名。 而后关上网页forezp.github.com就能够拜访该主题的博客了。将批改后我的项目git clone下来,依照主题阐明进行配置的批改,将原博主的文章删除,替换成本人的博文,git push批改后的工程到github下面,github pages就会主动构建,依据你的批改内容生成页面,拜访{github-username}.github.io就能够看到批改后的内容。 如果你须要本人的域名,能够在阿里云上申请本人的域名,[比方的我的域名为fangzhipeng.com]()。在阿里云的控制台的域名解析配置以下的内容: 阿里云域名注册地址:https://wanwang.aliyun.com/?aly_as=urN-DkV3U&source=5176.11533457 并在我的项目中的根目录上加CNAME文件,写上本人申请的域名,比方的我的: www.fangzhipeng.com大略过10-20分钟之后,就能够通过域名拜访你的集体博客了,通过{github-username}.github.io拜访集体博客也会显示你申请的域名。 须要留神的是,域名须要备案哦。 应用本人的服务器部署博客应用Gthub搭建集体博客简略、快捷、不便,然而Github在国外啊,网络极其不稳固,拜访速度慢,让人抓狂,这时能够将本人的博客部署在阿里云的ECS上。ECS须要购买哦,须要购买的同学点击这里,支付代金券。 自己应用Jekyll进行搭建的博客,所以须要在服务中装置Jekyll环境,我的服务器零碎版本为entOS 7.2,装置的jekyll版本为3.8.4。 装置jekyll次要参考了https://jekyllcn.com/docs/ins...,因为装置过程比拟繁琐和报的错比拟多,当初具体解说下,在我装置jekyll的过程和所遇到的坑。 装置Node装置Node环境,执行以下命令: wget https://nodejs.org/dist/v8.12.0/node-v8.12.0-linux-x64.tar.xzxz -d node-v8.12.0-linux-x64.tar.xztar -xf node-v8.12.0-linux-x64.tar ln -s ~/node-v8.12.0-linux-x64/bin/node /usr/bin/nodeln -s ~/node-v8.12.0-linux-x64/bin/npm /usr/bin/npmnode -v npm 装置rubyJekyll依赖于Ruby环境,须要装置Ruby,执行以下命令即可: wget https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.4.tar.gz mkdir -p /usr/local/ruby tar -zxvf ruby-2.4.4.tar.gz cd ruby-2.4.4 ./configure --prefix=/usr/local/ruby make && make install cd ~ vim .bash_profile source .bash_profile 装置gcc装置gcc执行以下命令: yum -y update gccyum -y install gcc+ gcc-c++ 装置jekyll最初装置Jekyll,执行以下命令 ...

October 5, 2020 · 3 min · jiezi

关于git:解决-fork-项目后同步分支问题

背景在 Github 上 fork 其余我的项目,通过 git clone 拉到本地后,如果近程分支有批改, 须要同步更新,放弃本地代码与近程分支上代码统一 <!--more--> 解决查看 remote 分支列表,它们的名称和 URL: git remote -v其中, orgin 为本地分支; upstream 为近程分支 如果上一步没有显示 upstream 地址, 须要增加: git remote add upstream <原作者我的项目的 URL>实现后, 确认 upstream 已增加 将近程分支代码同步到本地: git fetch upstream查看本地代码的变更: git checkout master合并分支: git merge upstream/master将以后分支中的本地变更发送到本人对应的分支: git push

October 1, 2020 · 1 min · jiezi

关于git:你在开发过程中使用Git-Rebase还是Git-Merge

摘要:在git外面常常的一个争执是到底用rebase还是用merge?苦楚吗?代码历史中的迷失羔羊咱们先来看一个实在的代码提交历史图形化截图: 图片源自 https://storage.kraken.io/kk8... https://dev.to/neshaz/git-mer... 不晓得大家看到这张图当前有什么感触?是不是很无语呢?我是无语凝噎的感触。代码历史到了这个境地,基本上是废了的!!! 通过本文咱们就来谈一下代码历史线的问题。这里波及到一个代码历史的治理问题,如果你心愿领有比拟清晰的代码历史,从而能够很疾速地追溯你以前的代码记录的话,你肯定要关注这个话题。 如果你作为一个程序员用过mercurial,你可能对这个rebase概念曾经有所理解。目前程序员用的最多的source control工具是git。在git外面常常的一个争执是到底用rebase还是用merge? 说争执实际上是不太精确的。因为在理论工作中,这次要有两种状况,一是基本就不晓得rebase,另外一种是基本就不晓得怎么用rebase。 那咱们就说一下rebase和merge的区别,在性能上rebase把你以后的批改工作晋升到最前沿,你本人独有的批改记录程序不会扭转,然而工夫次要会基于以后指标分支的工夫戳进行调整。 Merge不会扭转工夫戳。这样就会导致不同的人在合并本人批改代码记录的时候,会呈现互相交织的情景。本文开篇是一张代码提交历史的截屏,外面的连线就像电路板一样简单。 呈现这样的状况,次要是因为程序员不做rebase间接merge造成的。 而相似这样电路板状的代码提交历史是没有意义的,因为太过简单了。简直没有可读性。如果你想去查看某些历史记录的时候,很容易被迅速吞没在这些信息陆地外面无法自拔,最初失去自我,迷失了。 Git Merge vs. Rebase小注:尽管曾经参考链接中标注,然而有必要再强调一下此节翻译参考了如下链接的英文内容: https://dev.to/neshaz/git-mer... Git merge 和rebase的目标是一样的,它们都是将多个分支合并成一个。尽管他们最终的指标是一样的,但这两种办法实现的形式是不同的。那么咱们应该用哪个呢? 这里咱们有一个示例仓库,它有两个不同的分支:主分支和个性分支。咱们想把它们交融在一起。让咱们来看看如何应用这些办法来解决这个问题。 图片源自 https://storage.kraken.io/kk8... https://dev.to/neshaz/git-mer... Merge当你运行 git merge 时,你的 HEAD 分支会生成一个新的提交,并保留每个提交历史的先人。 图片源自 https://storage.kraken.io/kk8... https://dev.to/neshaz/git-mer...Fast forward merge是一种不创立提交的合并类型,会更新分支指针到上一次提交。 RebaseRebase是将一个分支的批改重写到另一个分支上,而不须要创立新的提交。 你在个性分支上的每一个提交,都会在主分支上创立一个新的提交。这看起来就像这些提交始终是写在主分支之上的一样。 图片源自 https://storage.kraken.io/kk8... https://dev.to/neshaz/git-mer... Merge的长处和毛病长处应用简略,易于了解。放弃源分支的原始上下文。源分支上的提交与其余分支的提交是离开的。能够保留提交历史。毛病乱图片源自 https://storage.kraken.io/kk8... https://dev.to/neshaz/git-mer... Rebase的长处和毛病长处代码历史是简化的、线性的、可读的。与许多独立的个性分支的提交历史相比,操作单个提交历史更容易。洁净、清晰的提交信息能够更好地跟踪一个bug或何时引入的某个性能。能够防止泛滥的单行提交净化历史。毛病会更改历史提交工夫,可能会失落上下文。比起Merge,你须要更加小心的应用Rebase。 应该用Merge还是Rebase?当你的团队对于rebase不相熟时,那么git merge就是你的正确抉择。 Merge容许保留任何给定性能的提交历史,而不用放心笼罩提交和扭转历史。它能够防止不必要的 git revert或reset。另一方面,如果你更看重洁净、线性的代码历史,那么git rebase是最合适的。这种形式能够防止不必要的提交,并放弃更集中和线性的变动! 这里要留神的是,如果你不正确地重写了历史,可能会导致重大的问题,所以在应用Rebase时请确保晓得你在做什么。 一杯水与一桶水先说一下一杯水和一桶水的关系,这个关系能够用来形容老师向学生传授常识的情景。次要意思是说老师要是给学生一杯水的话,这个老师必须要有一桶水才行。 其实对于咱们软件行业来说,这个情理也是实用的。 对于本文的聚焦点代码历史,咱们想给内部出现的是清晰洁净的代码历史记录。要到的这个指标,咱们须要做很多的工作,这项工作相较于洁净的代码历史就是一桶水与一杯水的关系。 这也是咱们常常说的,对本人狠一点,让他人难受一点。对本人狠一点不是一句空话,实际上是让本人搜索枯肠的去想,如何把这个事件做好?把本人放在对方的角度下来看咱们的输入后果。咱们问本人,我作为这些代码的维护者和接收者,是不是能够承受这样凌乱的代码历史记录,答案当然是否定的。 明确了这一点,在咱们做代码历史治理的时候,再苦再累也是值得的。 一些有多年工作教训的程序员,他们可能用过很多代码治理的工具,这些代码管理工具在应用的时候常常用的一个操作就是merge。进入到git时代当前,这些程序员也保留了这样的习惯,间接就merge。 我跟一些程序员聊过,他们甚至都没有意识到有rebase这个操作。有的则感觉rebase太麻烦了,用了几次就放弃了。 这相对是人情世故。 当咱们习惯了用一种形式做事的时候,咱们做得越久感觉越平安,因为它是卓有成效的,可能解决问题的。当有另外一种更好的形式,然而却与以前的形式有很大差别的时候,咱们就会有本能的排挤心理。这是源于咱们对未知领域的一种恐惧感。 来到舒服区当前,咱们大多数人都会有一种不适应,有的甚至会产生很强烈的失落感。 然而当咱们回归本心的时候,咱们会发现咱们所付出的所有,禁受的苦楚都是值得的。因为咱们的初心就是让用户称心。代码历史的用户就是咱们这些程序员。 如何正确做rebase?要点备注:Rebase相干的要点有这几个: 在本人的分支上做Rebase;要Rebase正确的指标分支,留神这个指标分支不是你的近程分支,这个中央常常有人犯错;Rebase要常做,以避免出现抵触,或者抵触的难度减少;在合入代码之前,肯定要最初做一次Rebase再Merge;最好用Squash Merge, 增加正确的提交音讯;不要在主分支上做Rebase;尽量不要force push;在主分支上应该rebase吗? 怎么去做rebase? ...

September 29, 2020 · 1 min · jiezi

关于git:前端面试每日-31-第528天

明天的知识点 (2020.09.25) —— 第528天 (我也要出题)[html] 如何让pre标签中的元素主动换行?[css] 给兄弟元素的标签设置红色[js] 请说说focus、blur与focusin、focusout的区别是什么?[软技能] git怎么疏忽已退出版本库的文件?《论语》,曾子曰:“吾日三省吾身”(我每天屡次检查本人)。前端面试每日3+1题,以面试题来驱动学习,每天提高一点!让致力成为一种习惯,让奋斗成为一种享受!置信 保持 的力量!!!欢送在 Issues 和敌人们一起探讨学习! 我的项目地址:前端面试每日3+1【举荐】欢送跟 jsliang 一起折腾前端,零碎整顿前端常识,目前正在折腾 LeetCode,打算买通算法与数据结构的任督二脉。GitHub 地址 微信公众号欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个Star, 同时欢送微信扫码关注 前端剑解 公众号,并退出 “前端学习每日3+1” 微信群互相交换(点击公众号的菜单:交换)。 学习不打烊,充电加油只为遇到更好的本人,365天无节假日,每天早上5点纯手工公布面试题(死磕本人,愉悦大家)。心愿大家在这虚夸的前端圈里,放弃沉着,保持每天花20分钟来学习与思考。在这变幻无穷,类库层出不穷的前端,倡议大家不要等到找工作时,才狂刷题,提倡每日学习!(不忘初心,html、css、javascript才是基石!)欢送大家到Issues交换,激励PR,感激Star,大家有啥好的倡议能够加我微信一起交换探讨!心愿大家每日去学习与思考,这才达到来这里的目标!!!(不要为了谁而来,要为本人而来!)交换探讨欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个[Star]

September 25, 2020 · 1 min · jiezi

关于git:git底层原理

gitgit hash-object -w --stdingit cat-file -p commit

September 23, 2020 · 1 min · jiezi

关于git:GIT使用

1.装置git1)下载安装git点击右侧链接返回官网 git官网 在右侧小电视中下载最新版本的git即可装置一路next即可,能够设置一下装置门路 2)idea中配置git的地位settings --> 搜寻git --> path --> 抉择装置git时的门路(默认:Program FilesGitbingit.exe) 2.创立近程仓库1)登录gitee码云国内根本都是用gitee码云,先在官网进行注册/登录 码云官网 2)新建近程仓库登陆后点击右上角的"+"号,新建仓库(自行起名,并抉择公开开源即可),页面不必敞开,稍后要复制仓库地址 3.创立本地仓库1)创立git本地库上边曾经在idea中配置了git.exe,只须要:在上方工具栏中点击vcs --> import into version control --> create git repository 2)抉择我的项目抉择所要上传的我的项目的工程文件夹,创立老本地仓库 3)向仓库提交文件vcs -- commit (ctrl+k)勾选要提交的文件(增加提交列表)填写提交信息(必填)commit提交4.将本地仓库推送至近程仓库vcs -- git -- push (ctrl+shift+k)define remote填入近程仓库门路填用户名明码实现推送(用户名/明码即是gitee注册登录的用户名明码)Eclipse应用: 创立本地仓库 右键点我的项目 -- team -- sheare project抉择任意一个空目录作为本地仓库目录提交 右键点我的项目 -- team -- commit把文件增加到提交列表填写提交信息commit提交推送 右键点我的项目 -- team -- push填近程仓库的地址push实现推送

September 22, 2020 · 1 min · jiezi

关于git:01Git应用入门

背景剖析软件我的项目开发过程中,团队间共享的代码,文档等可能被他人或本人不小心笼罩或遗失、也不晓得是谁,因为什么起因改了这段代码、也没方法很好的还原前几天的批改,于是版本控制系统(VCS-Version Control System)诞生。 有了版本控制系统,咱们能够浏览所有开发的历史纪录,把握团队的开发进度,而且作任何批改都不再胆怯,因为你能够轻易的还原回之前失常的版本。咱们也能够透过分支和标签的性能来进行软件发行的不同版本,例如稳固版本、保护版本和开发中版本。近几年版本控制系统的利用趋势,如图所示: 版本控制系统(VCS,Version Control System)能够划分为集中式和分布式两大类。集中式顾名思义,是用繁多的服务器来集中管理保留我的项目的所有文件。我的项目团队的成员通过客户端连贯到这台服务器,下载或提交文件。如图所示: 集中式客户端一旦无奈连贯服务器,那么版本控制性能将无奈应用(例如比拟历史版本差别;查看某个历史版本内容等)。集中式的VCS杰出代表是SVN. 分布式的特点是每个客户端除了能够连贯到一个集中的服务器外,客户端自身能够是一个残缺的版本控制仓库,我的项目团队成员能够在本人的电脑上对文件进行版本治理。如图所示: 与集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有残缺的版本库,某一个人的电脑坏掉了不要紧,轻易从其他人那里复制一个就能够了。而集中式版本控制系统的地方服务器要是出了问题,所有人都没法干活了。分布式的VCS杰出代表是git。 Git简介(Introduction)Git是一个开源的分布式版本控制系统,作者是传奇人物Linus,驰名的开源操作系统Linux作者。liuns花了两周工夫本人用C写出了一个Git。当初Linux零碎的源码都是由Git进行治理。Git现已是VCS畛域的江湖霸主。 Git装置(Setting Up)下载与装置Windows和Mac零碎, 能够间接从 http://git-scm.com/downloads 网址下载并运行安装程序。对于Windows用户可应用 "Git Bash" 命令行工具(Git装置时自带)应用Git,Mac零碎能够间接实用终端窗口"Terminal"。 全局用户信息配置配置用户和明码 $ git config --global user.name "your-name"$ git config --global user.email "your-email@youremail.com"查看配置信息 $ git config --listuser.email=xxxxxx@xxxxxx.comuser.name=xxxxxxGit根底(Basic)利用实现Git 命令简介Git提供了一组简略、独特、独立的命令,这些命令的执行须要首先启动windows或mac零碎的Git终端(window 下能够可应用 "Git Bash"),其语法结构为: $ git <command> <arguments>Git 常用命令有: init, clone, config: 用于启动Git进行项目管理。add, mv, rm: 用于临时记录或存储文件的变更.commit, rebase, reset, tag:status, log, diff, grep, show: show statuscheckout, branch, merge, push, fetch, pullGit 帮忙手册:(可疾速获取命令的应用帮忙) ...

September 22, 2020 · 3 min · jiezi

关于git:Git协同开发工具随笔

协同开发工具(版本控制器) 目前应用最宽泛的就是svn和git 次要作用:治理我的项目的版本,多人协同开发List itemsvn和git帮咱们治理我的项目 svn:集中式 git:分布式 Git参考站点:https://www.liaoxuefeng.com/wiki/896043488029600/896067008724000git是目前世界上最先进的分布式版本控制系统### 装置Git 初始化git :电脑桌面右键关上 Git Bash Here 命令窗口,而后输出上面命令: ### 创立版本库 初始化版本库:在要操作的文件夹下关上GBH命令行窗口,执行 git init 后会生成一个 .git 文件,阐明胜利了。【留神】:如果你应用Windows零碎,为了防止遇到各种莫名其妙的问题,请确保目录名(包含父目录)不蕴含中文。 ### 版本库的治理: 把要上传的文件增加到缓存区:git add 文件全名(git add * 会把所以文件增加)增加到版本库:git commit -m '正文' 正文必须写版本切换查看仓库状态:git status : 查看文件是否被批改 批改文件之后通过git status查看会显示modified(红色)--->阐明文件未提交执行 git add 文件名 之后再次通过git status查看会显示 modified(绿色)--->示意提交到了缓存区,然而没有增加到版本库。最初执行 git commit -m '正文' 之后再次通过git status查看会显示 没有可提交的git diff : 查看具体批改的内容:批改代码没有执行add和commit,此时通过 git diff 查看会显示出批改的内容。之后再提交到缓存区或者版本库 git diff 就不再监听。(回车认为删除)历史 git log : 查看历史提交版本(提交人,工夫,正文,版本号)git log --pretty=oneline : 简化版的 git log (提交版本号,正文)git reset --hard HEAD^ :版本回退,一个^符号代表回退一个版本git reset --hard 版本号 :不小心回退到历史版本了,然而忽然又不想回去了,执行这个命令工作区 和 暂存区(缓存区) ...

September 22, 2020 · 1 min · jiezi

关于git:git

git常用命令git status 查看文件状态git branch 查看分支git diff 查看批改的内容git log 查看提交记录git add . (将内容从工作目录增加到暂存区)get checkout . 撤销提交之前所有批改的文件内容git commit -m "xxx" 提交记录git push origin mastergit pull origin mastergit checkout xxx/git checkout -b xxx (切换分支)git fetch 拉取所有的分支git merge xxx 合并分支,把分支代码合并到以后分支上git stash先将数据存到缓存git stash pop 将之前缓存的文件推出来

September 22, 2020 · 1 min · jiezi

关于git:如何写好-Commit-Log

其实对于这个问题,老早都想整顿了,只是始终没有腾出空来,最近刚好有空,索性整顿了下。 这里就不过多介绍什么是Git了,本文的重点是Commit Log,如果还不分明Git是什么,能够看一下我的Git系列的其余笔记。 为什么要关注提交信息放慢Reviewing Code的过程揭示本人或别人,某个提交具体减少了什么性能,改变了哪些地方进步我的项目的整体品质Angular 标准的 Commit message 格局这种格局(标准)是我目前感觉绝对其余格局(标准)而言,最容易接受、上手的一种。 其外围是每次提交,Commit message 都包含三个局部:Header,Body 和 Footer。 <type>(<scope>): <subject>// 空一行<body>// 空一行<footer>其中,Header 是必须的,Body 和 Footer 能够省略。 HeaderHeader 局部只有一行,包含三个字段:type(必须)、scope(可选)和 subject(必须)。 type 用于阐明 commit 的类别,只容许应用上面几个标识: feat 新性能(feature)fix 修补 bugdocs 文档(documentation)style 格局(不影响代码运行的变动)refactor 重构(即不是新增性能,也不是批改 bug 的代码变动)test 减少测试chore 构建过程、辅助工具的变动perf 进步性能typo 打字谬误scope 用于阐明 commit 影响的范畴,比方数据层、管制层、视图层等等,视我的项目不同而不同。 subject 是 commit 目标的简短形容,不超过 50 个字符。 BodyBody 局部是对本次 commit 的详细描述,能够分成多行。 FooterFooter 局部只用于不兼容变动和敞开 Issue。 总结原本我本人始终应用的形式就是:git commit -am "fix login bug",尽管并没有相对的对错,但这显然不是最好的形式。 这种货色并没有强制性的规定,只有团队之间约定好,而后依照这个约定合作就好了。 所以我感觉在团队之间commit时,能够不必齐全依照Angular 标准的Commit message格局去提交,能够依照以下约定来执行。 ...

September 21, 2020 · 1 min · jiezi

关于git:Git-Commit-规范应该用起来

本文是对后面系列文章的补充与欠缺。后面的介绍,利用了 husky 与 lint-staged 使得在提交之前做一些 ESLint 和 Prettier 的操作,明天来补充完 Commit Message 提交阐明标准。 Git 是目前最先进的分布式版本控制系统,Git 每次提交代码时,都须要写 Commit Message(提交阐明),否则不容许提交。 # 单行(亦可多行输出,输出一个双引号,按 Enter 键即可,最初补全一个双引号)$ git commit -m "xxx"# 多行输出,输出命令进入编辑模式$ git commit在团队多人合作中,一份清晰扼要的 Commit Message 很重要,它能够让咱们分明理解本次代码提交的目标以及解决了具体什么问题。也可能让后续 Code Review、信息查找、版本回退都更加高效牢靠。 目前,社区有多种 Commit Message 的写法标准。本文介绍 Angular 标准,这是目前应用最广的写法,比拟正当和系统化,并且有配套的工具。 Commit Message 标准每次提交,Header 是必须的,而 Body 和 Footer 能够省略。 不论哪一部分,任何一行都不得超过 72 个字符(或 100 个字符)。这是为了防止主动换行影响好看。 <Header><空行><Body><空行><Footer>Header 局部它包含 type、scope、subject 三局部,其中 type、subject 是必须的,而 scope 是可选的。 <type>(<scope>): <subject>type 用于阐明 commit 的类型,只容许应用上面几个标识:feat 新性能A new feature ...

September 20, 2020 · 3 min · jiezi

关于git:Git-Git-Server-搭建在自己的服务器上进行-git-server-搭建

系列文章目录Table of Contents 系列文章目录前言操作1. 创立 git 用户2. 创立 .ssh 目录3. 自定义仓库的根目录4. 在服务器上创立个裸仓库5. 手动配置一个公钥6. 在本地测试一下是否操作总结参考前言平时都是在用 GitHub、GitLab、Gitee 等服务,那咱们如何本人搭建一个 Git Server,这里咱们搭建一个简略的 Git Server 操作阐明: 本示例在一台云服务器上搭建的 git 服务,其中 1,2,3,4,5 均为在云服务器进行的操作。当然也能够在虚拟机或者 docker 中进行操作 1. 创立 git 用户adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git2. 创立 .ssh 目录/home# su git/home# cd git/home/git# mkdir .ssh && chmod 700 .ssh/home/git# touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys3. 自定义仓库的根目录/home/git# mkdir code_repository留神: 这里须要应用 git 用户进行操作 ...

September 19, 2020 · 1 min · jiezi

关于git:gitpipeasyinstall代理设置大全

在公司内网环境中,拜访公网往往须要通过公司的代理,对于浏览器、IDE等开发工具,都提供了设置代理的配置,对于git、pip、easy_install等CLI工具,则须要通过命令或配置文件进行代理设置,在此做个笔记,防止每次用到了都去Google。 公司内网的代理,拜访时往往须要用户名明码,在URL中带用户名明码的格局如下: http://user:password@proxy_host:portgit代理配置设置代理 git config --global http.proxy http://user:password@proxy_host:portgit config --global https.proxy http://user:password@proxy_host:port给指定域名设置代理如给github.com设置代理 git config --global http.https://github.com.proxy http://user:password@proxy_host:port勾销代理 git config --global --unset http.proxygit config --global --unset https.proxygit config --global --unset http.https://github.com.proxypip设置代理间接在命令行中减少--proxy参数来指定代理pip install numpy --proxy http://user:password@proxy_host:port通过pip config set命令设置代理pip config set global.proxy http://user:password@proxy_host:port这里要留神下,pip官网帮忙文档说的设置办法为 pip config [<file-option>] set name value ,这里的name间接写proxy会报ValueError: not enough values to unpack (expected 2, got 1)谬误,name要写为<profile>.<key>格局,如这里的global.proxy。此操作和间接改配置文件成果雷同,但在不确定配置文件地位的时候,能够应用此操作。 间接批改pip.ini文件进行配置[global]proxy=http://user:password@proxy_host:port easy_install代理设置Windows中 set http_proxy=http://user:password@proxy_host:portset https_proxy=http://user:password@proxy_host:portLinux中 export http_proxy=http://user:password@proxy_host:portexport https_proxy=http://user:password@proxy_host:port

September 18, 2020 · 1 min · jiezi

关于git:git常见问题总结

git常见问题总结git对象彼此关系commit、tree、blob tree --> 文件夹blob --> 文件 一个commit对应一个tree,tree嵌套多层 commit记录此时git仓库的快照, ➜ git_repo git:(master) git cat-file -p e1ba46etree c7ba4c4219xxxxxxparent 67cb0637xxxxxparent ac22ba90cxxxxxauthor who <who@gmail.com> 159xxxxx +0800committer who <who@gamil.com> 159xxxx +0800拆散头指针拆散头指针状态就是HEAD不再指向分支,而是间接指向某个commit。变更未基于某个branch或者某个tag,当进行分支切换时, 在拆散头指针上产生的变更很可能被git抛弃。

September 13, 2020 · 1 min · jiezi

关于git:git-的一些基本操作

一、对于撤销1.commit错了,想撤销怎么办? git reset --soft HEAD^这样就回退到了add的状态 2.如果只是commit的正文写错了,想要批改怎么办? git commit --amend此时会进入到默认的vim编辑器,批改完正文保留就好了 3.撤销所有的曾经add的文件 git reset HEAD .4.撤销add的某个文件或文件夹 git reset HEAD -filename最初,附上一张罕用操作的图

September 11, 2020 · 1 min · jiezi

关于git:教会舍友玩-Git-再也不用担心他的学习

舍友长大想当程序员,我和他爷爷奶奶都可快乐了,写他最喜爱的喜之郎牌Git文章,学完当前,再也不必放心舍友的学习了(狗头)哪里不会写哪里 ~~~ 一 先来聊一聊太多货色属于,总在用,然而始终都没整顿的货色了,从刚接触编程那会,就学着各种教程的进行 ”点击“ ,”输出“,Git 也算一个陈词滥调的内容,想用好也没那么容易,这一篇从前因,以及下载安装、配置,以及理论的上手形式,整顿了进去,不过还是要说,这一篇适宜没接触过 Git ,以及 Git 使用不是很纯熟的敌人,我用了大量的文字以及图片进行了阐明,有些敌人可能会感觉头晕哈哈哈,我感觉,看完起码对于一个老手敌人来说还是有肯定帮忙的。 不过想进阶,以及想看大量命令的敌人就不太适宜了,毕竟这是一篇相似保姆级的入门文章 有须要能够看一下这一篇喔,最近举荐蛮多的一篇 ~ 「一劳永逸」一张脑图带你把握Git命令 By:TianTianUp https://juejin.im/post/6869519303864123399 (1) 为什么要用版本控制?不论是学生期间,亦或者工作了,有时候免不了须要写一些文档,例如你交一份报告给你的指导老师, 最终通过的报告,总是在一直沟通与批改中实现的,例如 V1、V3、V5 是传给老师的版本,老师标注谬误后会回退给我一个偶数的版本,即 V2、V4、V6,这就是版本的一个艰深的概念 而在开发的过程中,随着开发进度的进行,软件的版本也同样须要一直的进行迭代,不论你的代码迭代只进行在你本地,亦或者特定的服务器上,如果依照方才提交报告的模式进行迭代,就会呈现一个问题:即每一个版本中大量代码是反复的 那再想想方法,应用最新的内容替换掉原先旧的版本,或者只保留最新版本以及最新版的前一个版本 然而新问题又呈现了:代码反复的确少了,然而如果多集体同时批改,编辑这个文件,更会呈现更多抵触与问题 要思考的货色太多了,有没有一种比拟货色能够帮忙咱们呢? 这就是版本控制这个概念以及相干技术呈现的一种起因了 (3) 版本控制简介版本控制最次要的性能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠诚地了记录下来。每一次文件的扭转,文件的版本号都将减少。除了记录版本变更外,版本控制的另一个重要性能是并行开发。软件开发往往是多人协同作业,版本控制能够无效地解决版本的同步以及不同开发者之间的开发通信问题,进步协同开发的效率。并行开发中最常见的不同版本软件的谬误(Bug)修改问题也能够通过版本控制中分支与合并的办法无效地解决。 所以,须要对内容版本迭代进行治理,以及多人合作时肯定须要应用版本控制 (二) 版本控制软件工欲利其事必先利其器,有这种需要,天然也不必放心,没这种产品,目前常见的版本控制产品很多,不过作为一名开发人员,其实听到最多的还是 Git 和 SVN,来看看区别 (1) 集中版本控制:SVNSVN是集中式版本控制系统,也就是说,所有版本的数据都是寄存在服务器上的,每次要做什么事件,每个人都是应用本人的电脑,去向地方服务器进行拉取最新的版本内容,完预先再推回去新版本,然而这个行为须要联网的反对,没有网络的状况下,用户只能看到本地以前同步过的内容,无奈查看历史版本,这种形式,会受到网络,以及服务器损坏导致数据失落的掣肘 (2) 分布式版本控制:GitGit 大家应该很相熟了,或多或者也都有用过,还有马上能联想到的 GitHub、GitLab、Gitee Git是分布式版本控制系统,换句话说,它没有像 SVN 那样的地方服务器,它最大的特点就是所有版本信息仓库都会同步到每个用户的电脑中,这样每个人即便在本地也能够查看所有历史的版本,没有联网的状况,也能够在本地的仓库提交,联网时 push 即可,肯定水平上解决了后面 SVN 遇到的一些问题 (三) Git 历史感兴趣的简略看看就行了,间接贴的,略过也行 同生存中的许多平凡事件一样,Git 诞生于一个极富纷争大举翻新的年代。Linux 内核开源我的项目有着为数众广的参与者。绝大多数的 Linux 内核保护工作都花在了提交补丁和保留归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用分布式版本控制系统 BitKeeper 来治理和保护代码。 到 2005 年的时候,开发 BitKeeper 的商业公司同 Linux 内核开源社区的单干关系完结,他们发出了收费应用 BitKeeper 的势力。这就迫使 Linux 开源社区(特地是 Linux的缔造者 Linus Torvalds )不得不吸取教训,只有开发一套属于本人的版本控制系统才不至于吃一堑;长一智。他们对新的零碎订了若干指标: ...

September 10, 2020 · 4 min · jiezi

关于git:git上传到码云分支

应用git上传到码云分支1.开发环境 vue+element2.电脑系统 windows 10 专业版3.在开发的过程中,咱们总是会应用到 git治理代码!应用办法如下:4.登录本人的码云账号:5.在本人电脑中,新建一个文件夹:6.双击进入这个文件夹,右击 抉择 :Git Bash Here 而后输出命令如下: 6-1:git init6-2:git clone -b kun https://gitee.com/chen_shipen...//留神:这个 kun 是我的 分支名称 6-3:敞开 操作命令的窗口,而后找到方才 克隆 下载文件的 门路 307 ,你会发现在 307 上面多了一个文件 Lucky,进入这个文件夹,你会看到 :![image.png](/img/bVbMrXs)//比照码云上的构造:![image.png](/img/bVbMrXw)//你会发现一样,示意咱们当初下载胜利了!7.批改对应的代码之后8.进入 Lucky 文件,右击 抉择 Git Bash Here ,输出命令: 8-1: git pull8-2:git add .8-3:git commit -t "提交的正文"8-4:git push8-5:整体截图:![image.png](/img/bVbMrYF)9.刷新码云,你就会看到对应的提交信息了!10.本期的教程到了这里就完结啦,让咱们一起致力走向巅峰!

September 5, 2020 · 1 min · jiezi

关于git:git分支快速切换提交代码的shell

git分支疾速切换提交代码的shell目标:简化向develop分支提交数据的流程,提高效率 应用形式./quickCommit.sh 更新了图片加载形式 残缺代码#!/bin/bash# 目标:简化向develop分支提交数据的流程,提高效率# step 1 接管commit message 信息 eg:./quickCommit.sh 更新了图片加载形式message=$1if [ -z "$message" ]then echo "致命谬误 请输出commit要提交的信息内容。eg:./quickCommit.sh 更新了图片加载形式" exit 0fiecho "你输出的commit信息是:$message"# step 2 执行git操作git checkout workgit statusgit add .git statusgit commit -m $messagegit checkout developgit merge workgit pullgit pushgit checkout workdevelop我实现了主动部署develop分支是测试代码,我应用了主动部署。正式代码应用手动触发形式,我感觉更释怀。

September 2, 2020 · 1 min · jiezi