我是git的新手。我正在使用Egit。我所做的是: 使用命令行
在X:\ coy_wcag(映射驱动器)中创建了一个存储库git init
之后,我使用Git-> Clone 中的 Import-> Git->项目克隆此项目。已在我的本地工作区中成功创建项目。然后我添加了一个名为 kkkk.html ,提交和推送/推送到上游的文件进行分支。但是,当我转到X:\ coy_wcag时, kkkk.html 并不存在。我检查过遥控器设置正在使用' origin'并设置为file:/// X:\ coy_wcag。
为了检查提交和推送操作是否成功,我再次克隆它,但在其他目录中, kkkk.html 出现!!!
我不知道为什么我无法在x:\ coy_wcag中找到该文件,请帮忙谢谢。
答案 0 :(得分:1)
使用远程存储库时,您应该在bare
存储库上工作。非常不鼓励推送到非裸存储库。
您使用bare
初始化git init --bare
存储库。
要了解与常规存储库的区别,您可以查看this article。简单地说,bare
存储库不直接包含文件,而是包含.git
文件夹的内容。它只跟踪您的更改,您不应该在裸存储库中工作。
使用以下解决方案非常困难! INSTEAD总是尝试使用BARE REPOSITORY!
如果您仍想更新远程存储库的工作树,可以按照以下步骤操作:
# Go into the remote repository
git config --local receive.denyCurrentBranch ignore
git config --local core.worktree "$(pwd)"
现在将以下脚本放入.git/hooks/post-receive
文件中:
#!/bin/sh
# This hook will update the working tree to match the latest pushed commit
git checkout -f
完成此操作后,远程存储库将在每次收到推送时更新其工作树。
此post-receive
挂钩将覆盖当前位于远程存储库工作树中的任何更改。所以记住这一点!
答案 1 :(得分:0)
下次推后,转到上游文件夹拉取更改
git fetch
git pull
Git只推送对更改的引用,它不会自动更改文件