首页 › 分类存档 › git

使用 Git 生成编译版本号

一般而言,我们的软件版本号通常会包括一个编译版本号。如果你的代码使用版本控制系统进行管理(很多开发者都是这么做的),这个编译版本号可以是我们版本控制系统的提交版本。

如果我们使用 Git 进行管理,这个版本号会是一个 40 位的 SHA-1 的哈希值。不过,要是我们的软件版本号添加这么一个 40 位长的字符串,显然是不合适的。所以我们一般会取前 7 位——如果这样还不能标识出唯一版本,那么就取前 8 位等等。不过,手动去修改这个值当然是不合适的,我们有更简便的方式。这就是本文所要介绍的内容:使用 Git 生成这个编译版本号。
继续阅读 »

Auto packing the repository in background for optimum performance

git运行突然提示
Auto packing the repository in background for optimum performance

查资料,原来是自己本地一些 “悬空对象”太多(git删除分支或者清空stash的时候,这些其实还没有真正删除,成为悬空对象,我们可以使用merge命令可以从中恢复一些文件)

解决:
1.输入命令:git fsck –lost-found,可以看到好多“dangling commit”
2.清空他们:git gc –prune=now,完成

git配置代理命令

// 查看当前代理设置

// 设置当前代理为 http://127.0.0.1:1080 或 socket5://127.0.0.1:1080

// 删除 proxy git config –global –unset http.proxy

如何把GIT仓库的子目录独立为子模块

最近在给考拉山后台添砖加瓦的过程中,发现了两个问题:

  • 对于当前的同一套逻辑,我已经有4个view层工作在上面了,马上还要再加上一个view,专门用来显示分享出去的页面;
  • 接下来还要再加上同步evernote这种异步任务;
  • 而现在这些代码都还在同一个GIT仓库中;

这种混乱的场景已经快让我不能忍了,于是乎决定把这个大仓库中的所有businessmodel的代码独立到一个submodule中,这样接下来就可以进一步的拆分各个view让它们都引用这个submodule

还好之前的代码结构还算比较好,所有businessmodel的代码都在一个名为coloshine的目录中,所以接下来只要解决如何把一个子目录独立成一个submodule并且保存分支和提交历史这个问题就好了。
继续阅读 »

gogs git请求报错 401

1.我们在服务器上直接git clone项目的版本库的时候报401错误!
错误如下:error: The requested URL returned error: 401 Unauthorized while accessing
原因:git 版本过低

2.git –version 查看一下当前的git版本
因为centos yum 安装的git是 1.7.1
所以我们要升级git的版本

3.如何升级git
更新yum: sudo yum update
安装依赖包:sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
下载git:wget https://github.com/git/git/archive/v2.3.0.zip
解压然后进入到目录下
安装:make prefix=/usr/local/git all
sudo make prefix=/usr/local/git install

4.再执行下git –version看git版本是否升级
如果还是1.7.1 需要修改环境变量
sudo vim /etc/profile
在文件的最后加入:export PATH=/usr/local/git/bin:$PATH
source /etc/profile:应用修改
git –version 切换到了2.3.0
这样git的命令就可以正常使用了!

删除git远程分支和tag

在Git v1.7.0 之后,可以使用这种语法删除远程分支:

删除tag这么用:

否则,可以使用这种语法,推送一个空分支到远程分支,其实就相当于删除远程分支:

这是删除tag的方法,推送一个空tag到远程tag:

两种语法作用完全相同。

Git工作流指南:Pull Request工作流

Pull Requests是Bitbucket上方便开发者之间协作的功能。提供了一个用户友好的Web界面,在集成提交的变更到正式项目前可以对变更进行讨论。
pull-request-bitbucket
继续阅读 »

Git工作流指南:Forking工作流

Forking工作流和前面讨论的几种工作流有根本的不同。这种工作流不是使用单个服务端仓库作为『中央』代码基线,而让各个开发者都有一个服务端仓库。这意味着各个代码贡献者有2个Git仓库而不是1个:一个本地私有的,另一个服务端公开的。
git-workflows-forking
继续阅读 »

Git工作流指南:Gitflow工作流

git-workflows-gitflow

这节介绍的Gitflow工作流借鉴自在nvieVincent Driessen
继续阅读 »

Git工作流指南:功能分支工作流

git-workflow-feature-branch-1

一旦你玩转了集中式工作流,在开发过程中可以很简单地加上功能分支,用来鼓励开发者之间协作和简化交流。
继续阅读 »