相关疑难解决方法(0)

如何添加本地仓库并将其视为远程仓库

我正在尝试使用以下内容将本地repo用作bak我的PC上另一个本地存储库的名称的远程控制器:

git remote add /home/sas/dev/apps/smx/repo/bak/ontologybackend/.git bak
Run Code Online (Sandbox Code Playgroud)

这给出了这个错误:

fatal: '/home/sas/dev/apps/smx/repo/bak/ontologybackend/.git' is not a valid remote name
Run Code Online (Sandbox Code Playgroud)

我正在尝试同步两个本地存储库,其中一个配置为另一个命名的远程bak,然后发布git pull bak.

最好的方法是什么?


编辑:

对不起,傻傻的我,我刚刚意识到远程添加应该是:

git remote add bak /home/sas/dev/apps/smx/repo/bak/ontologybackend/.git
Run Code Online (Sandbox Code Playgroud)

遥控器的名称在地址之前.

git git-remote

212
推荐指数
4
解决办法
13万
查看次数

"git init"和"git init --bare"有什么区别?

git init和之间有什么不同git init --bare?我发现--bare他们的Git服务器需要很多博客文章?

手册页中,它说:

--bare
Run Code Online (Sandbox Code Playgroud)

创建一个裸存储库.如果未设置GIT_DIR环境,则将其设置为当前工作目录

但它究竟意味着什么?是否需要--bare为Git服务器设置?

git version-control

157
推荐指数
5
解决办法
7万
查看次数

如何更新我的裸仓库?

我创建了一个裸仓库来发布我的存储库,但我无法弄清楚如何使用主存储库的当前状态更新裸仓库.

git

122
推荐指数
5
解决办法
8万
查看次数

在Visual Studio 2013中创建新Git项目时出错

我正在使用带有MS Git插件的Visual Studio 2013.我正在尝试在我的机器上添加一个现有项目来控制源代码.该项目是一个包含一个文件的空项目.项目解决方案的路径是C:\_Projects\HelloGitWorld\HelloGitWorld.csproj- 根据git设置,我创建了默认的repo位置,但它似乎没有在那里存储repo(我也尝试过这个用于其他项目,并且它创建了repo与解决方案相同的位置).

所以我基本上右键单击解决方案并选择"添加到源代码管理".这很简单,只要我这样做,我得到:

The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
Run Code Online (Sandbox Code Playgroud)

我意识到你也可以通过git bash做到这一点,我最终将继续这样做,但是现在我只想为此添加一个本地回购.它为什么不让我?试图创建一条太长的路径在哪里?

c# git version-control visual-studio-2013

7
推荐指数
1
解决办法
2070
查看次数

git 裸仓库有什么用?

在远程机器上,我使用以下命令创建一个裸存储库:

git init --bare $HOME/bare/My-Repo
Run Code Online (Sandbox Code Playgroud)

在我的本地机器上,我克隆了一个 repo(但不是我在远程机器上创建的那个):

git clone ssh://something.com/My-Repo
Run Code Online (Sandbox Code Playgroud)

在我的本地机器上,在我刚刚克隆的存储库中,我创建了一个对位于远程机器上的上述裸存储库的“引用”:

git remote add my_remote ssh://remote.com/${USER}/bare/My-Repo
Run Code Online (Sandbox Code Playgroud)

我不知道它是否与我的问题有关,但我还在本地存储库中执行以下操作:

git config remote.my_remote /some/path/git-receive-pack
git config remote.my_remote /some/path/git-upload-pack
Run Code Online (Sandbox Code Playgroud)

现在,我可以从本地存储库推送到远程机器上的裸存储库:

git push my_remote master
Run Code Online (Sandbox Code Playgroud)

现在,我们的想法是我们在远程机器上创建另一个存储库,它应该从裸存储库中获取一些内容。我通过在远程机器上执行这样的事情来创建这个 repo:

some_script.sh $HOME/bare/My-Repo $HOME/My-Repo
Run Code Online (Sandbox Code Playgroud)

现在,我做的一些改变$HOME/My-Repo在远程机器上(请注意,它不是仓库),然后我git addgit commit之后,我推:

git push origin my-dev-branch
Run Code Online (Sandbox Code Playgroud)

结果我推送到裸存储库(位于同一台远程机器上)。之后,我转到我的本地机器并从远程机器(从裸存储库)“获取”更改:

git fetch my_remote
git checkout -b my-dev-branch my_remote/my-dev-branch
git fetch origin
git rebase origin/master
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是:为什么我们需要这个裸存储库?为什么我们不能只有一个远程存储库,直接在本地和远程存储库之间交换内容?或者,为什么我们不能只是rsync (或scp)本地存储库往返于远程机器?

添加

这就是为什么我问这个问题而不是谷歌搜索。我用谷歌搜索了我的问题,第一个链接在这里:http : //www.saintsjd.com/2011/01/what-is-a-bare-git-repository/

我在那里读到:

使用 git …

git git-bare

1
推荐指数
1
解决办法
2261
查看次数