我在<path1>
(远程)中有/f/gittest/foo
。
我<path2>
(本地)/f/gittest/bar
。{/ p>
由于我现在不需要遥控器作为工作副本,主要是因为我无法进入活动分支,所以我裸露了它。
我通过创建.git目录并在git init --bare
内运行/f/gittest/foo/.git
。
我进入并将远程仓库添加到本地存储库,生成文件,添加,提交和推送到远程。更改似乎是推送,并且远程成功更新。但是,本地存储库跟踪的文件(例如example1.txt和example2.txt)不会显示在遥控器中(尽管我想在远程存储库中进行跟踪)。如何使用推送的文件更新此远程目录?我以前没有成功,没有镜像,但我不记得如何。
经过双重检查的行为
mkdir alpha/; mkdir beta/; cd beta/
mkdir .git/; cd .git/; git init --bare; cd ../../alpha/
git init; touch example1.txt
(在example1.txt中输入文字)
git add example1.txt; git commit -m "Initial Commit"
git remote add destination ../beta/.git; git push destination master
答案 0 :(得分:0)
如果您创建目录
mkdir some_dir
cd some_dir
并初始化一个简单的git仓库,
git init --bare
git remote add origin git@github.com:username/reponame.git
然后你创建一些文件说
echo "some_text" > somefile.txt
echo "some_text" > somefile1.txt
如果你在这个阶段推进,它们就不会反映在你的远程存储库中。
相反,如果您提交,
git add .
# Even if you push at this stage, you wont see the files in remote git server
git commit -m "Pushing to git server"
它们将反映在远程git服务器中。
编辑:
您无法像创建本地裸仓库那样在服务器上创建裸仓库。由远程git服务器来处理这种情况。例如,使用github,您可以从他们的UI创建一个裸仓库,或者他们为此提供API。此主题可能与Is it possible to create a remote repo on GitHub from the CLI without opening browser?
相关答案 1 :(得分:0)
裸存储库没有签出版本,因此只会跟踪所有文件但不会在目录中显示它们。 如果你想要一个文件夹,检查你的存储库的最新提交,我建议有一个分离的树,在推送后由git钩子检出。
答案 2 :(得分:0)
首先,在.git
文件夹中创建一个裸仓库并不是通常的最佳做法:
.git
是非裸仓库的文件夹(其中一个工作树位于.git
的父文件夹中)foo.git
将是一个裸仓库的文件夹的名称&#39; foo
&#39;。其次,推送到一个裸仓库意味着永远不会出现任何文件&#34;:一个简单的回购就是避免同步工作树。
相反,您可以将post-receive
hook 添加到您的裸仓库中:
export GIT_WORK_TREE=..
git checkout -f HEAD
(正如我在&#34; Where are the project files stored in a git repository .git
folder?&#34;)