git中无法拉取remote仓库中的更新(Untracked Files Prevent Merge)

文章描述了在使用Git时遇到的一个问题,即由于在不同电脑上对同一远程仓库的操作,导致本地存在未追踪的文件,从而无法正常合并。作者提供了两种解决方案:一是使用`gitrm`命令删除本地及远程仓库的文件;二是使用`gitrm--cached`仅从缓存区删除文件,保持本地文件。这两种方法旨在解决merge冲突并允许继续拉取远程更新。
摘要由CSDN通过智能技术生成

之前在另一台电脑上对其本地仓库进行了补充添加并提交到了远程仓库中(可理解为另一位同事对远程仓库进行了补充),今天在拉取其添加内容到本地仓库时,发生以下报错。

图片抽抽传不上来,大概就是以下内容:
Untracked Files Prevent Merge			# 未追踪的文件阻止了merge
	Move or commit them before merge	# 移除或者提交他们在merge之前,这里没办法提交,原因在下
Can't update							# 无法更新
	master has no tracked branch		# 主分支有未追踪的分支

问题

查了一些资料,发现是以下问题:我之前这台电脑push项目时手动将一个文件vcs.xml untracked了(并没有加入到.gitignore中,而在另一台上push时没有手动将这个文件忽略,而是将其传到了远程仓库。导致我在这台电脑上pull时报错有untracked的文件。注意此时我无法把本地仓库(加入了vcs.xml)push然后再pull,因为我本地分支的head在remote的头指针之前(即远端仓库内容比本地分支新)。

解决方法

我的解决方法是:先在远程仓库中删除了这个文件(相当于同事或者另一台电脑删除这个文件),这里同时涉及了另一个问题,即删除远程仓库的同时是否删除本地仓库(同事或另一台电脑)的该文件。我们通过以下的方法二来只删除远程仓库中的文件。

方法一:在git中可以用git rm命令删除文件(删除远程仓库文件)
git clone 仓库地址
git add .
step1: git rm 文件 //本地中该文件会被删除
step2: git rm -r 文件夹 //删除文件夹
step3: git commit -m '删除某个文件'
step4: git push (origin master)

上面的方法会把对应的本地文件也删除掉,如果不想把本地文件删除,只把缓存区中的对应部分删除,则加上–cached

方法二:
git clone 仓库地址
git add .
step1: git rm --cached 文件 		//本地中该文件不会被删除
step2: git rm -r  --cached  文件夹 //删除文件夹
step3: git commit -m '删除某个文件'

之后我们就可以在这台电脑上进行pull(fetch + merge)了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值