选定的文件从多个已提交的更改中推送github repo

时间:2017-08-23 13:20:16

标签: git github

我正在处理一个故事,我为故事添加了3个文件。我已在我当地的分支机构添加并提交了它们。现在,我需要将它们的2个文件推送到具有紧急优先级的远程存储库。是否有可能只推动其中的2个推入github repo?

2 个答案:

答案 0 :(得分:0)

如果您先提交file1和file2,然后再为file3执行另一个操作,那么您可以推送file1和file2,但如果您已经提交了所有内容,则可以使用git reset HEAD^重置为之前的提交添加file1和file2,然后提交然后推送。然后你可以根据需要添加文件3.

答案 1 :(得分:0)

git push不适用于文件。它推动了提交。你不能推动半个提交,你不能在没有推动其祖先的情况下推送提交。因此,如果您要将更改推送到file1file2,而不是更改为file3,则需要确保:

  • 提交更改file1file2不要更改file3

  • 提交更改file1file2没有任何提交在其祖先中更改file3

如果已经是这种情况,那么您可以使用例如

推送相关提交
git push origin <commit-touching-file1-and-file2>:master

否则,您需要先修改本地历史记录。 git rebase -i是一个很好的工具,但要注意这是一个复杂且具有潜在危险的工具。阅读文档并在使用之前进行备份。

作为git rebase -i的相对强力替代品,您还可以放弃所有当地历史记录并制作另一个历史记录:

git reset origin/master  # assuming the remote branch is master and hasn't changed since you cloned
git add file1 file2
git commit -m "changes to file1 and file2 only"
git push