亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用Git的多個工作目錄?

使用Git的多個工作目錄?

Git
MMTTMM 2019-06-06 11:22:29
使用Git的多個工作目錄?我不確定這是否得到了Git的支持,但從理論上講,這對我來說是可行的。我的工作流程通常需要同時編輯多個分支中的文件。換句話說,我通常希望在一個分支中打開幾個文件,而在另一個分支中編輯另一個文件的內容。我對此的典型解決方案是進行兩次結賬,但遺憾的是,我不能在它們之間共享分支和推薦。我只想讓兩個工作目錄由同一個.git文件夾管理。我知道本地的git克隆解決方案(默認的是硬鏈接共享對象,以及-Shared選項,它用原始的repo設置另一個對象存儲),但是這些解決方案只減少了磁盤空間的使用,特別是在共享的情況下,似乎充滿了危險。有沒有辦法使用一個.git文件夾,并有兩個工作目錄由它支持?還是Git硬編碼成在任何時候只簽出一個工作目錄?
查看完整描述

3 回答

?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

這個git分配伴隨著投稿劇本git-new-workdir..您將按以下方式使用它:

git-new-workdir project-dir new-workdir branch

其中,project-dir是包含.git儲存庫。此腳本創建另一個.git目錄中有許多指向原始目錄的符號鏈接,但不能共享的文件除外(如當前分支),允許您在兩個不同的分支中工作。

聽起來有點脆弱,但這是個選擇。


查看完整回答
反對 回復 2019-06-06
?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

我遇到了這個問題,希望能找到一個我在這里找不到的解決辦法。所以現在我找到我需要的東西,我決定把它張貼在這里為其他人。

警告:如果你需要的話,這可能不是一個好的解決方案。編輯同時有多個分支,如OP狀態。它是為了有多個分支退房同時你打算編輯。(多個工作目錄由一個.git文件夾支持。)

自從我第一次提出這個問題以來,我學到了一些東西:

  1. 什么“裸存儲庫“is.它本質上是.git目錄,而不位于工作樹中。

  2. 您可以指定正在使用的回購程序的位置(.git在命令行上使用git期權--git-dir=

  3. 您可以指定工作副本的位置這一事實--work-tree=

  4. 什么是“鏡子回購”。

最后這是一個非常重要的區別。我其實不想工作在回購程序中,我只需要同時檢查不同分支的副本和/或標記。事實上,我需要保證結果和我遙控器的樹枝不一樣。所以鏡子對我來說是完美的。

所以為了我的用例,我通過這樣做得到了我所需要的:

git clone --mirror <remoteurl> <localgitdir> # Where localgitdir doesn't exist yet
mkdir firstcopy
mkdir secondcopy
git --git-dir=<localgitdir> --work-tree=firstcopy checkout -f branch1
git --git-dir=<localgitdir> --work-tree=secondcopy checkout -f branch2

關于這一點的一個重要警告是,這兩份拷貝沒有一個單獨的頭。所以在上面,運行git --git-dir=<localgitdir> --work-tree=firstcopy status將顯示分支2到分支1之間的所有差異作為未提交的更改-因為頭指向分支2。(這就是為什么我用-f選擇checkout,因為我實際上根本不打算在本地做任何改變。我可以簽出任何工作樹的標記或分支,只要我使用-f)

的用例在同一臺計算機上同時存在多個簽出。需要編輯它們它工作得很好。我不知道是否有任何方法為多個工作樹的多個頭,沒有一個腳本,如在其他答案,但我希望這是有益于其他人。


查看完整回答
反對 回復 2019-06-06
  • 3 回答
  • 0 關注
  • 792 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號