簡體   English   中英

Git:本地跟蹤,添加新分支?

[英]Git: Local-tracking, add new branch?

我正在嘗試清理我的git存儲庫

  1. 創建一個鏡像我的生產(主)分支的新分支。
  2. 刪除任何不必要的分支,遠程或本地。
  3. 讓我的本地分支機構本地跟蹤分支機構(idk,如果我需要這樣做,好處?)
  4. 為我的工作流程的每個階段都有一個分支,即一個分支用於本地&dev(dev),一個分支用於分段(staging),1個分支用於生產(生產)。 本地和開發人員可以共享相同的工作分支,但可以分別進行分段和生產。

從命令行,您可以看到我的環境。

$ git remote
dev
origin
production
staging

$ git branch -r
dev/dev
origin/HEAD -> origin/master
origin/dev
origin/master
production/master
wpengine-findcra/master

$ git branch -vv
dev                   xxxxxxx <comment>
*master               xxxxxxx [origin/master] <comment>
production/staging    xxxxxxx [remotes/production/master] <comment>
staging/master        xxxxxxx <comment>

我有4個工作地點。 代碼從1流到4。

  1. 我的本地機器
  2. 開發服務器
  3. 登台服務器
  4. 生產服務器

我想專門為登台服務器添加一個新分支 ,現在我想讓它鏡像生產(主)分支。 但我遇到這個錯誤 ,我不知道該怎么做。

$ git checkout master
$ git branch staging
error: there are still refs under 'refs/heads/staging'
fatal: Failed to lock ref for update: Is a directory

我的代碼在origin / master和dev / dev下是最新的。

如果你有一個名稱包含斜杠的分支,git將創建(在.git/refs/heads )一個名為分支名稱的目錄,直到斜杠為止。 在該目錄中,它將為分支本身放置refs。 所以目錄.git/refs/heads/staging/存在並包含一個文件“master”,因為你的分支staging/master

當您嘗試創建分支“staging”時,git將嘗試創建文件.git/refs/heads/staging 由於這已經存在但是是一個目錄,這將失敗。 因此,您的存儲庫中不能有兩個具有這些名稱的分支。

在更新版本的git中,錯誤消息將如下所示:

fatal: cannot lock ref 'refs/heads/staging': 'refs/heads/staging/master' exists; cannot create 'refs/heads/staging'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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