我想知道git命令行是否有办法从远程仓库复制分支历史记录。换句话说,我想将.git/logs
目录从远程复制到我的.git/logs
目录 - 即使这意味着覆盖我的日志文件夹。
编辑:
为了进一步澄清,假设在名为foo
的远程上有一个名为origin
的分支,我希望能够输入:
$ git rev-parse --verify foo@{2}
在我的计算机上,输出与原点完全相同。这需要的不仅仅是git log
。
此外,有人可以执行git update-ref foo foo^
以撤消提交,并且该历史记录仅保留在.git/logs
文件夹中。
答案 0 :(得分:1)
历史将与克隆一起复制。您需要做的就是检查分支并运行日志。
示例 - 假设您的远程存储库为origin
,分支为foo
。
您可以运行git checkout --track -b foo origin/foo
结帐并跟踪远程分支
要获取历史记录,请运行foo
确保您位于分支git branch
,现在输入
git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short
你可以看到分支的历史
$ git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short
* 075086d 2012-01-06 | Added for joyent (HEAD, origin/tableUpdate, tableUpdate) [xxx]
* 8352180 2012-01-06 | Added package and loggging [xxx]
* ed9300f 2011-12-26 | Added stylesheet [xxx]
* e8b39fa 2011-12-26 | Increased templating, renamed div to meaningful names [xxx]
如果我切换到母版,它将会有所不同,正在运行git checkout master
和git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short
,我
$ git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short
* 6402a2e 2012-01-08 | Added README (HEAD, origin/master, origin/HEAD, master) [xxx]
* 292c57a 2012-01-08 | Removed port, this is autodetected [xxx]
* e0ef362 2012-01-08 | Changed port to 8080 and document lookup is dynamic [xxx]
最后,为了防止在输入那个长日志命令时手指晃动或脱落。您可以创建一个快捷方式,在主目录中创建(假设为Unix)~/.gitconfig
并添加行
[alias]
hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
然后您可以运行git hist