Git学习


前言

提示:远端创建git仓库初始化,本地新建项目进行本地初始化如何关联远端仓库


提示:以下是本篇文章正文内容,下面案例可供参考

一、操作步骤?

1.本地初始化

git init

如果你使用git版本比较高的话会给出下面警告提示:
在这里插入图片描述
这个可以跟着提示操作就好

这个提示出现是因为在较新的 Git 版本中(大约从 Git 2.28 开始),默认的初始分支名称被建议从 master 更改为 main,以避免与某些系统命令(如 Unix/Linux 系统中的 master 命令)发生冲突,只需要保持本地分支名和远端一致就行。

2.git pull origin master报错

在合并时候可能会报下面错误
在这里插入图片描述

  • 合并(Merge):
    这是默认的策略,当本地分支和远程分支有分歧时,Git 会尝试合并这两个分支。这将创建一个新的提交,该提交是两个分支的共同祖先和两个分支头之间的差异的合并结果。
  • 变基(Rebase):
    变基会将本地的更改“重播”到远程分支的顶端,这样你的提交看起来就像是直接在远程分支的最新提交之上进行的。这可以使提交历史看起来更线性,但可能会改变你的提交 ID。
  • 仅快进(Fast Forward Only):
    快进是一种特殊的合并类型,当本地分支和远程分支的共同祖先只有一个时,Git 会简单地将本地分支指向远程分支的最新提交,而不创建额外的合并提交。

这里一般我们之间选择合并就可以了。一般情况不需要重新commit除非手动干预编辑冲突等。

2.1 合并之后git pull更新报以下错误时:

在这里插入图片描述
通常,当你从远程仓库克隆一个新的项目时,每个本地分支都会自动设置为追踪对应的远程分支。但如果你是手动创建了一个新分支或者在某个点上追踪关系被破坏了,那么你就需要手动设定追踪信息。

这里因为我们时本地新建分支,所以执行以下命令:

这条命令会告诉 Git,你的本地 master 分支应该追踪 origin 远程仓库的 master 分支。之后,你就可以简单地使用 git pull 和 git push 而不需要每次都指定远程和分支了。

git branch --set-upstream-to=origin/master master

当然你如果是从仓库克隆执行第一条命令就可以了。

后面可以进行正常的git操作了!

2.2 执行git branch --set-upstream-to=origin/master master在进行git pull报如下错误

在这里插入图片描述
这通常意味着你的本地分支和你试图拉取的远程分支没有共同的祖先提交。这种情况可能发生在以下几种情形:

  1. 从零开始创建新分支:
    如果你是从一个全新的仓库或者一个完全不同的分支开始工作,然后试图将这个新分支与一个没有共同历史的远程分支合并,Git 将拒绝执行合并。
  2. 克隆仓库后立即切换到新分支并进行大量更改:
    如果你克隆了一个仓库,然后立即创建了一个新分支并进行了大量的更改,之后再尝试从远程仓库拉取数据,Git 会检测到本地和远程分支没有共同的起点,从而拒绝合并。

解决办法:

  1. 使用 --allow-unrelated-histories 参数:
    在 git pull 命令后面加上 --allow-unrelated-histories 参数,强制 Git 合并两个没有共同祖先的分支。这会创建一个新的合并提交,将两个独立的历史合并在一起。
git pull --allow-unrelated-histories origin master
  1. 使用 fast-import 或 filter-branch 工具:
    如果你有更复杂的合并需求,可能需要使用 git fast-import 或 git filter-branch 等更高级的工具来重新构造历史。这通常涉及到导出提交历史,然后导入到另一个仓库中,或者对现有历史进行过滤和修改。这种方法更适合有经验的 Git 用户,因为操作不当可能导致数据丢失。

  2. 手动合并:
    如果你只需要合并部分更改,可以手动挑选提交,使用 cherry-pick 命令将特定的提交应用到你的分支上,而不是整个分支历史。

一般到这里就可以正常git操作了。


总结

例如:以上就是今天要讲的内容,本文仅仅简单介绍了git操作的使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值