我对Git很新,我遇到以下情况:
我正在通过我的雇主在Python上做一个课程。基本上你下载一个ZIP文件,这是一个包含文件,练习等的目录。你可以修改exercise文件夹中的代码来获得正确的解决方案。
现在我需要将这些更新的代码文件推送到git仓库。
但要正确地完成所有事情,我需要将原始仓库分叉到我应该推送更新代码的位置。
所以我分叉了这个仓库,但没有把它克隆到我的本地机器上,因为如果我这样做会覆盖更新的代码(对吗?)
我尝试按照以下方式执行。
打开Git,使用更新后的代码导航到我机器中的文件夹
然后我运行了以下代码:
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
答案 0 :(得分:-1)
一种简单的方法是克隆你的fork,将修改后的文件复制到克隆顶部,然后执行常规git add -A
,git 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>
你必须解决冲突,如果有的话,那你很好。