【发布时间】:2014-10-30 14:29:59
【问题描述】:
我对 Git 有点陌生。我想将一些文件推送到我的 Git 源(远程)。
我做了什么:
我有我的主人,我创建了一个分支来做一些工作。之后我将我的分支合并到我的主人。在我的工作中,很多二进制文件和项目文件在本地被更改/添加。我希望 only 添加更改为远程服务器的 .java 文件。
(我相信我在我的分支上工作时尝试了 commits,只是为了检查它是如何工作的。)
我的主人是最新的我的起源(这就是我做git pull时得到的。我也做了git fetch origin。
我总是收到(当我跑git status时):
On branch master Your branch is ahead of origin/master by 12 commits.
(use "git push" to publish your local commits)
nothing to commit, working directory clean`
我尝试添加、提交这些文件,但运行 git status 并没有改变。我尝试在新分支上进行添加、提交:
On branch NewBranch nothing to commit, working directory clean
我试图重置 Head。我没有在 Git 教程或 Stack Overflow 上找到解决问题的方法。
当然我可以将所有文件推送到远程源,但我认为这不是一个好的解决方案。
我发现的一些重复问题: How to push a single file、how to push changes made to only certain files? 和 How to commit only some files?。
【问题讨论】:
-
正如您链接到的第一个副本所说,您不能只推送某些文件。您正在推动的是提交,您可以将其视为文件在某个时间点的快照。如果不执行一些特殊操作(您应该避免),您将不得不全部推送或全部推送。
-
哪些二进制文件是您不想提交的?编译的垃圾箱?他们应该是
.gitignored -
不仅二进制一些我更改的项目文件,我不想推送。(我将它们全部添加到 .gitignore 但是当我运行 git diff --stat origin/master 我看到所有其中),所以我相信我也会推动所有这些。
-
您必须从存储库中
git rm它们然后忽略它们。 -
当我使用 git for windows 时,我可以选择在同步之前推送哪些文件,所以我认为必须有一个简单的方法。只是好奇人们是否将整个项目提交给 git,那么他们如何一起工作? (如果每个人每次推送都更改项目文件)