有时候拉动失败,我最终得到了几十个未跟踪的文件。这些文件似乎是最后一次拉动后更改的所有文件。例如:
$:/var/django/freshplum$ sudo git pull
Updating acb962a..eaf8c43
error: Your local changes to 'plum/api/resources/product.py' would be overwritten by merge. Aborting.
Please, commit your changes or stash them before you can merge.
$:/var/django/freshplum$ git status
# On branch master
# Your branch is behind 'origin/master' by 140 commits, and can be fast-forwarded.
#
# Changed but not updated:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# deleted: plum/api/resources/feed.py
... dozens of files ...
# modified: plum/www/views.py
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# plum/bacon/tests/models/segment.py
... dozens of files ...
# plum/www/templates/www/internship.html
no changes added to commit (use "git add" and/or "git commit -a")
我可以用以下方法解决这个问题:
git reset --hard HEAD
git clean -f -d
git pull
解决这种情况的最佳方法是什么?
答案 0 :(得分:0)
先按顺序尝试:
git add --all (or specific files)
git commit -a (or specific)
git pull
git push origin master (or your branch)
然后,如果您没有请求,请尝试发布相同的行(git clean或reset)。
最后,如果您有冲突,请将其删除。
答案 1 :(得分:0)
另一种实现方法,尽管不一定更好:执行git告诉您的操作。
隐藏会占用您的工作目录的脏状态-即, 您的修改后的跟踪文件和分段更改-并将其保存在 一堆未完成的更改,您可以随时重新应用。
-Git - Stashing
git pull
失败,您有许多“拉”的未跟踪文件,但拉取操作被中止而文件仍然保留。现在:
git add -A # stage all files so they are now stashable
git stash # stash them - the working dir is now clean
git pull # pull
git stash drop # forget the stashed changes. Alternatively: git stash pop
请注意,这还将删除您在拉动之前拥有的所有未跟踪文件。
git重新推荐您还有另一种方法:
请确认更改
git add -A
git commit -m "new commit"
git pull
如果您想保留本地更改 并从远程获取新提交,这很有意义。然后,您可能会遇到可以解决的合并冲突。
答案 2 :(得分:-1)
嗯,对于初学者来说,你应该更频繁地拉动,这样你就不会有140次提交合并。
其次,在尝试提取之前,您应该隐藏或提交本地更改,就像消息所说的那样。