[英]Git change working directory
我想使用 Git 存儲庫,但工作樹應該是遠程的。 例如:如果我的項目存儲在~/project
中, project.git
存儲在~/git/project.git
中。
我通過配置更改了工作樹:
worktree=/Users/myuser/project
而且我能夠提交和查看差異,但是當我嘗試執行git stash
時,出現錯誤:
致命的:沒有工作樹就不能使用 /usr/libexec/git-core/git-stash。
如何將.git
目錄存儲在遠離工作樹的地方? 為什么我會收到這個錯誤?
git config --get core.worktree
返回正確的工作目錄....
以下似乎可行,請根據您的需要進行調整:
mkdir git
mkdir work
git --git-dir git/test --work-tree work/test init
mkdir work/test
echo -n foo > work/test/foo.txt
git --git-dir git/test status
git --git-dir git/test add foo.txt
git --git-dir git/test commit -m 'commit 1'
編輯:請注意,在 repo 初始化后您不必指定--work-tree
,因為該值存儲在git/test/config
中。
您還可以 cd 進入工作/測試並從那里提交:
cd work/test
echo -n bar > bar.txt
git --git-dir ../../git/test status
git --git-dir ../../git/test add .
git --git-dir ../../git/test commit -m 'commit 2'
然后使用--git-dir
的絕對路徑或設置GIT_DIR
。
更正--git-dir
標志用法:
利用:
git --git-dir=git/test/.git ...
代替:
git --git-dir git/test ...
我看到不同的 4 個選項,具體取決於您的起點。
你有一個想要在遠程文件系統(例如 Samba)中工作的遠程存儲庫(例如在 GitHub 上)。 在這種情況下,您可以像這樣克隆:
git clone --separate-git-dir=/your/local/repository/dir https://your_repo_url /your/remote/workspace/dir
/your/local/repository/dir 和 /your/remote/workspace/dir 不應該已經存在,並且將由 Git 正確創建。 之后,您可以像往常一樣在遠程文件系統中工作,但不會出現遠程文件系統上出現的典型性能問題。
您已經在遠程文件系統上擁有一個現有的存儲庫和工作區。 在這種情況下,只需將 .git 目錄移動到本地路徑並在工作樹中創建一個.git
文件,其中包含以下內容:
gitdir: /path/where/you/moved/your/.git
您的遠程文件系統上已經有一個工作目錄,但尚未附加到遠程 Git 存儲庫。 在這種情況下,只需運行
git clone -b https://your_repo_url
在您的本地文件系統上的某個位置,然后在您的工作目錄中創建一個.git
文件,如選項 3 中所述或Radon8472的答案中所述。
您可以在項目文件夾之外使用 .git-dir ,而無需編寫每個命令的路徑。
只需在工作目錄中創建一個名為.git
的文件並添加如下內容:
gitdir: /path/to/your/dir/storage/dir/project.git
作為路徑,您可以使用工作目錄頂部的絕對路徑和相對路徑。
可以使用-C $dir
$ pwd
/home/guanzhang/lede
$ git diff --name-only
feeds.conf.default
$ cd /root/
$ git -C /home/guanzhang/lede diff --name-only
feeds.conf.default
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.