git文件上推失败-(non-fast-forward)

一、问题描述

在使用git上推时出现下列错误:

! [rejected] master->master(non-fast-forward)

hint: Updates were rejected because the tip of your current branch is behind

hint: its remote counterpart. Integrate the remote changes (e.g.

hint: ‘git pull …’) before pushing again.

hint: See the ‘Note about fast-forwards’ in ‘git push --help’ for details.

二、问题原因

本地分支和远程分支的历史不一致,且这种不一致无法通过快进(fast-forward)方式解决。

三、 解决方法

为了解决本地分支和远程分支的历史不一致,就需要合并分支。有两种方式,通过图形界面或者使用命令行。

3.1 合并分支

(1)通过图形化界面

在项目下打开图形化界面,并点击Merge->Local Merge…

(2)通过命令行

进入要合并的分支:

git checkout master
git pull

查看所有分支是否都pull下来

git branch -a

合并分支

git merge 分支名

接着提示文件被修改,无法合并。

3.2 解决文件合并冲突

在使用Git进行文件合并时,如果遇到提示某个文件已修改,这通常意味着该文件在要合并的两个分支中都有过改动。Git在尝试自动合并这些改动时,可能遇到了冲突,无法确定应该使用哪个分支中的更改。这时,Git会标记这些文件为冲突状态,并需要手动解决冲突。

解决冲突的步骤如下:

  1. 查找冲突文件:git会列出所有存在冲突的文件。

       git status
    
  2. 处理修改文件:对于那些被修改但未暂存的文件,你需要决定是否保留这些改动。

    #对要保留改动的文件将它们添加到暂存区
    git add 文件名
    
    #对不需要保留改动的文件
    git restore --staged 文件名
    #或者
    git checkout -- 文件名
    
  3. 处理删除文件:对于被删除的文件,执行以下命令不仅会从工作目录中删除文件,也会将其从Git跟踪列表中移除。

    git rm 文件名
    
  4. 处理未跟踪的文件:对于未被Git跟踪的新文件,如果你希望将它们纳入版本控制,可以使用git add <file>命令添加到暂存区。如果不想跟踪某些文件,可以更新.gitignore文件来忽略它们。

  5. 提交变更:在决定好如何处理上述所有变更后,使用以下命令来提交这些变更。确保在提交信息中清晰地描述了所做的更改。

    git commit -m "Your commit message"
    

如果进入编辑器页面,看到这样的窗口:

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
# modified: love.md
# deleted: example.txt
# Changes not staged for commit:
# modified: 4.py
# deleted: check.txt
# deleted:"\345\233\275\345\257\206sm.md"
# modified:"\345\256\211\345\205\250\344\272\213\344\273\266.md"
# Untracked files:
# .gitignore
# A.spec
# build/
~
~
~

首先,删除光标位置下(以#号开始的行)的所有行。这些行是注释,不会被记录为提交信息的一部分。然后,在空白处写下对本次提交的简短描述。

chore: Clean up untracked and deleted files
Update love documentation(根据自己的情况适当修改,填写自己的文件,可以根据窗口中Changes to be committed部分填写)
Remove unnecessary example.txt(根据自己的情况适当修改,填写自己的文件可以根据窗口中Changes to be committed部分填写)

其次保存并退出编辑器,一旦您成功保存并退出编辑器,Git将接收您的提交信息,并将暂存区中的更改作为一次提交记录到仓库中。

  • 24
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值