Git 分支合并代码

Git 分支合并代码1 首先看目前位于哪个分支上 前面带 号的为当前分支 gitbranch2 创建本地分支 若没有 dev 分支会创建并切换到 dev2 上 gitcheckout bdev3 在分支 dev 上进行改动 改动完成 commit 之后的 commitId 需要保存 gitadd gitcommit m 提交信息 4 回到 master 分支 gitcheckoutm

工作区(work directory):一般就是我们项目的根目录。

本地仓库(repository):我们在为项目添加本地库之后,会在工作区生成一个如下图所示的隐藏目录“.git”,.git目录即为当前工作区的本地版本库

暂存区(stage):版本库中设立一个暂存区(Stage or Index),作为用来直接跟工作区的文件进行交互,工作区文件的提交或者回滚首选都是通过暂存区,而版本库中除了暂存区之外,文件的提交的最终存储位置是分支(Branch),在创建版本库的时候默认都会有一个主分支(Master)

1.首先 看目前位于哪个分支上 (前面带*号的为当前分支)

git branch 

2.创建本地分支 (若没有dev分支会创建并切换到dev2上)

git checkout -b dev 

3.在分支dev上 进行改动,改动完成 (commit之后的commitId需要保存)

git add . git commit -m "提交信息" 

4.回到master分支

git checkout master 

5.更新代码

git pull origin master 

7.将dev的更新合并过来(commitId是dev在commit的时候的)

git cherry-pick commitId 

当cherry-pick时,没有成功自动提交,这说明存在冲突

 $ git cherry-pick 2555c6e error: could not apply 2555c6e... [Description]:branch2 commit 2 hint: after resolving the conflicts, mark the corrected paths hint: with 'git add 
  
    ' or 'git rm 
   
     ' hint: and commit the result with 'git commit' 
    
  

8.有冲突手动解决然后 add,可以不commit,直接调用 add和continue 之后继续(等于再次commit)

git add . git cherry-pick --continue 

https://blog.csdn.net/fightfightfight/article/details/

9.然后可以查看当前提交的信息(查看n条就写-n)

git log -3 

最后就可以push了

git push -u origin master 或者 git push origin HEAD:refs/for/master 
git commit --amend git push origin HEAD:refs/for/master 

1、比如时间点A拉取了最新的代码 ,然后创建一个本地分支dev,做了改动 然后git add .git commit -m " dev commit "

2.然后回到master 分支 git checkout master,这是后发现远程代码更新了,然后就要git pull origin master 然后呢,这时候你有另一个功能要改,此时就要再创建一个dev1分支,然后在dev1上改动,改完之后 git add .git commit就可以回到master 上
3.再次回到master 分支,然后就可以 将dev 和dev1 的改动合并过来了

git cherry-pick 57f6eac(dev 的commitId) 

如果有冲突就解决冲突,然后dev1 同理

 git add . git cherry-pick --continue 

4.都cherry-pick完成之后,git log -3看最上面的两次commit,因为每次的cherry-pick都相当于一次commit ,从log的信息可以看出,master分支上的这两次commit的信息 (commitId,和注释)就是dev和dev1分支上的commitId和注释。

 git rebase -i commitId 

在这里插入图片描述
保存之后,还是会进入一个可以vi 的编辑界面合并成新的commit的备注信息,这样就完成了。

=============================================================

另外一个问题,在上面的步骤2 比如,从dev回到master分支之后,pull下来更新的代码,然后创建dev1,打算去完成某一功能,但是需要dev中已经添加的一些资源,所以 我就把dev 的commit cherry-pick到了dev1上,然后继续完成功能,完成之后add commit

===========================================================

git reset --hard commitId 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208621.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午11:09
下一篇 2026年3月19日 上午11:09


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号