问题 git偏拉


我正在维护一个存储库 一个

克隆了另一个贡献者 一个 到另一个存储库

后来,其他贡献者添加了文件 F,与我无关,进入

现在我想合并更改  回到 一个,但没有提交 F。怎么办?


3668
2018-06-06 06:40


起源

也许这个主题可以帮助你: mail-archive.com/git-users@googlegroups.com/msg00653.html HTH - Zsolt Botykai


答案:


从那里拿起头和樱桃挑选。

git remote add jessica git://jessica.com/repo.git
git fetch jessica master
git cherry-pick 235a5
...

8
2018-06-06 07:11





你可以这样做:

git checkout <remote_branch> <paths>

哪里 <paths> 是你真正想要的文件。如果您想要的文件位于不同的文件的单独目录中,这是最简单的,因为您可以使用通配符。

或者,尝试:

git pull --squash

这可能有点手动,因为你必须在提交之前删除你不想要的文件,但如果你不想要的文件作为一部分被添加,它也是唯一的方法。同样的提交改变了你的文件  想。

(相当重要的)缺点是你丢失了远程分支的提交历史。


2
2018-06-06 07:37





简短的回答是你不能用git“部分拉”。

但是,您可以从中提取更改 ,然后使用git-rebase(1)或git-filter-branch(1)修改包含的提交 F  在推之前 至 一个。请记住,这将改变(相对于 )您修改的提交的哈希值,因此将来尝试合并  会不像往常那么聪明。

看一眼 关于重写历史的Pro Git章节


1
2018-06-06 07:11