github非快进错误

时间:2016-12-01 03:25:14

标签: git github

我对Git很新,我遇到以下情况:

  1. 我正在通过我的雇主在Python上做一个课程。基本上你下载一个ZIP文件,这是一个包含文件,练习等的目录。你可以修改exercise文件夹中的代码来获得正确的解决方案。

  2. 现在我需要将这些更新的代码文件推送到git仓库。

  3. 但要正确地完成所有事情,我需要将原始仓库分叉到我应该推送更新代码的位置。

  4. 所以我分叉了这个仓库,但没有把它克隆到我的本地机器上,因为如果我这样做会覆盖更新的代码(对吗?)

  5. 我尝试按照以下方式执行。

  6. 打开Git,使用更新后的代码导航到我机器中的文件夹

  7. 然后我运行了以下代码:

  8. git init git add。

    git commit -m "Add corrections"
    git remote add origin [the forked repo in company github]
    git push
    

    然后我收到非快进错误。

    我的问题是,当该文件在我的本地时,如何在不必克隆目录并手动替换文件的情况下推送repo文件的更新版本?

    这是我的git status日志:

    $ git status
    rebase in progress; onto 8e66f31
    You are currently rebasing branch 'master' on '8e66f31'.
      (fix conflicts and then run "git rebase --continue")
      (use "git rebase --skip" to skip this patch)
      (use "git rebase --abort" to check out the original branch)
    
    Changes to be committed:
      (use "git reset HEAD <file>..." to unstage)
    
            new file:   SSH_KEY.txt
            new file:   data/baby_names.csv
            new file:   data/rc play.py
            new file:   exercises/compare.py
            new file:   exercises/stats.py
    
    Unmerged paths:
      (use "git reset HEAD <file>..." to unstage)
      (use "git add <file>..." to mark resolution)
    
            both added:      data/NY.csv
            both added:      data/NY_sample.csv
            both added:      data/series_I.dat
            both added:      data/series_II.dat
            both added:      data/series_III.dat
            both added:      data/series_IV.dat
            both added:      exercises/classes_1.py
            both added:      exercises/classes_2.py
            both added:      exercises/exceptions.py
            both added:      exercises/streaming.py
            both added:      exercises/tests.py
            both added:      test_code
    

1 个答案:

答案 0 :(得分:-1)

一种简单的方法是克隆你的fork,将修改后的文件复制到克隆顶部,然后执行常规git add -Agit commit -m等等。

另一种方法是在您自己的目录中提交您的更改,然后将您的fork作为远程添加到它,从fork重置为最新,然后在顶部应用您的提交。

在您自己的目录中:

git init
git add -A
git commit -m <msg>   # <- note this commit id
git remote add origin <fork git address>
git reset --hard origin/master
git cherry-pick <commit id from third step>

你必须解决冲突,如果有的话,那你很好。