it-swarm-vi.com

Làm cách nào để đổi tên một chi nhánh Git địa phương?

Tôi không muốn đổi tên một nhánh từ xa, như được mô tả trong Đổi tên nhánh chính cho cả kho Git cục bộ và từ xa.

Làm cách nào tôi có thể đổi tên một chi nhánh địa phương chưa được đẩy sang một chi nhánh từ xa?

Trong trường hợp bạn cần đổi tên remote Branch:
[.__.] Làm cách nào để đổi tên cả tên nhánh cục bộ và từ xa Git

7584
Forrest

Nếu bạn muốn đổi tên một nhánh trong khi chỉ vào bất kỳ nhánh nào, hãy làm:

git branch -m <oldname> <newname>

Nếu bạn muốn đổi tên chi nhánh hiện tại, bạn có thể làm:

git branch -m <newname>

Một cách để ghi nhớ điều này là -m dành cho "di chuyển" (hoặc mv), đó là cách bạn đổi tên các tệp.

12186
siride
git branch -m old_branch_name new_branch_name

Lệnh trên sẽ thay đổi tên nhánh của bạn, nhưng bạn phải rất cẩn thận khi sử dụng nhánh được đổi tên, bởi vì nó vẫn sẽ đề cập đến nhánh ngược dòng cũ được liên kết với nó, nếu có.

Nếu bạn muốn Đẩy một số thay đổi thành chủ sau khi chi nhánh địa phương của bạn được đổi tên thành new_branch_name (tên ví dụ):

git Push Origin new_branch_name:master (bây giờ các thay đổi sẽ chuyển đến chi nhánh chính nhưng tên chi nhánh địa phương của bạn là new_branch_name)

Để biết thêm chi tiết, xem " Cách đổi tên tên chi nhánh địa phương của bạn trong Git ."

387
Madhan Ayyasamy

Để đổi tên chi nhánh hiện tại của bạn:

git branch -m <newname>
283
Jonathan

Dưới đây là các bước để đổi tên chi nhánh:

  1. Chuyển sang chi nhánh cần được đổi tên
  2. git branch -m <new_name>
  3. git Push Origin :<old_name>
  4. git Push Origin <new_name>:refs/heads/<new_name>

EDIT (12 kim loại): Đảm bảo bạn chạy lệnh git status và kiểm tra xem nhánh mới được tạo có đang trỏ đến ref của chính nó không chứ không phải cái cũ hơn. Nếu bạn tìm thấy tham chiếu đến nhánh cũ hơn, bạn cần hủy đặt ngược dòng bằng cách sử dụng:

git branch --unset-upstream
249
Milind Anantwar

Đổi tên chi nhánh sẽ hữu ích khi chi nhánh của bạn kết thúc. Sau đó, công cụ mới sẽ đến và bạn muốn phát triển trong cùng một chi nhánh thay vì xóa nó và tạo công cụ mới.

Từ kinh nghiệm của tôi, để đổi tên một chi nhánh địa phương và từ xa trong Git, bạn nên thực hiện các bước sau.

Trích dẫn từ Nhiều quốc gia - Đổi tên một chi nhánh địa phương và từ xa trong git

1. Đổi tên chi nhánh địa phương của bạn

Nếu bạn ở trên nhánh bạn muốn đổi tên:

git branch -m new-name

Nếu bạn ở một chi nhánh khác:

git branch -m old-name new-name

2. Xóa nhánh từ xa tên cũ và Đẩy nhánh cục bộ tên mới

git Push Origin :old-name new-name

3. Đặt lại nhánh ngược dòng cho nhánh cục bộ tên mới

git Push Origin -u new-name
161
trungk18

Các câu trả lời cho đến nay đã chính xác, nhưng đây là một số thông tin bổ sung:

Người ta có thể đổi tên một nhánh bằng '-m' (di chuyển), nhưng người ta phải cẩn thận, vì '-M' buộc phải đổi tên, ngay cả khi đã có một nhánh có cùng tên. Đây là đoạn trích từ trang man 'git-Branch':

> Với tùy chọn -m hoặc -M, <oldbranch> sẽ được đổi tên thành <newbranch>. Nếu <oldbranch> có một reflog tương ứng, nó được đổi tên để khớp với <newbranch> và một mục reflog được tạo để ghi nhớ việc đổi tên chi nhánh. Nếu <newbranch> tồn tại, -M phải được sử dụng để buộc đổi tên xảy ra.

93
Vanchev

1. Đổi tên

Nếu đó là chi nhánh hiện tại của bạn, chỉ cần làm

git branch -m new_name

Nếu đó là một nhánh khác bạn muốn đổi tên

git branch -m old_name new_name

2. Theo dõi một chi nhánh từ xa mới

- Nếu nhánh của bạn bị đẩy, thì sau khi đổi tên, bạn cần xóa nó khỏi kho Git từ xa và yêu cầu địa phương mới của bạn theo dõi một nhánh từ xa mới:

git Push Origin :old_name
git Push --set-upstream Origin new_name
77
Oss

Tôi dại dột đặt tên cho một nhánh bắt đầu bằng dấu gạch nối, và sau đó kiểm tra chủ. Tôi không muốn xóa chi nhánh của tôi, tôi đã làm việc trong đó.

Cả hai đều không hoạt động:

git checkout -dumb-name

git checkout -- -dumb-name

"s, 's và \s cũng không giúp được gì. git branch -m không hoạt động.

Đây là cách cuối cùng tôi đã sửa nó. Truy cập Sau đó, điều này sẽ kiểm tra nó, tạo một nhánh mới với một tên lành mạnh và xóa cái cũ.

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

Để đổi tên một chi nhánh tại địa phương:

git branch -m [old-branch] [new-branch]

Bây giờ bạn cũng sẽ phải tuyên truyền những thay đổi này trên máy chủ từ xa của mình.

Để đẩy các thay đổi của nhánh cũ đã bị xóa:

git Push Origin :[old-branch]

Để thúc đẩy thay đổi tạo chi nhánh mới:

git Push Origin [new-branch]
60
aliasav

Đổi tên nhánh bằng lệnh này:

git branch -m [old_branch_name] [new_branch_name]

-m: Nó đổi tên/di chuyển nhánh. Nếu đã có một chi nhánh, bạn sẽ gặp lỗi.

Nếu đã có một nhánh và bạn muốn đổi tên với nhánh đó, hãy sử dụng:

 git rename -M [old_branch_name] [new_branch_name]

Để biết thêm thông tin về trợ giúp, hãy sử dụng lệnh này trong thiết bị đầu cuối:

git branch --help

hoặc là

man git branch
33
Hafiz Shehbaz Ali

Người dùng Git nâng cao có thể đổi tên thủ công bằng cách sử dụng:

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
31
Jethik

Đổi tên chi nhánh:

git branch -m old_branchname new_branchname

Ở đây, tên dài của tùy chọn -m--move. Vì vậy, chúng tôi cũng có thể sử dụng:

git branch --move old_branchname new_branchname

Nếu bạn muốn đổi tên chi nhánh hiện tại thì hãy sử dụng:

git branch -m new_branchname

hoặc là

git branch -move new_branchname

Nếu bạn muốn di chuyển những thay đổi này sang điều khiển từ xa, thì hãy sử dụng cách sau.

git Push Origin :old_branchname new_branchname

Thao tác này sẽ xóa nhánh từ xa old_branchname và Đẩy nhánh cục bộ new_branchname.

git Push Origin -u new_branchname

Điều này sẽ đặt lại nhánh ngược dòng cho nhánh cục bộ new_branchname.

30
Ajmal sha
  1. Đổi tên chi nhánh địa phương của bạn.

Nếu bạn ở trên nhánh bạn muốn đổi tên:

git branch -m new-name

Nếu bạn ở một chi nhánh khác:

git branch -m old-name new-name
  1. Xóa nhánh từ xa tên cũ và Đẩy nhánh cục bộ tên mới.

git Push Origin :old-name new-name

  1. Đặt lại nhánh ngược dòng cho nhánh cục bộ tên mới. Chuyển sang chi nhánh và sau đó:

git Push Origin -u new-name

Hoặc để nhanh chóng thực hiện điều đó, bạn có thể sử dụng 3 bước sau:

# Đổi tên chi nhánh cục bộ

git branch -m old_branch new_branch  

# Xóa chi nhánh từ xa cũ

git Push Origin :old_branch  

# Đẩy nhánh mới, đặt nhánh cục bộ để theo dõi điều khiển từ xa mới

git Push --set-upstream Origin new_branch   

Tham khảo: https://www.w3docs.com/snippets/git/how-to-rename-git-local-and-remote-branches.html

26
badarshahzad

Dưới đây là ba bước: Một lệnh mà bạn có thể gọi bên trong thiết bị đầu cuối của mình và thay đổi tên chi nhánh.

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

Nếu bạn cần thêm: từng bước,Cách thay đổi tên chi nhánh Gitlà một bài viết hay về điều đó.

22
Hazarapet Tunanyan

Có lẽ như được đề cập bởi những người khác, đây sẽ là một trường hợp không phù hợp trong việc đặt tên chi nhánh.

Nếu bạn gặp tình huống như vậy, tôi có thể đoán rằng bạn đang ở trên Windows cũng sẽ dẫn bạn đến:

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

Sau đó, bạn phải làm một bước trung gian:

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

Chỉ có bấy nhiêu thôi.

21
P4C

Cố gắng trả lời cụ thể cho câu hỏi (ít nhất là tiêu đề).

Bạn cũng có thể đổi tên local Branch, nhưng vẫn theo dõi tên cũ trên điều khiển từ xa.

git branch -m old_branch new_branch
git Push --set-upstream Origin new_branch:old_branch

Bây giờ, khi bạn chạy git Push, từ xa old_branch từ xa được cập nhật với new_branch cục bộ của bạn.

Bạn phải biết và nhớ cấu hình này. Nhưng nó có thể hữu ích nếu bạn không có lựa chọn cho tên chi nhánh từ xa, nhưng bạn không thích nó (ồ, ý tôi là, bạn có một rất tốt lý do không thích nó !) và thích một tên rõ ràng hơn cho chi nhánh địa phương của bạn.

Chơi với cấu hình tìm nạp, bạn thậm chí có thể đổi tên tham chiếu từ xa cục bộ. tức là, có một con trỏ ref refs/remote/Origin/new_branch cho nhánh, thực tế đó là old_branch trên Origin. Tuy nhiên, tôi rất không khuyến khích điều này, vì sự an toàn của tâm trí bạn.

19
Pierre-Olivier Vares

Nếu bạn sẵn sàng sử dụng SourceTree (mà tôi đặc biệt khuyên dùng), bạn có thể nhấp chuột phải vào chi nhánh của mình và chọn 'Đổi tên'.

 enter image description here

17
Marcin Szymczak

Để đổi tên nhánh hiện tại (ngoại trừ trạng thái tách rời HEAD), bạn cũng có thể sử dụng bí danh này:

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

Thay đổi nhánh cục bộ khá dễ dàng ...

Nếu bạn ở trên nhánh bạn muốn thay đổi tên, chỉ cần làm điều này:

git branch -m my_new_branch

Mặt khác, nếu bạn đang ở master hoặc bất kỳ chi nhánh nào khác khác với chi nhánh bạn muốn thay đổi tên, chỉ cần làm:

git branch -m my_old_branch my_new_branch

Ngoài ra, tôi tạo hình ảnh bên dưới để hiển thị điều này trong hành động trên dòng lệnh. Trong trường hợp này, bạn đang ở chi nhánh master, ví dụ:

 Change branch name locally

16
Alireza

Một lựa chọn khác là không sử dụng dòng lệnh nào cả. Các ứng dụng khách Git GUI như SourceTree lấy đi nhiều đường cong/nỗi đau học tập cú pháp khiến cho các câu hỏi như câu hỏi này được xem nhiều nhất trong Stack Overflow.

Trong SourceTree, nhấp chuột phải vào bất kỳ nhánh cục bộ nào trong ngăn "Chi nhánh" ở bên trái và chọn "Đổi tên ...".

15
Steve Chambers

Vì bạn không muốn Đẩy chi nhánh đến một máy chủ từ xa, ví dụ này sẽ hữu ích:

Giả sử bạn có một nhánh hiện có tên là "my-hot-Feature" và bạn muốn đổi tên nó thành "Feature-15".

Đầu tiên, bạn muốn thay đổi chi nhánh địa phương của bạn. Điều này không thể dễ dàng hơn:

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

Để biết thêm thông tin, bạn có thể truy cậpĐổi tên cục bộ và từ xa một nhánh trong Git.

13
Tanah

Phiên bản Git 2.9.2

Nếu bạn muốn thay đổi tên của chi nhánh địa phương bạn đang trên:

git branch -m new_name

Nếu bạn muốn thay đổi tên của một chi nhánh khác:

git branch -m old_name new_name

Nếu bạn muốn thay đổi tên của một chi nhánh khác thành một tên đã tồn tại:

git branch -M old_name new_name_that_already_exists

Lưu ý: Lệnh cuối cùng có tính hủy diệt và sẽ đổi tên nhánh của bạn, nhưng bạn sẽ mất nhánh cũ với tên đó và các cam kết đó vì tên nhánh phải là duy nhất.

10
nikkypx

Nếu bạn muốn thay đổi tên của chi nhánh hiện tại, hãy chạy:

git branch -m [old_branch] [new_branch]

Nếu bạn muốn xóa nhánh từ xa cũ, hãy chạy:

git Push Origin :[old_branch]

Nếu bạn muốn xóa nhánh từ xa cũ và tạo một nhánh từ xa mới, hãy chạy:

git Push Origin :old_branch new_branch
8
Arif

Một cách đơn giản để làm điều đó:

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

Để biết thêm, xem này .

8
Nomade

Chỉ cần hai bước để sao chép thay đổi tên trên remote cũng như trên GitHub:

Bước 1 git branch -m old_branchname new_branchname

Bước 2 git Push Origin :old_branchname new_branchname

7
Harry_pb
git branch -m old_branch_name  new_branch_name

hoặc là

git branch --move old_branch_name new_branch_name
4
user128364

Đối với người dùng GUI Git, nó không thể đơn giản hơn nhiều. Trong Git GUI, chọn tên chi nhánh từ danh sách thả xuống trong hộp thoại "Đổi tên chi nhánh" được tạo từ mục menu Nhánh: Đổi tên, nhập Tên mới và nhấp vào "Đổi tên". Tôi đã nhấn mạnh nơi để tìm danh sách thả xuống.

 Rename a local Git branch

4
user3070485

Tất cả các câu trả lời trước đang nói về git branch -m. Tất nhiên, nó dễ vận hành, nhưng đối với tôi, có thể hơi khó để nhớ một lệnh Git khác. Vì vậy, tôi đã cố gắng để hoàn thành công việc bằng lệnh mà tôi đã quen thuộc. Vâng, bạn có thể đoán nó.

Tôi sử dụng git branch -b <new_branch_name>. Và nếu bạn không muốn lưu nhánh cũ bây giờ, bạn có thể thực thi git branch -D <old_branch_name> để xóa nó.

Tôi biết nó có thể hơi tẻ nhạt, nhưng nó dễ hiểu và dễ nhớ hơn. Tôi hy vọng nó hữu ích cho bạn.

3
Dai Kaixian

Đổi tên chi nhánh Git có thể được thực hiện bằng cách sử dụng:

  1. git branch -m oldBranch newBranch

  2. git branch -M oldBranch ExistingBranch

Sự khác biệt giữa -m -M :

-m: nếu bạn đang cố đổi tên chi nhánh của mình bằng tên chi nhánh hiện có bằng cách sử dụng -m . Nó sẽ đưa ra một lỗi nói rằng chi nhánh đã tồn tại. Bạn cần phải đặt tên duy nhất.

Nhưng,

-M: điều này sẽ giúp bạn buộc đổi tên bằng một tên cụ thể, thậm chí nó còn tồn tại. Vì vậy, một nhánh hiện có sẽ ghi đè hoàn toàn với nó ...

Dưới đây là ví dụ Git terminal,

[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$
3
Silent Spectator

Nếu bạn muốn:

  • Đổi tên kho lưu trữ Git, chạy: git branch -m <oldname> <newname>
  • Xóa chi nhánh cũ bằng cách: git Push Origin: old-name new-name
  • Cam kết sử dụng: git commit <newname> [.__.]
    • và sau đó Đẩy bằng cách sử dụng: git Push Origin new_branch_name:master
  • Nếu bạn muốn kiểm tra trạng thái thì sử dụng: git status
  • Nếu bạn muốn kiểm tra thì hãy sử dụng: git checkout
2
Vineet Jain

Trong PhpStorm:

VCS → Git → Chi nhánh ... → Chi nhánh địa phương →YOUR_BRANCH→ Đổi tên

1
AlexSi
git branch -m [old-branch] [new-branch]

-m có nghĩa là chuyển tất cả từ [nhánh cũ] sang [nhánh mới] và hãy nhớ rằng bạn có thể sử dụng -M cho các hệ thống tệp khác.

0
Saad Bilal

Đổi tên chi nhánh hiện tại

git branch -m <newbranchname>

hoặc là

git branch -m oldbranchname newbranchname
0
panthari