【问题标题】:git remote set-url: How can I set a relative path?git remote set-url:如何设置相对路径?
【发布时间】:2013-11-12 16:39:49
【问题描述】:

我知道我可以使用git remote set-url origin 来更改远程仓库的 URL?在我的 Linux 机器上,我运行类似

git remote set-url origin ~/projects/test.git

git 总是将相对路径更改为绝对路径,例如/home/user/projects/test.git

我可以阻止这种行为吗?

【问题讨论】:

  • 就在我们之间:~/projects/test.git 不是通常所说的相对路径。相对路径更像是:../filesubdir/fileprojects/test.git 相对于~,但生成的路径同样是绝对的。
  • 你当然是对的......

标签: git git-remote


【解决方案1】:

~ 可能由您的 shell 在该命令中扩展(例如,如果您使用 bash,请参阅 http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_04.html 中的“波浪号扩展”)。

你可能会得到你想要的,通过用单引号引用 url,如下所示:git remote set-url origin '~/projects/test.git'

编辑:我不认为将波浪线路径作为遥控器是一个好主意。我不确定扩展是如何进行的。如 cmets 中所述,git 是 c 程序和 bash 脚本的混合体。这可能会使波浪号扩展在某些命令下失败并为其他命令工作。

【讨论】:

  • 您也许可以通过这种方式实际获得包含波浪号的配置参数集,但我不完全确定 git 之后会知道如何处理它 - git做波浪号扩展?
  • @twalberg 我不确定是谁进行了扩展......它可能是由 git 命令调用的 shell 脚本。不过它确实可以在 cygwin 下工作。
  • 由于 git 是 shell 脚本和已编译二进制文件的混合体,因此我想做一些广泛的测试以确保所有工具(至少是我经常需要的工具)都能正常工作波浪号语法。不过,git 很有可能是可以接受的。
  • 我用双引号试过了,效果很好,谢谢指出。顺便说一句,我需要这个的原因是因为我在不同的机器之间共享了一些存储库。它们都有不同的用户名,但用户主目录中的目录结构相同。
  • 这篇文章确认(或至少建议)相同,使用~ -- stackoverflow.com/a/14349254/1277343
【解决方案2】:

这只是因为~ 是扩展为当前用户主目录的绝对路径的简写。

【讨论】:

    猜你喜欢
    • 2019-06-23
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    • 2010-09-21
    • 1970-01-01
    相关资源
    最近更新 更多