我正在处理一个故事,我为故事添加了3个文件。我已在我当地的分支机构添加并提交了它们。现在,我需要将它们的2个文件推送到具有紧急优先级的远程存储库。是否有可能只推动其中的2个推入github repo?
答案 0 :(得分:0)
如果您先提交file1和file2,然后再为file3执行另一个操作,那么您可以推送file1和file2,但如果您已经提交了所有内容,则可以使用git reset HEAD^
重置为之前的提交添加file1和file2,然后提交然后推送。然后你可以根据需要添加文件3.
答案 1 :(得分:0)
git push
不适用于文件。它推动了提交。你不能推动半个提交,你不能在没有推动其祖先的情况下推送提交。因此,如果您要将更改推送到file1
和file2
,而不是更改为file3
,则需要确保:
提交更改file1
和file2
不要更改file3
提交更改file1
和file2
没有任何提交在其祖先中更改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