git 创建分支提交远程分支

Git分支管理技巧
本文介绍如何使用Git创建和管理本地及远程分支,包括创建、切换、推送和拉取分支的方法,以及如何设置默认提交和获取分支。

1,从已有的分支创建新的分支(如从master分支),创建一个dev分支

git checkout -b dev

2,创建完可以查看一下,分支已经切换到dev

git branch

    * dev

    master

3,提交该分支到远程仓库

git push origin dev

4,测试从远程获取dev

git pull origin dev

或者:

如果用命令行,运行 git fetch,可以将远程分支信息获取到本地,再运行 git checkout -b local-branchname origin/remote_branchname  就可以将远程分支映射到本地命名为local-branchname  的一分支

5,我觉得现在重要的就是设置git push,pull默认的提交获取分支,这样就很方便的使用git push 提交信息或git pull获取信息

git branch --set-upstream-to=origin/dev

取消对master的跟踪

git branch --unset-upstream master

6,现在随便修改一下工程文件的内容,然后git commit ,git push,之后就可以直接提交到远程的dev分支中,而不会是master


本地分支的创建

本地分支的来源为执行git checkout -b <branch name> 的那个分支

例如现在有两个分支,master和b1

master 分支下有一个commit:

commit1: add test1.c

b1分支下有两个commit:

commit2: add test2.c

commit1: add test1.c

如果在master分支下checkout,即:

git checkout master //进入master分支

git checkout -b frommaster //以master为源创建分支frommaster

git log后发现frommaster中有一个提交:

commit1: add test1.c

这说明他是从master分支为源头创建的

如果在b1分支下checkout,即:

git checkout b1 //进入master分支

git checkout -b fromb1 //以b1为源创建分支fromb1

git log后发现fromb1中已经有两个提交:

commit2: add test2.c

commit1: add test1.c

这说明他是从b1分支为源头创建的

远程分支的创建

从远程分支检出的本地分支,称为跟踪分支(tracking branch)。跟踪分支是一种和远程
分支有直接联系的本地分支。在跟踪分支里输入git push,Git 会自行推断应该向哪个服
务器的哪个分支推送数据。反过来,在这些分支里运行git pull 会获取所有远程索引,并

把它们的数据都合并到本地分支中来.

$ git push ssh://git@dev.lemote.com/rt4ls.git master // 把本地仓库提交到远程仓库的master分支中

$ git remote add origin ssh://git@dev.lemote.com/rt4ls.git
$ git push origin master


这两个操作是等价的,第二个操作的第一行的意思是添加一个标记,让origin指向ssh://git@dev.lemote.com /rt4ls.git,也就是说你操 作origin的时候,实际上就是在操作ssh://git@dev.lemote.com/rt4ls.git。origin在这里完全可以理解为后者 的别名。

    需要说明的是,默认情况下这条语句等价于提交本地的master仓库到远程仓库,并作为远程的master分支。

我从master分支创建了一个issue5560分支,做了一些修改后,使用git push origin master提交,但是显示的结果却是'Everything up-to-date',发生问题的原因是git push origin master 在没有track远程分支的本地分支中默认提交的master分支,因为master分支默认指向了origin master 分支,这里要使用git push origin issue5560:master 就可以把issue5560推送到远程的master分支了。

    如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,那么可以这么做。

$ git push origin test:master         // 提交本地test分支作为远程的master分支
$ git push origin test:test              // 提交本地test分支作为远程的test分支

如果想删除远程的分支呢?类似于上面,如果:左边的分支为空,那么将删除:右边的远程的分支。

$ git push origin :test              // 刚提交到远程的test将被删除,但是本地还会保存的,不用担心


### 创建本地分支并从远程仓库拉取对应分支教程 在 Git 中,创建本地分支并将远程分支拉取到本地是一个常见的操作。以下是详细说明和代码示例: #### 查看远程分支 首先需要查看远程仓库中的所有分支,确保目标分支存在。可以使用以下命令: ```bash git ls-remote --heads origin ``` 该命令会列出远程仓库的所有分支及其对应的提交哈希值[^4]。 #### 创建本地分支 如果需要创建一个新的本地分支,可以使用以下命令: ```bash git checkout -b 新分支名 ``` 例如,创建一个名为 `dev1` 的本地分支: ```bash git checkout -b dev1 ``` 执行后,Git 会从当前分支检出新的分支,并自动切换到新分支上[^2]。 #### 推送本地分支远程仓库 创建的本地分支可以通过以下命令推送到远程仓库,并设置上游分支: ```bash git push --set-upstream origin 分支名 ``` 例如,将 `dev1` 分支推送到远程仓库: ```bash git push --set-upstream origin dev1 ``` 这一步会将本地分支远程分支关联起来[^2]。 #### 拉取远程分支到本地 如果需要从远程仓库拉取一个本地不存在的分支,可以按照以下步骤操作: 1. **Fetch 远程分支** 使用以下命令获取远程分支信息: ```bash git fetch ``` 该命令会从远程仓库下载最新的分支信息,但不会自动创建本地分支[^1]。 2. **创建本地分支并与远程分支关联** 使用以下命令创建本地分支,并将其与远程分支关联: ```bash git checkout -b 本地分支名 origin/远程分支名 ``` 例如,将远程分支 `dev2` 拉取到本地并命名为 `dev2`: ```bash git checkout -b dev2 origin/dev2 ``` 如果成功,本地会创建一个新的分支 `dev2`,并自动切换到该分支上。 3. **解决可能的错误** 如果出现以下错误提示: ``` fatal: Cannot update paths and switch to branch 'dev2' at the same time. Did you intend to checkout 'origin/dev2' which can not be resolved as commit? ``` 表示需要先执行 `git fetch` 再尝试关联分支[^2]。 #### 验证本地分支是否关联远程分支 可以通过以下命令验证本地分支是否已正确关联远程分支: ```bash git branch -vv ``` 输出中会显示本地分支远程分支的关联关系[^3]。 ### 示例代码 以下是一个完整的示例流程: ```bash # 查看远程分支 git ls-remote --heads origin # Fetch 远程分支信息 git fetch # 创建本地分支并与远程分支关联 git checkout -b dev2 origin/dev2 # 验证关联关系 git branch -vv ``` #### 注意事项 - 如果远程分支不存在,上述操作会失败。请确保目标分支存在于远程仓库中。 - 在执行 `git checkout -b` 命令时,确保分支名称无误,避免拼写错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值