Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.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 - Fatal编程技术网

Git 在中间推和拉空白的文件之间消失的文件

Git 在中间推和拉空白的文件之间消失的文件,git,Git,因此,我有一个本地存储库,它有两个分支:master和shop。我还有一个空存储库和一个远程存储库。我可以在所有这些文件之间进行推拉操作,但有些文件会不断丢失。我正在做以下工作: 从我的本地根目录: git push barereposerver shop 一切都很好。哇,我们推到那里了。然后从远程根目录下,在完成git init和git remote后添加baressh://blahblahblah/blah.git,我正在做: git pull bare shop 但由于某些原因,我有一

因此,我有一个本地存储库,它有两个分支:mastershop。我还有一个空存储库和一个远程存储库。我可以在所有这些文件之间进行推拉操作,但有些文件会不断丢失。我正在做以下工作:

从我的本地根目录:

git push barereposerver shop
一切都很好。哇,我们推到那里了。然后从远程根目录下,在完成git init和git remote后添加baressh://blahblahblah/blah.git,我正在做:

git pull bare shop
但由于某些原因,我有一些文件没有被发现

我知道我没有提供太多的信息,但我对git非常陌生,我还不知道正确的术语。我希望你能问我一些问题,看看你是否能帮我解决这个问题。非常感谢


更新:我想做的事情的侧面版本。我希望通过简单的回购从其他->其他获得:

从您的图表中,看起来您所做的是:

  • 推至裸露位置(从本地)
  • 然后,从远程注册裸回购,并从裸回购中提取
“从我的本地根目录:git推送服务器商店”

即:


未通过的集合是存在于本地分支上的一组新文件,但由于任何原因,不会推送到远程分支

那么,在尝试推动本地回购之前,您是否确实添加并提交了这些文件?(例如,参见)


根据评论,以下是我们如何共同追踪该问题的根本原因:

另一种排除故障的方法是注意本地提交的SHA1(其中包含您的文件)和远程获取的SHA1(从裸机中提取后):如果不相同,则说明不同的内容,但您也可以搜索该SHA1(从远程获取)在裸回购协议和本地回购协议上,检查SHA1(缺少一些文件)所指的提交

是这个号码吗<代码>591178c18126be127eaa417fa6b3be86c0fce969如果是,我在远程和本地获得相同的号码

SHA1确实就是这样一个数字如果本地和repo上的内容相同,则内容必须相同。尝试(如果您在远程上没有任何当前修改)git重置——硬(同样,在远程repo上);首先检查您是否在远程回购中签出了正确的分支)

同时,git日志中的两个结果:

并排放置的两个文件夹包含不同的文件:

如果SHA1相同,则缺少的目录不应是本地提交的一部分
尝试在第二个本地回购中克隆本地回购,并检查在两个本地回购中看到的内容是否相同

奇怪当我将本地repo克隆到另一个本地repo时,文件再次丢失。我从正确的分支运行了clone命令。为什么会这样

这是克隆和显示不同结果的整个过程的并排:

现在,本地克隆中缺少目录的事实足以证明这些目录不是本地repo提交的一部分。那些目录是空的吗?(因为即使添加,他们也不会承诺)

是的,它们完全是空的 它们是最初创建为空的目录,但WP插件需要能够写入这些目录才能添加内容。
根据这一点,我可以添加一个
.gitignore
来试试。直到现在,在git的两周内,我还没有看到这方面的文档。似乎是一个很少沟通的大问题,还是我遗漏了什么

这实际上是一个重要的设计决策,是Git成为文件内容管理系统的一部分(请参阅和)


这些目录一旦添加了.gitignore,现在就可以成功地推/拉操作了。

从图表中可以看出,您所做的是:

  • 推至裸露位置(从本地)
  • 然后,从远程注册裸回购,并从裸回购中提取
“从我的本地根目录:git推送服务器商店”

即:


未通过的集合是存在于本地分支上的一组新文件,但由于任何原因,不会推送到远程分支

那么,在尝试推动本地回购之前,您是否确实添加并提交了这些文件?(例如,参见)


根据评论,以下是我们如何共同追踪该问题的根本原因:

另一种排除故障的方法是注意本地提交的SHA1(其中包含您的文件)和远程获取的SHA1(从裸机中提取后):如果不相同,则说明不同的内容,但您也可以搜索该SHA1(从远程获取)在裸回购协议和本地回购协议上,检查SHA1(缺少一些文件)所指的提交

是这个号码吗<代码>591178c18126be127eaa417fa6b3be86c0fce969如果是,我在远程和本地获得相同的号码

SHA1确实就是这样一个数字如果本地和repo上的内容相同,则内容必须相同。尝试(如果您在远程上没有任何当前修改)git重置——硬(同样,在远程repo上);首先检查您是否在远程回购中签出了正确的分支)

同时,git日志中的两个结果:

并排放置的两个文件夹包含不同的文件:

如果SHA1相同,则缺少的目录不应是本地提交的一部分
尝试在第二个本地回购中克隆本地回购,并检查在两个本地回购中看到的内容是否相同

奇怪<圣