簡體   English   中英

Git更改工作目錄

[英]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 個選項,具體取決於您的起點。

  1. 你有一個想要在遠程文件系統(例如 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 正確創建。 之后,您可以像往常一樣在遠程文件系統中工作,但不會出現遠程文件系統上出現的典型性能問題。

  2. 沒有遠程存儲庫,您想在遠程文件系統上創建一個帶有工作樹的新存儲庫。 為此,請考慮devconsoleRadon8472的答案。
  3. 您已經在遠程文件系統上擁有一個現有的存儲庫和工作區。 在這種情況下,只需將 .git 目錄移動到本地路徑並在工作樹中創建一個.git文件,其中包含以下內容:

     gitdir: /path/where/you/moved/your/.git
  4. 您的遠程文件系統上已經有一個工作目錄,但尚未附加到遠程 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM