Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git推送所有文件,即使没有要提交的文件_Git_Github - Fatal编程技术网

Git推送所有文件,即使没有要提交的文件

Git推送所有文件,即使没有要提交的文件,git,github,Git,Github,我已经创建了一个新的GitHub项目,它是空的(我仍然可以在我的存储库的GitHub中看到安装说明)。 我有一个包含开发项目的服务器,这是我想在GitHub上拥有的文件夹和子文件夹。我在那个文件夹上运行了git init 当我将主分支推送到“源”远程时,即使我没有向索引中添加文件(当我运行git status,它会说“无需提交,工作树清理”),git也会尝试推送项目的所有文件 On branch master nothing to commit, working tree clean De

我已经创建了一个新的GitHub项目,它是空的(我仍然可以在我的存储库的GitHub中看到安装说明)。 我有一个包含开发项目的服务器,这是我想在GitHub上拥有的文件夹和子文件夹。我在那个文件夹上运行了
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同步。