git 实用杂记

一,远程新建仓库,初始化了readme 将本地新建项目的远程路径关联新建的仓库,本地提交后拉取远程数据会报: refusing to merge unrelated histories

解决办法是:git pull origin master --allow-unrelated-histories

在没有初始化readme文件,是空工程时,可以直接推送到远程.

二,公司小组新建了一个工程的新分支,需要建立本地和自己的远程分支:之前的做法是clone自己远程的master,然后新建一个本地分支,拉取小组的的远程分支.(这个不是标准做法)

标准做法是:
1,clone自己fork的地址:git clone http://。。。
2,添加小组的远程路径:git remote add upstream http://...。
3,查看远程地址:git remote -v
4,查看分支:git branch -a

查看分支

5,如果没有upstream的分支信息可以使用:git fetch upstream --prune 更新分支信息
6, 关联远程分支:git checkout -b branch2.5.1 remotes/upstream/branch_2.5.0


关联小组远程分支

7,再查看时,已经切换到新关联的分支下面了:git branch -a

三,要在某个tag下开发

在开发分支上,迁出主干的小组分支下tag代码:

git checkout  -b branchName gatName

提交完当前开发的代码后,执行以上命令就迁移到了新的指定tag分支上。

三,gitlab上查看某个文件的修改历史:

在repository下,选择指定分支 -> 选择某个文件 -> history 就可以查看该文件的所有历史修改

四,在已经开发的git上,如果去下载(download)指定tag的代码,重新git init ,修改了代码又想合并到之前的开发或主干分支上(标准做法是前面第二点的做法,此处只是对误操作的补救措施)

这种是无法推送到原来的git分支上面的,因为本地的git不是从原来的地址clone或者分支切换出来的。
方法一:用对比工具找出修改的地方,慢慢改。
方法二:新的git关联原来的远程git路径,能够更新下来代码,这样也有一个新的思路是:把新的git项目推送到新建的远程路径上,给原来的git项目添加上新的远程路径(git remote add newOrigin newUrl),再去拉取新的远程路径(git pull newOrigin master ----allow-unrelated-histories),经测试,这样是可以实现把从指定tag download下来的代码合并到原来的分支上。

合并过程

这个实例也让我们对git的设计有了新的认识,没有追踪的git项目是不能强行推到远程上去的,这是一个不被允许的被动行为,是对既有项目的保护。但是已有项目是可以主动拉取没有追踪的远程路径代码的,这是一个主动行为。当然最标准的做法是按第二点介绍的方式开发

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于版本控制系统(即VCS:Version Control Systems) 历程:什么是版本控制系统(VCS)?...
    DHFE阅读 607评论 1 1
  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,723评论 4 54
  • 熊猫书院的熊猫老师给我一个私信提醒:“熊猫主任送给你一个可以穿越时空的信封,它会自动寄给10个月后的你,你要写点什...
    晓雪Eileen阅读 326评论 0 0
  • 11.8 姓名:韩艾辰 第69天 【学习:30分钟】 【冥想(静定):20分钟】 【找到/服务老师:每天至少为老师...
    韩艾辰阅读 155评论 0 0
  • 看到很多同行总喜欢转发交易相关的文章,实是自己做不到,做到了自己去逼去践好了,拾人牙慧的目的是滋养身心融会贯通。唉...
    纵情嬉戏天地间阅读 193评论 0 0