相关疑难解决方法(0)

什么是GIT_WORK_TREE,为什么我从来不需要设置这个ENV var,为什么现在呢?

我在Ubuntu Linux下使用Git来同步和部署我的项目.

我在我的本地Linux工作机器上有Repo,在我的服务器上有两个repos,一个裸仓库和一个部署应用程序.

它总是工作正常,但现在我为我的其他网站创建了另一个回购,现在我收到此错误:

root@vserver5:/var/www/ninethsky# git pull origin master
fatal: /usr/lib/git-core/git-pull cannot be used without a working tree.
Run Code Online (Sandbox Code Playgroud)

所以我必须设置一个GIT_WORKING_TREE ENV-Var,但究竟是什么,在哪里设置呢?

这是我的repo的.git/config:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = /home/git/ninethsky/.git
        fetch = +refs/heads/*:refs/remotes/origin/*
Run Code Online (Sandbox Code Playgroud)

bare = true在我当地的工作机器上有另一个回购和回购.

然后我删除了所有的回购,但最初的回购,现在我得到:

root@vserver5:/var/www/ninethsky# git init
fatal: GIT_WORK_TREE (or --work-tree=<directory>) not allowed without specifying GIT_DIR (or --git-dir=<directory>)
root@vserver5:/var/www/ninethsky# git init --git-dir=/var/www/ninethsky
error: unknown option `git-dir=/var/www/ninethsky'
Run Code Online (Sandbox Code Playgroud)

git init通过取消设置为空白的GIT_WORK_TREE 解决了这个问题.GIT_WORK_TREE和GIT_DIR未设置.git init再次工作,仍然有一个问题,git add . …

git

64
推荐指数
1
解决办法
6万
查看次数

Git Stash&Worktree Woes

我有时间让git与我的用户定义的工作树合作,该工作树存在包含我的.git目录的文件夹之外.

基本上设置是这样的:我有两个目录,一个名为"git-worktree",其中包含我想要跟踪的文件,另一个名为"git-dir",其中包含存储库的.git文件夹,即GIT_DIR.

我通过cd进入文件夹"git-dir"并运行:

git --git-dir=./.git --work-tree=/Users/braitsch/Test/git-worktree/ init
Run Code Online (Sandbox Code Playgroud)

这成功初始化了存储库,当我在"git-dir"文件夹中时,我可以添加工作树中的文件,运行git status并提交它们.凉.

当我尝试运行git stash时,这里出现了踢球,这让我误以为:

fatal: /usr/local/git/libexec/git-core/git-stash cannot be used without a working tree.
Run Code Online (Sandbox Code Playgroud)

现在这是BS,因为我知道(或者至少我认为)我将工作树设置为包含我想要跟踪的文件的"git-worktree"文件夹.

git config --local -l向我展示了以下内容:

core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.worktree=/Users/braitsch/Test/git-worktree
core.ignorecase=true
Run Code Online (Sandbox Code Playgroud)

我甚至尝试手动将.git文件夹添加到本地配置文件,看看是否有帮助,但无济于事.

core.gitdir=/Users/braitsch/Test/git-dir/.git
Run Code Online (Sandbox Code Playgroud)

现在来这里是踢球者.如果我将工作树设置为git-dir的父目录,那么 Git stash将起作用.例如,如果我将工作设置为说出我的主目录.

core.worktree=/Users/braitsch/
Run Code Online (Sandbox Code Playgroud)

所以我给你们的问题是我错过了什么设置告诉git允许我的工作树存在于文件系统的任何地方,而不仅仅是沿着git-dir的父路径返回到根目录?当然必须有一种方法可以将你的git-dir和你的工作树放在你想要的任何地方,然后告诉git他们有什么工作吗?非常感谢阅读.任何见解都将得到慷慨的赞赏.

git git-stash

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

如何从多个目录创建 Git Repo

我正在开发一个 asterisk 项目,想将代码放入 Git 中进行版本跟踪。

以下是代码所在的 3 个目录:

  • 星号拨号计划:/etc/asterisk/custom
  • 星号 AGI 代码:/var/lib/asterisk/agi-bin
  • 网页界面:/var/www/html/

我不想在 Git 中将它们作为 3 个独立的存储库进行跟踪。我如何将所有内容放入一个存储库中?

我的谷歌没有想出任何相关的东西。

git github git-repo

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

标签 统计

git ×3

git-repo ×1

git-stash ×1

github ×1