美文网首页
git 实用杂记

git 实用杂记

作者: LX2014 | 来源:发表于2017-10-24 17:23 被阅读7次

    一,远程新建仓库,初始化了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项目是不能强行推到远程上去的,这是一个不被允许的被动行为,是对既有项目的保护。但是已有项目是可以主动拉取没有追踪的远程路径代码的,这是一个主动行为。当然最标准的做法是按第二点介绍的方式开发

    相关文章

      网友评论

          本文标题:git 实用杂记

          本文链接:https://www.haomeiwen.com/subject/rnscdxtx.html