我不确定这是否是Git所支持的东西,但理论上它似乎应该对我有用.
我的工作流程通常涉及我同时在多个分支中编辑文件.换句话说,我经常想在一个分支中打开一些文件,而我在另一个分支中编辑另一个文件的内容.
我的典型解决方案是进行两次检查,但遗憾的是我不能在它们之间共享分支和引用.我想要的是只有两个工作目录由同一个.git文件夹管理.
我知道本地git clone解决方案(默认情况下,硬链接共享对象,以及--shared选项,它使用原始repo设置备用对象存储),但这些解决方案只减少了磁盘空间使用量,特别是在--shared的情况下,似乎充满了危险.
有没有办法使用一个.git文件夹,并有两个工作目录由它支持?或者是Git硬编码只是随时检查一个工作目录?
我们的开发人员使用基于Windows和Unix的操作系统.因此,在Unix机器上创建的符号链接成为Windows开发人员的问题.在windows(msysgit)中,符号链接将转换为文本文件,其中包含指向其所指向文件的路径.相反,我想将符号链接转换为实际的Windows符号链接.
我需要的(更新的)解决方案是:
我没有实现这个,但我相信这是解决这个问题的可靠方法.
问题:
当我尝试从Git Bash shell创建一个符号链接时,它每次都会失败:
$ ln -s /c/Users/bzisad0/Work testlink
ln: creating symbolic link `testlink' to `/c/Users/bzisad0/Work': Permission denied
Run Code Online (Sandbox Code Playgroud)
除了提供错误消息之外,它唯一能做的就是创建一个名为的空目录(在本例中)testlink.
我没有看到ln可执行文件有任何问题.例如,它由我拥有并标记为可执行文件:
$ which ln
/bin/ln
$ ls -hal /bin/ln
-rwxr-xr-x 1 BZISAD0 Administ 71k Sep 5 11:55 /bin/ln
Run Code Online (Sandbox Code Playgroud)
我也拥有当前目录(~,即/c/Users/bzisad0):
$ ls -dhal .
drwxr-xr-x 115 BZISAD0 Administ 40k Sep 5 12:23 .
Run Code Online (Sandbox Code Playgroud)
我有管理权限,我尝试用"以管理员身份运行"打开Git Bash shell,但这没有任何区别.
我尝试打开Windows属性ln.exe并将权限级别设置为"以管理员身份运行此程序",但这没有帮助.
我已经进入Windows中的安全性 - >高级属性,并使自己(而不是管理员组)成为所有者,但这也没有解决任何问题.
我不知所措.我不知道这个错误消息最终是来自lnBash,还是来自Windows,或者我怎么可能缺少权限.我怎样才能深究这一点?
我有安装了 arch linux 的虚拟机。主机系统是Windows 10。我已经通过virtual-box quest utils安装了光盘。从 VM 级别,我将存储库克隆到共享 Windows/Linux 空间内。克隆成功。但是在工作目录中创建一些文件会出现一些错误:(gcc 存储库)
error: unable to unlink old 'fixincludes/tests/base/ctype.h': Interrupted system call
error: unable to create file gcc/ada/libgnat/a-chacon.ads: File exists
error: unable to unlink old 'fixincludes/tests/base/sundev/vuid_event.h': Text file busy
Run Code Online (Sandbox Code Playgroud)
在两个 git 客户端(主机和虚拟)中,我已将 longpaths 设置为 true。
如果需要任何信息,请询问。