文档章节

使用 git 命令行实现 commit 到 bare 仓库

tsl0922
 tsl0922
发布于 2014/03/24 10:41
字数 297
阅读 551
收藏 2
点赞 0
评论 0

这是一个shell脚本,可以直接执行,观察它的输出,然后再去检查bare仓库,看看结果是否正确。

#!/bin/sh

cd ~

rm -rf bare.git

echo "-------> create bare repo"
echo ""
git init --bare bare.git
cd bare.git

echo ""
echo "-------> initial commit: test.txt"
echo ""
# create object
obj=`echo 'test content' | git hash-object -w --stdin`
# create index
git update-index --add --cacheinfo 100644 $obj test.txt
# create tree
tree=`git write-tree`
git ls-tree $tree
echo ""
# commit
commit=`echo 'initial commit' | git commit-tree $tree`
git log --stat --pretty=oneline $commit

echo ""
echo "-------> second commit: new.txt"
echo ""
# second commit
obj1=`echo 'new content' | git hash-object -w --stdin`
git update-index --add --cacheinfo 100644 $obj1 new.txt
tree1=`git write-tree`
git ls-tree $tree1
echo ""
commit1=`echo 'second commit' | git commit-tree $tree1 -p $commit`
# create refs
git update-ref refs/heads/master $commit1
# update head
git symbolic-ref HEAD refs/heads/master
git log --stat --pretty=oneline HEAD

echo ""
echo "-------> third commit: edit test.txt"
echo ""
# delete index
rm index
# create index from HEAD
git read-tree HEAD
obj2=`echo 'edited test content' | git hash-object -w --stdin`
git update-index --cacheinfo 100644 $obj2 test.txt
tree2=`git write-tree`
git ls-tree $tree2
echo ""
commit2=`echo 'third commit' | git commit-tree $tree2 -p $commit1`
# update refs
git update-ref refs/heads/master $commit2
git log --stat --pretty=oneline HEAD

© 著作权归作者所有

共有 人打赏支持
tsl0922

tsl0922

粉丝 259
博文 26
码字总数 11714
作品 1
深圳
高级程序员
Git:导入外部仓库至托管平台

针对最近有很多网友提问,如何导入外部代码仓库(Github、bitbucket、Google Code等等)到Git@OSC ,给出如下解决方案: 方案一: git clone --bare https://github.com/bartaz/impress.js....

奋斗的阿Q ⋅ 2017/02/09 ⋅ 0

Git Push代码到数据仓库

"remote:error:refusing to update checked out branch:refs/heads/master"的解决办法 在使用Git Push代码到数据仓库时,提示如下错误: [remote rejected] master -> master (branch is cur......

DB_Terrill ⋅ 2012/11/09 ⋅ 0

git init 和 git init –bare 的区别

git init 用”git init”初始化的版本库(称之为work tree(工作目录))将会生成“.git“版本库目录(记录版本历史),工作目录包含有版本历史目录“.git”和项目源文件目录,你可以在工作目录修改你...

origin ⋅ 2016/05/18 ⋅ 0

git基础命令和部分原理

----git 中的一些概念 1.工作区 当前直接操作的内容 2.暂存区 临时存放改变的内容 3.版本库 仓库中保存的内容 ----git存储变化 1.git add 暂存区目录树更新 修改或者增加的文件内容会写到对象...

Lubby ⋅ 2015/11/18 ⋅ 0

git各种状态下撤销修改的方法

使用git时会出现各种各样的问题,下面是几种情况下怎么反悔的操作 一,未加入缓存区,撤销文件修改 git checkout -- file 二,已加入缓存区,撤销文件提交 git reset HEAD file 或git rm --...

slagga ⋅ 03/02 ⋅ 0

【Git入门之六】远程仓库

远程仓库是用来把Git仓库托管到互联网,本地网络或者本机中。 本文主要介绍在本机中创建远程仓库(Remote repositories)。 1.创建一个本地远程仓库 使用git clone --bare来创建一个本地远程...

yangxiaoxiao ⋅ 2014/01/05 ⋅ 0

GitHub详细教程

1 Git详细教程 1.1 Git简介 1.1.1 Git是何方神圣? 1.1.2 重要的术语 1.1.3 索引 1.2 Git安装 在Ubuntu上,你可以通过apt来安装git命令行工具 sudo apt-get install git-core 对于其他的Linux...

张旭0512 ⋅ 2014/06/26 ⋅ 0

git用网盘做版本仓库,实现异地同步[待验证]

git在不用github这种远程仓库时,如何实现异地同步呢? 下班前提交代码,回家后同步代码继续开发并提交,第二天来公司继续…… 这里做个实验:用网盘的目录同步功能,我们打造一个"伪远程仓库...

吾爱 ⋅ 2014/09/01 ⋅ 1

Git教程【译】

技术非宅男 Git教程【译】 原文出处:http://www.vogella.com/articles/Git/article.html 翻译说明:个人出于兴趣爱好翻译这篇Git教程(google 搜索git tutorial排名第一的文章)。学习git最...

嘻哈开发者 ⋅ 2014/01/17 ⋅ 0

Git系列笔记之六:其他应用

使用Github 在Github上面,所有的项目都是开源的,我们可以参与别人的开源项目,别人也可以参与自己的项目。 那么,我们怎么去参与别人的项目呢?比如我们想参与某个项目,并修复它的一个bug...

阿振 ⋅ 2016/05/07 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

中标麒麟(龙芯版)7.0优盘安装

########################################## 制作U盘安装盘: 1.准备U盘: PMON环境下U盘必须格式化成ext3; 昆仑固件环境下可以格式化成ext3,ext4 2.把整个镜像 xxx.iso 复制到U盘下面 3....

gugudu ⋅ 21分钟前 ⋅ 0

老司机写的大数据建模五步走

本文将尝试来梳理一下数据建模的步骤,以及每一步需要做的工作。 01 第一步:选择模型或自定义模式 这是建模的第一步,我们需要基于业务问题,来决定可以选择哪些可用的模型。 比如,如果要预...

gulf ⋅ 30分钟前 ⋅ 0

PacificA 一致性协议解读

PacificA 的 paper 在 08 年左右发出来的,比 Raft 早了 6,7 年。 在 PacificA 论文中,他们强调该算法使用范围是 LAN (Local Area Network),讲白了就是对跨机房不友好。 不管是 ZAB,Raf...

黑客画家 ⋅ 32分钟前 ⋅ 0

盘符图标个性化

设置自己的专属盘符图标 准备ico格式的图片文件一个,在根目录下创建autorun.inf文件 文件内容 [Autorun]icon=logo.ico 重新启动或者插拔U盘即可看到结果...

阿豪boy ⋅ 32分钟前 ⋅ 0

Windows下QQ聊天记录中图片的默认存放位置

Windows下QQ聊天记录中图片的默认存放位置在设置中是没有说明的。 实测位置在:D:\Documents\Tencent Files\974101467\Image 其中: “974101467”为对应的QQ号; “C2C”为个人之间的聊天图...

临江仙卜算子 ⋅ 39分钟前 ⋅ 0

GC 的三种基本实现方式

参考资料《代码的未来》(作者: [日] 松本行弘)。 由于并非本人原著(我只是个“搬运工“),SO 未经本人允许请尽情转载。 另外个人像说明一下这里所说的GC指泛指垃圾回收机制,而单指Jav...

xixingzhe ⋅ 40分钟前 ⋅ 0

Android双击退出

/** * 菜单、返回键响应 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode......

王先森oO ⋅ 44分钟前 ⋅ 0

idea 整合 vue 启动

刚学习Vue 搭建了一个项目 只能命令启动 Idea里面不会启动 尝试了一下修改启动的配置 如下: 1.首先你要保证你的package.json没有修改过 具体原因没有看 因为我改了这个name的值 就没办法启动...

事儿爹 ⋅ 49分钟前 ⋅ 0

redis在windows环境的后台运行方法

在后台运行,首先需要安装redis服务,命令为 redis-server.exe --service-install redis.windows.conf --loglevel verbose 启动,命令为 redis-server --service-start 停止,命令为 redis-...

程序羊 ⋅ 53分钟前 ⋅ 0

比特币现金开发者提出新的交易订单规则

本周,四位比特币现金的四位开发者和研究员:Joannes Vermorel(Lokad),AmaurySéchet(比特币ABC),Shammah Chancellor(比特币ABC)和Tomas van der Wansem(Bitcrust)共同发表了一篇关...

lpy411 ⋅ 56分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部