好 今天继续来学习git
上次遇到了一个叫做remote的概念 先研究一下
这个help页面其实给出了挺多信息的
首先很多参数和url有关
其次是这个
所以 remote其实就是仓库的别名?
我们把项目复制一份
然后file url
没动静 按照之前branch的经验 应该是添加成功了吧
我们列出所有的
漂亮
那假设 我们在giao0改点东西
提交一下
根据help里的example 我应该能用fetch把这个改动同步过来?
告诉我成功了 cat一下看看
并没有改变。。。
log一下试试
没有出现我们新的那次commit
但是 注意到the/crap 这个格式是remote名/branch名
所以现在branch名类似于cpp的命名空间了?
列出所有branch看看
妹变化呀
验证一下在giao的记录中有没有那一次commit 先回到giao0
好 “神秘代码”是00eca5b61186d859b1fae2ee9e8354d38f96c104
我们回到giao看看能不能show出来
是可以的 而且确实出现了the/master这种东西
我们merge一下呢
顺利的成功了
再cat一下
没毛病
那为什么branch没有显示出the/master之类的呢
help一下看看
这个参数好像有点用 试试
出现了
那如果我本地改了东西 要同步到the呢
我们先改点东西
创建一次commit
接下来的任务是吧这次commit提交到the 也就是giao0文件夹 我们先help
找到fetch所在栏目应该就是了
是我们喜闻乐见的push和pull 之前往github传动西是push 那么这里会不会也是
试试看
之前新建项目上传到github好像也遇到过 之前我是无脑按提示来 这次我们细看
他说没有upstream branch 需要设置一下
那什么是upstream branch呢
找到了 在这里
按照他所的 man git-config
也说的不是很清楚 我大概理解是pull 和push的默认参考branch?
我们按照他提示的git push --set-upstream the master来
报错了: (
被拒绝 因为会导致index和work tree不连贯
push不加参数会同步到upstream 而upstream设置不成功 那能不能push加参数 同步到指定位置呢
我们先help看看
确实可以家repo的名字作为参数
还是失败 : (
好吧 虽然他说不推荐 但是我们只能尝试他所说的receive.denyCurrentBranch了
在help man和文档找了一大圈都找不到后 实在受不了了。。。
既然是recieve deny等关键词 那应该是在被push的一端 也就是giao0中设置?
试试看
回到giao
去giao0 cat一下看看
成功是成功了 但是git官方好像不是很推荐这么干
回忆一下 我们从github是可以直接pull的 那么就是要找github上面的那个repo和giao0有什么区别
在翻找了半天文档后 找到了这个
都public了 再不让push就说不过去了吧
按照他说的来
添加一下remote
增加点东西
创建commit
push试试
成功
我们去giao.git cat一下看看
可以看见这里面根本没有main.c 而是和普通repo里的.git一样的结构 改动已经是object形式了?
也说的通 因为之前的报错是因为giao0里面存在index和work tree 这里面直接禁止存在这些
那么我们clone一个这个东西 应该就是最新一次commit了吧
没问题
那么 其作用的是参数--bare 还是目录后面的.git呢 试试
目录看起来倒是对头
我们去giao改点东西push一下试试
没问题 那么也就是说.git结尾是某种社区习惯 --bare才在其作用
我们help一下看看--bare是什么意思
出现了一个概念叫做bare repo
这种repo正好符合之前upstream的条件
个人感觉这种repo应该出现于服务器或者某些共享位置吧 一般用u盘之类的同步还是直接cd进目录去fetch了merge 或者直接pull
今天先学到这儿
跑路~