remote - git遠端分支重新命名




如何重命名本地Git分支? (20)

1.重命名

如果它是您當前的分支,那就做

git branch -m new_name

如果它是您要重命名的另一個分支

git branch -m old_name new_name

2.跟踪新的遠程分支

- 如果您的分支被推送,則在重命名後,您需要將其從遠程Git存儲庫中刪除,並要求您的新本地跟踪新的遠程分支:

git push origin :old_name
git push --set-upstream origin new_name

我不想重命名遠程分支,如本地和遠程Git存儲庫的重命名主分支中所述。

如何重命名尚未推送到遠程分支的本地分支?


  1. 重命名您當地的分支機構。

如果您在分支上,則要重命名:

git branch -m new-name

如果你在不同的分支:

git branch -m old-name new-name
  1. 刪除舊名稱遠程分支並推送新名稱本地分支。

git push origin :old-name new-name

  1. 重置新名稱本地分支的上游分支。 切換到分支然後:

git push origin -u new-name

或者為了快速做到這一點,您可以使用以下3個步驟:

#在本地重命名分支

git branch -m old_branch new_branch  

#刪除舊的遠程分支

git push origin :old_branch  

#推送新分支,設置本地分支以跟踪新遠程

git push --set-upstream origin new_branch   

Referance: https://www.w3docs.com/snippets/git/how-to-rename-git-local-and-remote-branches.html ://www.w3docs.com/snippets/git/how-to-rename-git-local-and-remote-branches.html


git branch重命名可以通過使用來完成

  1. git branch -m oldBranch newBranch

  2. git branch -M oldBranch ExistingBranch

-m-M之間的區別,

-m:如果您嘗試使用-m重命名分支名稱,則會引發錯誤,分支已經存在。 你需要給出唯一的名字。

但,

-M:這將幫助您強制使用給定名稱重命名,即使它存在。 所以現有的分支將完全用它覆蓋......

這是git終端的例子,

[email protected]:~/project/myapp/sunithamakeup$ git branch 
  master
  master0
  new_master
  test
* test1
[email protected]:~/project/myapp/sunithamakeup$ git branch -m test1 test
fatal: A branch named 'test' already exists.
[email protected]:~/project/myapp/sunithamakeup$ git branch -M test1 test
[email protected]:~/project/myapp/sunithamakeup$ git branch 
  master
  master0
  new_master
* test
[email protected]:~/project/myapp/sunithamakeup$ 

git版本2.9.2

如果要更改您所在的本地分支的名稱:

git branch -m new_name

如果要更改其他分支的名稱:

git branch -m old_name new_name

如果要將其他分支的名稱更改為已存在的名稱:

git branch -M old_name new_name_that_already_exists

注意:最後一個命令是破壞性的並且將重命名您的分支,但是您將丟失具有該名稱和那些提交的舊分支,因為分支名稱必須是唯一的。


以下是三個步驟:您可以在終端內調用並更改分支名稱的命令。

git branch -m old_branch new_branch         # Rename branch locally
git push origin :old_branch                 # Delete the old branch
git push --set-upstream origin new_branch   # Push the new branch, set local branch to track the new remote

如果您需要更多:一步一步, 如何更改Git分支名稱是一篇很好的文章。


以下是重命名分支的步驟:

1. switch to branch which needs to be renamed
2. git branch -m <new_name>
3. git push origin :<old_name>
4. git push origin <new_name>:refs/heads/<new_name>

編輯(12/01/2017):確保運行命令git status並檢查新創建的分支是否指向自己的ref而不是舊的。 如果找到對舊分支的引用,則需要使用以下命令取消設置上游:

git branch --unset-upstream

分支完成後,重命名分支將非常有用。 然後新的東西即將到來,你想在同一個分支中開發而不是刪除它並創建新的分支。

根據我的經驗,要在Git中重命名本地和遠程分支,您應該執行以下步驟。

多個狀態引用- 在git中重命名本地和遠程分支

1.重命名您當地的分支機構

如果您在分支上,則要重命名:

git branch -m new-name

如果你在不同的分支:

git branch -m old-name new-name

2.刪除舊名稱遠程分支並推送新名稱本地分支

git push origin :old-name new-name

3.重置新名稱本地分支的上游分支

git push origin -u new-name

到目前為止答案是正確的,但這裡有一些額外的信息:可以用'-m'(移動)重命名分支,但必須要小心,因為'-M'強制重命名,即使存在已經有同名的分支。 以下是'git-branch'手冊頁的摘錄:

使用-m或-M選項, <oldbranch>將重命名為<newbranch> 。 如果<oldbranch>具有相應的reflog,則將其重命名為匹配<newbranch> ,並創建reflog條目以記住分支重命名。 如果<newbranch>存在,則必須使用-M強制重命名。


可能正如其他人所提到的,這將是分支命名中的情況不匹配。

如果你有這樣的情況,我猜你在Windows上也會引導你:

$ git branch -m CaseSensitive casesensitive
fatal: A branch named 'casesensitive' already exists.

然後你必須做一個中間步驟:

$ git branch -m temporary
$ git branch -m casesensitive

而已。


本地更改分支很容易......

如果您在分支機構上想要更改名稱,只需執行以下操作:

git branch -m my_new_branch

否則,如果您在master或您想要更改名稱的其他分支上 ,只需執行以下操作:

git branch -m my_old_branch my_new_branch

此外,我創建下面的圖像,以在命令行中顯示此操作,在這種情況下,您在master分支上,例如:


如果您願意使用SourceTree (我強烈推薦),您可以右鍵單擊您的分支並選擇“重命名”。


如果要在指向任何分支時重命名分支,請執行以下操作:

git branch -m <oldname> <newname>

如果要重命名當前分支,可以執行以下操作:

git branch -m <newname>

一種記住這一點的方法是-m用於“移動”(或mv ),這就是重命名文件的方式。


對於Git GUI用戶來說,它簡單得多。 在Git GUI中,從菜單項Branch:Rename創建的“Rename Branch”對話框的下拉列表中選擇分支名稱,鍵入New Name,然後單擊“Rename”。 我已經突出顯示了在哪裡可以找到下拉列表。


我愚蠢地命名一個以連字符開頭的分支,然後檢查出主人。 我不想刪除我的分支,我已經在其中工作了。

這些都沒有奏效:

git checkout -dumb-name

git checkout -- -dumb-name

" s,s和\ s也沒有幫助git branch -m不起作用。

這是我最終修復它的方式。 進入工作副本的.git / refs / heads,找到文件名“-dumb-name”,獲取分支的哈希值。 然後這將檢查出來,創建一個具有合理名稱的新分支,並刪除舊分支。

git checkout {hash}
git checkout -b brilliant-name
git branch -d -- -dumb-name

由於您不希望將分支推送到遠程服務器,因此該示例將非常有用:

假設您有一個名為“my-hot-feature”的現有分支,並且您想將其重命名為“feature-15”。

首先,您要更改本地分支。 這可能不容易:

git branch -m my-hot-feature feature-15

有關更多信息,您可以訪問Git中的本地和遠程重命名分支


簡單的方法:

git branch -m old_branch new_branch         # Rename branch locally    
git push origin :old_branch                 # Delete the old branch    
git push --set-upstream origin new_branch   # Push the new branch, set local branch to track the new remote

有關更多信息,請參閱this


要重命名當前分支(分離的HEAD狀態除外),您還可以使用此別名:

[alias]
    mvh = !sh -c 'git branch -m `git rev-parse --abbrev-ref HEAD` $1'

要重命名當前分支:

git branch -m <newname>

高級Git用戶可以手動重命名:

Rename the old branch under .git/refs/heads to the new name

Rename the old branch under .git/logs/refs/heads to the new name

Update the .git/HEAD to point to yout new branch name

git branch -m old_branch_name  new_branch_name

要么

git branch --move old_branch_name new_branch_name




git-branch