好 今天继续来学习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增加点东西创建commitpush试试成功我们去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今天先学到这儿跑路