存档

文章标签 ‘Git’

Git commit 的提交约定

2022年1月9日 没有评论

想要使用 bamboo 自动生成 changelog 文件,检索了下发现已经有现成的方式,即大家约定 git commit message 的格式。

<type>(<scope>): <subject>// 空一行<body>// 空一行<footer>

其中,Header 是必需的,body 和 footer 可以省略。任何一个部分建议长度不要太长避免自动换行。

Header 是必需的,只有一行,包括三个字段:type(必需)、scope(可选)和subject(必需)
(1)type
feat:新功能(feature)
fix:修补bug
docs:文档(documentation)
style: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动

如果type为 feat 和 fix,则该 commit 将肯定出现在 Change log 之中。其它类型(docs、chore、style、refactor、test)可以不用放。

(2)scope
scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。

(3)subject
subject是 commit 目的的简短描述,不超过50个字符。以动词开头,使用第一人称现在时,比如change,而不是changed或changes;第一个字母小写;结尾不加句号(.)

Body 部分是对本次 commit 的详细描述,可以分成多行。
Footer 部分只用于两种情况。一:不兼容变动,如果当前代码与上一个版本不兼容,则 Footer 部分以BREAKING CHANGE开头,后面是对变动的描述、以及变动理由和迁移方法。二:关闭 Issue,如果当前 commit 针对某个issue,那么可以在 Footer 部分标记关闭这个 issue 。

来源

分类: 日常 标签:

git 仓库强制切换更新

2021年12月24日 没有评论

在本地添加了各种测试代码,或者解决冲突失败的情况下,想要完全放弃本地的任何改动(包括已经提交但未推送的变动),直接从远端获取最新的代码记录,可以采用下面的命令。

简单、暴力、好用。

git fetch –all
git reset –hard origin/master
git pull

分类: 一句话, 日常 标签:

git 删除远程仓库的错误提交

2021年10月8日 没有评论

在使用git提交代码的时候,有时候处于某些原因,希望撤回远程仓库里的记录,例如:
– 代码错误,影响编译或者产生bug
– 测试代码错误提交
– 敏感信息提交
– 内容或者作者信息错误或者不完善

那么对应的方式可以怎么做呢?首先我们可以运行:
git reset --hard HEAD~n
这里的数字n就是你想回滚的提交数,最近的一次的提交就写1,其次就写2,以此类推。运行后,就会提示 HEAD is now at commit xxxx。

再强制推送到远端
git push --force

然后远端的内容就更新了,需要注意的是,如果在你原始的提交后,别人也提交了内容,那么在经过操作后,对方的内容也随之消失了。

分类: 一句话, 日常 标签:

Git 代码签出错误解决

2019年5月5日 没有评论

今天是节后的第一个工作日,下午一到单位就开始拉代码,但是很遗憾,命令行有报错:

error: cannot lock ref ‘refs/remotes/origin/aparna_VAN-419‘: is at 6adb1ff7b8c5781af00d3d08125c69b30f127597 but expected f74fc99045f08484c68a20213768b87736edc244

除了重新克隆一份外,还找到了一个相对简单的方式:

进入到项目根目录,执行下面命令:
rm .git/refs/remotes/origin/aparna_VAN-419
git fetch

分类: 一句话 标签:

TortoiseGitPlink Fatal Error

2018年12月20日 没有评论

最近项目的版本控制要切换到亚马逊的服务器上,在申请好权限后,使用TortoiseGit 无法把项目克隆回来,但是使用命令行又是没有问题的。

修改代码后,发现也无法使用小乌龟去提交代码,总是会报错误信息:Disconnected: No supported authentication methods available (server sent: publickey)

对于不习惯命令行的人来说,是需要为此找到解决方法。我怀疑是小乌龟哪里的配置有冲突导致。经过检索,确认下面的方式有效:

TortoiseGit->设置->网络,修改SSH客户端路径,从默认的路径例如 C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe 调整为Git的路径例如 C:\Users\Administrator\AppData\Local\Programs\Git\usr\bin\ssh.exe

这个时候再去提交代码,就会发现没有问题了。

分类: 日常 标签:

BONOBO Git Server 出错的问题

2016年9月17日 没有评论

在很久以前,衣服自己洗使用 BONOBO Git Server 作为Git的源代码管理系统,对于windows而言,很是方便,也不需要手动管理私匙之类的。

上次访问的时候,居然就报错了,日志系统,系统事件里都没有找到有用的信息。后来回忆起,问题应该出现在系统升级到windows server 2012之后。后来无意间在官网上发现了一段文字,原来是目录权限设置问题。

给目录添加IIS_IUSRS角色,并给与权限,问题就解决了。

说起来很简单,但这个解决方法还真不一定想得到。因为从windows server 2003开始,基本上只需要设置network server权限就可以了。衣服自己洗以前是使用windows server 2008也没有什么问题,但是在2012上就需要如此这般设置,官网上也给出了这样的说明。

 

分类: 一句话 标签:

windows环境下Git Server系列之记住密码

2013年11月9日 没有评论

在上一篇文章里,描述了如何在服务器配置自己的 Git Server,作为系列文章第二篇,这次我们来说一说使用Git 遇到的一个问题。

很多开发者喜欢使用命令行来进行版本控制,看起来很炫,特别是在妹子面前,显得很高深有没有。我其实也想炫一下,可惜记不住命令,所以还是用 GUI 界面来吧。

SVN 客户端我使用的是 TortoiseSVN,好在 Git 客户端也有一个类似的就是 TortoiseGit。

首先在目录里,右键选择克隆,然后输入 URL 地址,剩下的就是日常用法了,该怎么用大家各自搜索去。我想说的是保存用户名密码这个细节。

TortoiseSVN 在第一次签出的时候,会有对话框让你输入用户名密码,同时提供一个选项是记住密码。这样每次提交什么的,就不需要再输入了。而TortoiseGit会每次操作的时候,都让用户输入用户名和密码,并没有提供记住密码的功能。这是在调戏各个开发者的节奏哇。

于是我搜索了下解决方法,并在这里和大家分享出来。一共有3种:

第一个方法,如网上所述,先添加一个环境变量,例如 Home,值为 %USERPROFILE%,接下来在 C:\Users\[当前用户名] 路径下创建一个名为 _netrc 的文件。其实呢, %USERPROFILE% 就是等价于 C:\Users\[当前用户名] 目录。用记事本打开 _netrc 文件,输入下面的内容

machine github.com #git服务器名称
login user #git帐号
password pwd #git密码

保存即可。

第二个方法,比这个简单点。项目目录右键打开 TortoiseGit的设置对话框,Git 节点,选择“编辑本地.git/config”,然后增加两行内容就可以了。

[credential]
helper = store

保存即可。事实上这个方法,会在 C:\Users\[当前用户名] 目录下创建一个名为 .git-credentials 的文件,里面就是保存了用户名和密码。

需要强调的是,上面的两种方法都是明文保存的,所以安全性大家可以看着办。

Visaul Studio 是我用的最频繁的开发环境了。最新的版本是 2013,同时在这个版本里,微软添加了对 Git 的支持。所以就有第三种方法,在 VS 的团队资源管理器中,可以设置项目的 Git 属性,这里是可以记住密码的喔。个人猜测用户名密码是放在 VS 的相关配置里,所以应该看不到明文,起码我没有找到明文保存的路径。如果说大家使用的是 VS 之外的开发环境,可就不那么容易了。

最近看到好些个前端开发的职位,可惜我心有余而力不足。

分类: 日常 标签: , ,

windows环境下Git Server系列之安装配置

2013年11月9日 1 条评论

先来说一说背景。最近一直在加班陪着忙一个项目。项目开始的时候,说是来了一个牛人,很有个性。对于项目的版本控制,坚持要用git。人家用git,是把代码给提交到 Github 上面。

一来,我们这边从上到下都习惯用SVN,版本控制服务器也是个windows服务器,而git server 大部分是linux系统。另外一点,商业项目放在Github上,管理层有些担忧。后来,双方的PM都给那个牛人做工作,在压力下人家最后同意使用svn。

于是项目就开工了,最近一个月周末不休息都在加班。不过这个倒是题外话了。

我一直就在琢磨如何架设自己的 Git Server这个事情,SVN Server 我用的是免费的 VisualSVN Server,一直希望有个类似的window平台上的 Git Server。这么些年来,我习惯了 GUI 的操作,始终觉得 linux 的命令太难以记忆。如果有一个简单的软件在windows服务器上运行,并且有界面配置,简单容易操作,那该多好。

在网上搜索了一把,貌似很多都是在 windows 下模拟的 linux 环境,然后 ssh 登陆什么的。违背了简洁的原则,有这个折腾的功夫,我还不如就用linux服务器呢。昨天终于无意间被我搜索到一个开源的东西,可以满足我的要求了。

主角出场,那就是 Bonobo Git Server。

bonobo

这个应用的官网是http://bonobogitserver.com/

下载地址是:https://github.com/jakubgarfield/Bonobo-Git-Server

首先允许我来介绍下这个应用,它是运行在 IIS 下的使用 MVC3+ 的网站。网站本身使用了SQLite 存储,然后 git 方面是调用的其它组件。

相比其它的方式,有什么优点呢?首先不需要各种模拟linux环境,原生的。另外VisualSVN Server 还自带安装apache,而 Bonobo Git Server直接使用 IIS,感觉更爽。

下载解压缩,然后添加到 IIS 里,记得使用 netframework 4.0 应用池,为该网站添加一个域名就可以了。安装完成后,访问网站,输出初始用户名和密码 admin,即可登录。当前的版本已经支持多语言了。

进入了管理界面,首先要做的是修改全局设置。修改库目录为服务器上的目录文件夹,记得该文件夹要有写权限。至于是否允许匿名提交、匿名注册什么的,大家就根据实际情况设置吧。

全局设置完毕,再来设置用户,强烈建议大家修改admin的密码。同时再创建一个个人用户,admin 用来管理这个网站,而新建的个人用户则用来代码的提交。用户信息里有一个邮箱项,建议填写真实的邮箱。

然后就是库设置,新建一个库,设置权限什么的,有中文界面,很简单的,就不细说了。创建完成后,点击库,就可以查看库的 URL 地址了,这个地址就是版本控制的地址。

至此,服务器端的设置就完成了。大家可以开发使用了。

分类: 日常 标签: , , , ,