git 创建分支、git branch、git checkout、git switch

命令创建分支切分支设置追踪默认分支名来源引入年份
git branch devdevHEAD2005(Git v1.0+)
git branch -t dev origin/releasedevorigin/release2005(Git v1.0+)
git checkout -b devdevHEAD2005(Git v1.0+)
git checkout -t origin/releasereleaseorigin/release2005(Git v1.0+)
git fetch origin release:devdevorigin/release2005(Git v1.0+)
git switch -c devdevHEAD2019(Git v2.23+)
git switch -t origin/releasereleaseorigin/release2019(Git v2.23+)

创建但不切换到新分支

git branch

# zhang@zhangziwa MINGW64 /d/gitPrac/ckck (main)
$ git branch dev1 306e593
# zhang@zhangziwa MINGW64 /d/gitPrac/ckck (main)
$ git branch dev2 main
# zhang@zhangziwa MINGW64 /d/gitPrac/ckck (main)
$ git branch dev3 origin/main
# branch 'dev3' set up to track 'origin/main'.
# zhang@zhangziwa MINGW64 /d/gitPrac/ckck (main)
$ git branch dev4 origin/main^0
# zhang@zhangziwa MINGW64 /d/gitPrac/ckck (main)
$ git branch dev5

# $ git branch -vv
#   dev1 306e593 Add pdf file
#   dev2 306e593 Add pdf file
#   dev3 306e593 [origin/main] Add pdf file
#   dev4 306e593 Add pdf file
#   dev5 306e593 Add pdf file

git branch -t

新建分支 并 track指定分支

# zhang@zhangziwa MINGW64 /d/gitPrac/ckck (main)
$ git branch -t dev origin/release
# branch 'dev' set up to track 'origin/release'.
# dev  277f35e [origin/release] new: 新建文件 111

# zhang@zhangziwa MINGW64 /d/gitPrac/ckck (main)
$ git branch -t origin/release
#⚠️branch 'origin/release' set up to track 'main'❗️.
# origin/release 306e593 [main] Add pdf file

# zhang@zhangziwa MINGW64 /d/gitPrac/ckck (main)
$ git branch -t dev1 release
# branch 'dev1' set up to track 'release'.
# dev1           277f35e [release] new: 新建文件 111

origin/release^0,获取 origin/release 指向的 实际 commit 哈希值,如果 origin/release 不是一个有效的 commit(比如它不存在或不是一个 commit 类型的对象),Git 会报错。


创建并切换到新分支

git checkout -b

# zhang@zhangziwa MINGW64 /d/gitPrac/ckck (main)
$ git checkout -b dev1 306e593
# Switched to a new branch 'dev1'
# zhang@zhangziwa MINGW64 /d/gitPrac/ckck (dev1)
$ git checkout -b dev2 main
# Switched to a new branch 'dev2'
# zhang@zhangziwa MINGW64 /d/gitPrac/ckck (dev2)
$ git checkout -b dev3 origin/main
# Switched to a new branch 'dev3'
#⚠️branch 'dev3' set up to track 'origin/main'❗️.
# zhang@zhangziwa MINGW64 /d/gitPrac/ckck (dev3)
$ git checkout -b dev4 origin/main^0
# Switched to a new branch 'dev4'
# zhang@zhangziwa MINGW64 /d/gitPrac/ckck (main)
$ git checkout -b dev5
# Switched to a new branch 'dev5'

# $ git branch -vv
#   dev1 306e593 Add pdf file
#   dev2 306e593 Add pdf file
#   dev3 306e593 [origin/main] Add pdf file
#   dev4 306e593 Add pdf file
# * dev5 306e593 Add pdf file

git checkout -t

新建分支并建立track关系

$ git checkout -t origin/release
# Switched to a new branch 'release'
# branch 'release' set up to track 'origin/release'.

$ git checkout -t -b dev7 origin/release
# Switched to a new branch 'dev7'
# branch 'dev7' set up to track 'origin/release'.

# $ git branch -vv
# * dev7    277f35e [origin/release] new: 新建文件 111
#   release 277f35e [origin/release] new: 新建文件 111

git switch -c

git switch -cgit checkout -b 的现代替代命令,旨在提供更清晰和专用的功能分离

$ git switch -c dev1 306e593
# Switched to a new branch 'dev1'
# zhang@zhangziwa MINGW64 /d/gitPrac/ckck (dev1)
$ git switch -c dev2 main
# Switched to a new branch 'dev2'
# zhang@zhangziwa MINGW64 /d/gitPrac/ckck (dev2)
$ git switch -c dev3 origin/main
# Switched to a new branch 'dev3'
#⚠️branch 'dev3' set up to track 'origin/main'.
# zhang@zhangziwa MINGW64 /d/gitPrac/ckck (dev3)
$ git switch -c dev4 origin/main^0
# Switched to a new branch 'dev4'
# zhang@zhangziwa MINGW64 /d/gitPrac/ckck (main)
$ git switch -c dev5
# Switched to a new branch 'dev5'

# $ git branch -vv
#   dev1 306e593 Add pdf file
#   dev2 306e593 Add pdf file
#   dev3 306e593 [origin/main] Add pdf file
#   dev4 306e593 Add pdf file
# * dev5 306e593 Add pdf file

git switch -t

新建分支并建立track关系

$ git switch -t origin/release
# Switched to a new branch 'release'
# branch 'release' set up to track 'origin/release'.

$ git switch -t -c dev origin/release
# Switched to a new branch 'dev'
# branch 'dev' set up to track 'origin/release'.

# $ git branch -vv
# * dev     277f35e [origin/release] new: 新建文件 111
#   release 277f35e [origin/release] new: 新建文件 111

fetch最新代码并创建分支

git fetch origin release:dev1

$ git fetch origin release:dev1
# From gitcode.com:okinawa/ckck
#  * [new branch]      release    -> dev1

# $ git branch -vv
# * dev     277f35e [origin/release] new: 新建文件 111
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值