在 TortoiseGIT 上设置 git-dir 和 git-work-tree

发布于 2024-10-09 13:26:58 字数 595 浏览 6 评论 0原文

我想了解是否可以在 TortoiseGIT 中设置 --git-dir--git-work-tree 参数。我有一个存储单元中的工作目录,并且我不能将 .git 目录保留在那里,因为它的备份每天完成一次,并且会浪费很多空间,所以我必须将我的.git 目录在另一个地方。

如果我使用 GIT 控制台并且执行 progit 上描述的所有操作,则此方法有效,设置 GIT_DIR 环境变量。

有什么办法可以用 TortoiseGIT 做到这一点吗?我希望有一个像 .gitignore 这样的文件来告诉 git 在哪里可以找到 .git dir,但到目前为止我什么也没得到。

如果您知道其他允许执行此操作的 GUI,它将很有用。

任何帮助表示赞赏, 谢谢,米歇尔

PS:我无法将我的项目存储在另一个地方,我不想每次处理项目时都合并这两种方式,因为我不知道是否有人在那里工作。所以 GIT_DIR 解决方案是迄今为止我得到的最好的解决方案。

I am trying to understand if I can setup --git-dir and --git-work-tree params in TortoiseGIT. I have the working directory in a storage unit, and I can't keep .git directory there because its backup is done once a day and there would be a lot of wasted space, so I must put my .git dirs in another place.

This works if I use GIT console and I do all the things described on progit, to setup GIT_DIR environment variable.

Is there any way I can do this with TortoiseGIT? I hoped that there were a file like .gitignore to tell git where to find .git dir, but I got nothing so far.

If you know other GUIs that allow to do this it will be useful.

Any help appreciated,
thanks, Michele

PS: I cannot store my projects in another place and I'd prefer to not to merge both ways everytime I work on projects because I don't know if someone else worked there. So GIT_DIR solution is the best thing I've got so far.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夜血缘 2024-10-16 13:26:58

您可以通过执行以下操作来完成此操作:

  • 将 .git 文件夹移动到其他位置(PATH_TO_A_NEW_GIT_FOLDER)
  • 在源文件夹中运行以下命令

git init --separate-git-dir="PATH_TO_A_NEW_GIT_FOLDER"

这将放置一个源文件夹中的 .git 文件将指向这个新文件夹。

  • 完成后,TortoiseGit 将使用您的新 git 文件夹,就好像该文件夹位于您的源文件夹中一样

You could do this by doing the following :

  • move your .git folder elsewhere (PATH_TO_A_NEW_GIT_FOLDER)
  • run the following command in your source folder

git init --separate-git-dir="PATH_TO_A_NEW_GIT_FOLDER"

This will put a .git file in your source folder that will point on this new folder.

  • you're done, TortoiseGit will use your new git folder as if this one is in your source folder
九局 2024-10-16 13:26:58

它需要一些额外的工作,但最终我成功了。
我在 Explorer 中使用 T´Git,在 Msys2 plus --separate-git-dir 中使用 Git。
T´Git:2.15.0 + git-2.42.0.windows
Msys2-Git:2.42.0

  1. MSys2 bash 中的 git init --separate-git-dir=path/to/gitdir foo
    您将获得一个工作目录 foo/ ,其中文件 ./foo/.git 包含以下内容:
    gitdir: /c/path/to/gitdir
  2. 将其更改为:
    gitdir: c:/path/to/gitdir
    (它也适用于相对路径)
  3. 享受

T´Git 能够处理正斜杠,而 Msys2-Git 接受 C:/.. 路径语法。< br>
现在您可以通过资源管理器使用 T´Git,也可以通过 Msys2-Bash 使用 Git。

顺便说一句:我有一个 bash 脚本 "tgit",用于从当前目录打开 T´Git-Log。
重要的部分是这样的:

main() {
  local tgit_exe=$(cygpath -w PATH_TO_TortoiseGitProc_exe)
  local wrk=$(cygpath -w "${1:-.}")
  \cmd <<<"${tgit_exe} /command:log /path:${wrk}"
}

有趣:据我所知,T´Git 有一个 /path: 选项,但没有像 /git-dir:..
它也没有方法创建具有单独 Git-Dir 的 Git-Repo。

It needed a little extra work, but finally I got it working.
I use both T´Git in Explorer and Git in Msys2 plus --separate-git-dir.
T´Git: 2.15.0 + git-2.42.0.windows
Msys2-Git: 2.42.0

  1. git init --separate-git-dir=path/to/gitdir foo in MSys2 bash
    You get a workdir foo/ with file ./foo/.git containing something like:
    gitdir: /c/path/to/gitdir
  2. Change this to:
    gitdir: c:/path/to/gitdir
    (it also works with relative paths)
  3. enjoy

T´Git is able to handle the forward-slashes while Msys2-Git is accepting the C:/.. path syntax.
Now you can use T´Git via explorer and also Git via Msys2-Bash.

BTW: I have a bash script "tgit", to open T´Git-Log from current directory.
The important part is like this:

main() {
  local tgit_exe=$(cygpath -w PATH_TO_TortoiseGitProc_exe)
  local wrk=$(cygpath -w "${1:-.}")
  \cmd <<<"${tgit_exe} /command:log /path:${wrk}"
}

Funny: As far as I can see, T´Git has a /path: option, but nothing like /git-dir:..
It also has no method to create a Git-Repo with separated Git-Dir.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文