我有一个远程主分支和一个本地叫做#34;功能"。我之前已经从master合并并在本地分支上进行了多次更改。虽然我还没把它推回去掌握。因此,当我尝试" git pull"时,它只会说"一切都是最新的"。 另一方面," master"中的文件以及"中的文件"是不同的,我想摆脱我们当地的几个文件,但主人没有。 我需要的是一种再次拉动主人并将每个文件标记为冲突的方法,因此我可以选择我需要的东西以及我不需要的东西。 重新调整本地更改不是一种选择,因为我会丢失我实现的所有代码。 谢谢你的帮助!
答案 0 :(得分:0)
尝试git reset HEAD~1
让git认为它是历史记录中的提交(如果主人的更改跨越多个重叠提交,则更改1),然后是git pull …
。
答案 1 :(得分:0)
您需要区分分支(master
,feature
,merge
和pull
)和remotes
(需要{{1} },并与消息pull
)相关。目前还不是很清楚你的情况是什么,你在哪里尝试Everything is up-to-date
?什么分支?
据我了解,您有一个历史记录,其中分支pull
中的所有内容已合并到分支master
如果您在检出分支feature
时运行git pull
,feature
会尝试git
来自fetch
回购的新提交,然后合并他们(如果有的话)到remote
。这假设feature
有一个远程跟踪分支,但如果命令完全正常(没有参数),它可能有一个。
由于feature
表示git pull
是最新的,因此您似乎已将分支feature
推送到其远程跟踪分支(到远程仓库)。你拉,它告诉你没有更多的事情发生。
另一方面,您可能意味着feature
是最新的。
如果你想在本地删除我们拥有的几个文件" (在master
,我想),那么是什么阻止你只是删除它们? feature
。在git rm <file to get ridden of>
上执行此操作,您不会影响feature
。按照惯例做出承诺。
如果您要放弃master
中的更改,并获取主文件中的文件,则可以feature
。这会将您的本地文件更新为git checkout master -- <file to get>
状态,但如果不更改分支,您仍然在master
。在feature
上创建包含这些更新文件的新提交。
你还可以做一个互动的rebase。 feature
会在git rebase
中记录更改,并让您重播&#34;他们在另一个(或相同)提交之上。除此之外,feature
允许您在重放阶段跳过提交,甚至编辑在重放之前提交的内容。例如,您可以在重播阶段修改提交,而不是添加不必要的文件。
最简单的是git rebase --interactive
,如果只删除不必要的文件不起作用。
答案 2 :(得分:0)
谢谢大家的回答! 我最终做的是: 检查出主人 2.将每个文件夹主文件物理复制到不同的位置 3.签出功能 4.开始一个文件夹比较“超越比较”并逐个编辑每个文件有时采取功能的更改,有时是主人的。
这不是一个真正的git解决方案,需要一段时间,但它有效:)