git version 1.6.0.4
几个新手刚刚开始接触 Git,为了维护核心仓库的“纯洁”,避免太多无关信息被误提交进仓库(再次批评一些图形化工具默认的“Select All”),采用了核心仓库只读,邮件提交 patch,审核后再提交的工作流程。
期间有时会遇到合并冲突,正常的原因一般是未及时下载新版本产生了冲突,特殊一点的原因是手工修改 patch 内容导致的。有时候看注释写得不够准确,忍不住就改了,有时候是 Geany 保存时自动去除了 patch 原文中的行尾空格,有时候是文件回车格式、BOM 等变动了,总之合并 patch 的时候,如果生成 patch 的“原稿”找不到,一般
......
[Continue Read/阅读全文]
Svn/Git
conflict, example, git, import, merge, patch, Svn/Git
实在是受不了有些人的 Git 提交,费大力气“回滚”,遂整理了这些刚开始用 git 或者还没有建立 scm 概念时容易犯的错误。
和源码无关的东西,尽量不要进仓库
不得不说一些图形化软件,在提交内容的时候大多提供一个“全选”或者“Select All”功能,这是最不好的了,一些懒惰的同志看都不看就连瓢带碗都提交了。
测试时上传的文件,测试时的临时文件,统统不要
对应上一条,强烈建议把所有文件的上传保存目录另行设置,放到源代码目录以外
编辑器产生的备份文件、临时文件,编译时的中间文件,统统不要
对应上一条,有个例外就是为了实现通过 Git 更新系统,.NET 的 bin 文件要进仓库,导
......
[Continue Read/阅读全文]
Svn/Git
git, newbie, rule, Svn/Git, tips
首先,抛弃本地的修改应当用:
$ git reset –hard HEAD
使用 git 自身功能来回滚代码,取消上一次的修改应该用:
$ git revert sha1_of_commit
但要注意,虽然代码是实现了回滚,同时也会自动产生一条“回滚代码”的 log 。
有些时候,由于工作人员粗心,错误提交的内容完全无意义且占用空间颇大,就想真正 undo 掉错误的 commit,连历史记录都不想留。以下是我尝试的做法:
准备一份干净的客户端仓库
在客户端,下载服务器上的每个分支,并更新到最新状态。git branch -a查服务器上有哪些分支,挨个 checko
......
[Continue Read/阅读全文]
Svn/Git
commit, git, reset, revert, rollback, undo
当然是通过hooks来实现了,对应post-receive,脚本也是已经随git-core安装就有了的:/usr/share/doc/git-core/contrib/hooks/post-receive-email,不过这个脚本用到了sendmail,我想好多机器上都没配这个东东吧,好在有好心人在这个脚本的基础上进行了完善,可以用msmtp发信了,看来我以前换用msmtp配mutt太正确了,另外msmtp也确实比sendmail小巧多了。
首先把刚才说到的脚本以及依赖文件functions一起下载到某地,加上执行属性(公用),然后ln到仓库的hooks目录下:
$ cd test.git
......
[Continue Read/阅读全文]
Linux, Svn/Git
email, git, gmail, hooks, msmtp, tls
我的学习路径:git basic, http webdav, git-svn, gitosis, gitweb,下面是一些学习记录。
http webdav方式访问
ubuntu下安装非常简单,用apt装上git-core包即可。git仓库的外部访问,首先就是最熟悉的用http协议走apache上的webdav服务,方便啊。git自身的身份认证和权限分配弱了一些,不过可以借助apache实现用户分配,passwd文件直接用svn的也没问题。apache配置示例如下:
Alias /git “/big2/git”
<Location /git/test.git
......
[Continue Read/阅读全文]
Linux, Svn/Git
Apache, cgi, config, git, gitosis, gitweb, hooks, svn, webdav