Git for Windows的编译环境

Git默认是为Linux设计,在Windows上编译的话,需要一个类Linux环境。 Git for Windows是一个提供此环境的项目,其Github主页是:https://github.com/git-for-windows/git ...

March 5, 2022

探一探Git的Index

Index是Git的一个缓冲区域,很多操作都会涉及index。 ...

March 4, 2022

Windows下为git的ssh连接添加代理

...

October 5, 2020

粗略了解下Git的Pathspec

git的多个命令都需要指定pathspec。本文探讨一下git的pathspec。 ...

November 24, 2019

Windows下使用pageant为cygwin提供ssh密钥服务

如果ssh-gen生成私钥的时候设置了口令,那么每次验证的时候都需要输入口令,有点麻烦。一个办法是使用ssh-agent启动一个密钥服务,然...

September 1, 2019

分布式版本管理工具的内涵【三】Fossil篇

分布式版本管理工具的内涵【三】Fossil篇 前面介绍了Git和Mercurial这两款分布式版本管理工具(DVCS),这篇开始介绍Fossi...

July 26, 2018

分布式版本管理工具的内涵【一】Git篇

软件开发人员一直在寻找合适的版本管理工具来管理代码。从最早的CVS到现在的Git,经过时一二十年的时间。从早起的以CVS/SVN为代表的集中式版本管理系统(CVCS or Centralized Version Control System),发展到现在以Git/Mercurial为主的分布式版本管理工具(DVCS or Decentralized Version Constrol System)。本文旨在探讨眼下流行的DVCS的一些内涵,主要涉及Git、Mercurial和Fossil。 ...

June 24, 2018

Fossil:基于SQLite又用于SQLite的DVCS

今天要给大家介绍Fossil,它是一款分布式版本管理工具(DVCS)。Fossil的作者是D. Richard Hipp,你可能对他不太熟悉,但是你一定听过...

June 21, 2018

用Go语言写一个简单的Gitweb Server

Git的发行版中带了一个叫gitweb的工具,可以以web的方式来查看git仓库。但是gitweb本身是一个CGI脚本,需要一个支持CGI的Web服务器来运行它。这篇文章介绍如何用Go语言写一个简单的服务器,用来运行gitweb。 ...

March 7, 2018

让Git只Checkout部分文件

如果一个Git仓库很大,有成千上万的代码,要把这些代码全部checkout出来,耗时长且占空间。如果你的目的只是为了快速修改某个子目录下的一个文件,完整checkout出全部代码就显得很悲催了。所幸的是,Git支持Sparse Checkout,可以只checkout部分目录。 ...

February 11, 2018

使用Vim的目录比较插件DirDiff来显示Git改动

使用git的时候常常要用到文件比较工具,图形界面下可选的文件比较工具非常多,但是在终端下好用的就寥寥无几了。 Vim作为一款强大的文本编辑器,自带有文件比较功能。可惜Vim的文件比较功能只能用来查看文件的差异,不能对比目录。不过好在Vim有海量的扩展,有一款扩展可以弥补这个缺憾,就是DirDiff。 下面介绍如何在git中使用Vim的DiffDir插件。 首先我们在~/.gitconfig里面自定义一个difftool叫vimdiffdir: 我们就可以在git的difftool命令中调用vimdiffdir: 方便起见,我们可以为vimdiffdir起一个同名的别名: 来简化了vimdiffdir的使用: git有一个show命令来显示某个commit的改动,有了vimdiffdir,我们也可以自定义一个vimshow命令来在Vim中查看commit的改动,这需要在~/.gitconfig中加入: 然后就可以: 大功告成!...

February 4, 2015

git小贴士:推送本地分支到异名远程分支

今天学习了一个小技巧,如何把改动从本地分支推送到远程仓库的一个异名分支: local_branch:remote_branch是一个所谓的,它的完整版是: 把本地分支同步到远程同名分支: 把本地分支同步到远程异名分支: 如果省略,则删除远程分支: 如果省略和,则将所有本地分支的改动同步到远程的同名分支: :也可以省略,上面的命令和git push orgin等效。 non-fast-forward 默认情况下push命令只使用fast-forward操作,如果在前面指定+,可以让push使用non-fast-forward操作,这跟在push后面指定--force参数是一个道理 *参考: git push --help

July 11, 2014