Git推送所有文件,即使没有要提交的文件
我已经创建了一个新的GitHub项目,它是空的(我仍然可以在我的存储库的GitHub中看到安装说明)。 我有一个包含开发项目的服务器,这是我想在GitHub上拥有的文件夹和子文件夹。我在那个文件夹上运行了Git推送所有文件,即使没有要提交的文件,git,github,Git,Github,我已经创建了一个新的GitHub项目,它是空的(我仍然可以在我的存储库的GitHub中看到安装说明)。 我有一个包含开发项目的服务器,这是我想在GitHub上拥有的文件夹和子文件夹。我在那个文件夹上运行了git init 当我将主分支推送到“源”远程时,即使我没有向索引中添加文件(当我运行git status,它会说“无需提交,工作树清理”),git也会尝试推送项目的所有文件 On branch master nothing to commit, working tree clean De
git init
当我将主分支推送到“源”远程时,即使我没有向索引中添加文件(当我运行git status
,它会说“无需提交,工作树清理”),git也会尝试推送项目的所有文件
On branch master
nothing to commit, working tree clean
Delta compression using up to 4 threads.
Compressing objects: 100% (12403/12403), done.
^Citing objects: 29% (3803/12687), 21.75 MiB | 510.00 KiB/s
我尝试创建一个.gitignore文件,并完成了创建,以避免发送一些子文件夹,并尝试添加和提交一个唯一的文件,然后通过检查状态将其显示在索引中
你能解释一下为什么Git即使索引为空也会推送所有文件吗?我不确定我是否完全理解你的问题,但我认为这可能会有所帮助 执行
git push
时,git
将本地提交推送到远程。这与你的暂存区是否有东西(被跟踪和未跟踪)无关
如果执行git log
,您将看到您有不在远程服务器中的本地提交。这些是在调用gitpush
命令时,提交git
正在推送到您的远程设备
git status
命令只提供暂存区域中文件的摘要。如果输出为“无需提交,工作树清理”,则表示所有文件和更改都已在本地提交。它不会告诉您这些提交是否已推送到远程。如果有一些文件,并且git status
显示“无需提交,工作树清理”,则您必须在某个时候将这些文件添加到存储库中,因此,在推送时,它们会被传输到远程存储库。压缩对象:100%(12403/12403),完成。
这看起来不像是空存储库。您确定您在某个repo尚未跟踪的文件夹中执行了git init
?什么git init
printed?当时,git init说:在/srv/www/htdocs/version\en\u dev/appli/.git/中重新初始化现有的git存储库。老实说,我不能100%确定该文件夹是否已经被跟踪。如果它已经被跟踪,我可以重置它吗?“重新初始化现有的Git存储库”。。。如果你创建了一个新的存储库,它会说“初始化了空的Git存储库”。我想当你推的时候,git会发送文件。从我读到的内容来看:“提交:向本地存储库添加更改推送:将最后一次提交传输到远程服务”,它表示将最后一次提交传输到远程服务器的所有地方。换句话说:“git push用于将您在本地存储库上所做的提交添加到远程存储库中—与git pull一起,它允许人们进行协作。”@jska13不,MFnx是对的,push并不意味着发送暂存文件,而是提交。您只在git.OK中推送提交,所以可能我误解了staged和commits。我认为当您提交文件时,它们在索引中(我认为这意味着它们是暂存的,但ok暂存是用于跟踪的文件)。@jska13很重要的一点是要理解本地文件、暂存文件和远程文件的概念。git add将文件和/或更改添加到暂存区域。git commit(本地)提交暂存区域中的内容(提交后,暂存区域将为空)。git推送提交到远程。是的,我试图理解所有这些。问题解决了:我删除了.git文件夹,重新制作了所有的过程,这很好…我想我实际上添加了一个。在第一次尝试之前,waht导致所有文件与repo同步。