git常用实记

git 常用小操作

更新本地仓库的远程地址【remote】

如果远程仓库的地址更新了,我们本地仓库就需要更新 remote 地址

查看本地绑定的远程地址

git remote -vorcat .git/config

先删除后添加

git remote rm originandgit remote add origin git@gitee.com/xxx.git

直接更新

  • HTTPS 协议

git remote set-url origin https://gitee.com/xxx.git

  • SSH 协议

git remote set-url origin git@gitee.com:UncleYong/javaAutoTest.git

忽略已经被跟踪的文件

初始化仓库的时候,如果 gitignore 文件中没有添加忽略的文件或目录,默认情况下,目录里所有文件都是被存入本地仓库中的,这个时候再写入 gitignore 文件的被跟踪文件或目录,是不会被忽略的。所以,对于已经被存入仓库的文件是没办法通过 gitignore 取消的。

先从本地仓库中取消对该文件的跟踪

git rm -r --cached filename

最后 filename 加入 gitignore,再重新提交就生效了。

使用 git pull “fatal: 拒绝合并无关的历史”

小概率事件吧,一般产生是因为本地仓库版本和远程版本不一致导致的,我来说一下我遇到这个问题的原因:电脑重置,我事先把项目拷贝到 u 盘,当然 git 仓库太沉重就过滤掉了。

然后新系统好了之后就把 u 盘里的项目代码切回来了,重新初始化本地仓库,remote 添加远程地址,然后,尝试拉取上传代码,然后就复现了这个问题,其实这个”fatal: 拒绝合并无关的历史”错误也好解决,如果仓库就是你自己维护,那么强制提交就可以了:git push origin master --force当前我不想,主要是发现了问题想知道怎么解决。

很好理解,版本不同是因为我这个本地的仓库历史记录是新的,和线上那个根本不是一个频道,那么怎么解决呢,百度一下找到了解决办法

解决问题的代码

git pull origin master --allow-unrelated-histories

然后无论 push 还是 pull 都 ok 了。

问题代码复现

  1. 初始本地仓库
git init
git add .
git commit "提交说明"
  1. 连接远程主机:
git remote add  origin  远程仓库地址
  1. push 到远程仓库:
    git push origin master
  2. 报错
MacBook-Pro:~/go/src/demo/open$ git push -u origin master
To codehub.devcloud.huaweicloud.com:t00001/open.git
 ! [rejected]        master -> master (non-fast-forward)
error: 推送一些引用到 'git@codehub.devcloud:Openxt00001/open.git' 失败
提示:更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支。
提示:再次推送前,先与远程变更合并(如 'git pull ...')。详见
提示:'git push --help' 中的 'Note about fast-forwards' 小节。
  1. 提示先拉取更新
MacBook-Pro:~/go/src/demo/open$ git pull origin master
来自 codehub.devcloud.enxt00001/open
 * branch            master     -> FETCH_HEAD
fatal: 拒绝合并无关的历史
  1. 解决方法:
    在拉取时使用以下命令:
    git pull origin master --allow-unrelated-histories

  2. 官方解释
    By default, git merge command refuses to merge histories that do not share a common ancestor. This option can be used to override this safety when merging histories of two projects that started their lives independently. As that is a very rare occasion, no configuration variable to enable this by default exists and will not be added.
    默认情况下,git 合并命令拒绝合并没有共同祖先的历史。当两个项目的历史独立地开始时,这个选项可以被用来覆盖这个安全。由于这是一个非常少见的情况,因此没有默认存在的配置变量,也不会添加。

  3. 最后再执行
    git push origin master




如果你遇到了前端难题,或者需要一对一帮扶服务,请到淘宝搜索店铺:前端在线或扫下面二维码

  转载规则


《git常用实记》宋宇采用知识共享署名 4.0 国际许可协议进行许可。
 上一篇
mac 常用软件mac 常用软件
MAC里很多常用的好用软件,持续分享…… paste媲美win10里的剪切板管理工具,现在是订阅收费模式,我这里有免费的,不过不能升级。你懂的。 翻译软件欧路词典:基本常用功能免费使用,足够,我最喜欢它的快捷键翻译,很好。Bob 国产翻译
2021-01-30
下一篇 
nedbnedb
一个本地的数据库工具,使用 node 驱动 nedb-promises一个本地的数据库工具,它拥有 mongoose 的全部语法,去操作本地数据存储。官网
2020-12-23
  目录