
Git的分支合并主要依赖于checkout命令和cherry-pick 命令。cherry-pick就是从不同的分支中捡出一个单独的commit,并把它和你当前的分支合并。如果你以并行方式在处理两个或以上分支,你可能会发现一个在全部分支中都有的bug,如果你在一个分支中解决了它,你可以使用cherry-pick命令把它commit到其它分支上去,而不会弄乱其他的文件或commit。
1例子:如我的Git文件在H:盘下,/h/myfirstproject,该目录中有三个分支:test分支,newbranch1分支和mater分支。如果想把test分支的某个commit合并到master,需要经过下面的步骤:
执行git log -3 --graph test,查看test分支下的commit: 注:commit 后面的hash值代表某个commit,这里把”2e1ada53819d46557b24ee7376dc61d37a06939d“这个commit提交到master。
执行git checkout master,切换到master分支。
执行 git cherry-pick 2e1ada53819d46557b24ee7376dc61d37a06939d,该commit便被提交到了master分支。
到此,”2e1ada53819d46557b24ee7376dc61d37a06939d“这个commit便被提交到了master分支。
2例子:把本地的test分支的某个commit提交到远程testdevelop分支。
从远程分支 checkout 出来的本地分支,称为跟踪分支(tracking branch)。跟踪分支是一种和远程分支有直接联系的本地分支。在跟踪分支里输入Git push,Git
会自行推断应该向哪个服务器的哪个分支推送数据。反过来,在这些分支里运行git pull 会获取所有远程索引,并把它们的数据都合并到本地分支中来。
在克隆仓库时,Git 通常会自动创建一个名为 master 的分支来跟踪 origin/master。这正是git push 和 git pull 一开始就能正常工作的原因。当然,你可以随心所欲地设定为其它跟踪分支,比如origin 上除了 master 之外的其它分支。刚才我们已经看到了这样的一个例子:git checkout -b [分支名]
[远程名]/[分支名]。
1首先新建一个临时分支,并把临时分支与远程分支关联。
git checkout -b tempbarch --track origin/testdevelop
2此时已经切换到了tempbarch分支。再执行:git log -3 --graph test,查看test分支下的commit:
3执行git cherry-pick f6cb436ff5a010cdd72dc2c8ff018db8e8832271 即可把”f6cb436ff5a010cdd72dc2c8ff018db8e8832271“这个commit提交到tempbranch分支。
然后再通过Tortoise客户端的push命令,即可把该commit提交到远程testdevelop分支。
4切换到任何非tempbranch分支,如master分支,执行git branch -d tempbranch,即可把tempbranch分支删除掉。
将远程git仓库里的指定分支拉取到本地(本地不存在的分支)
方法一:
方法二:用克隆法
git clone -b 指定的远程分支名 GitHub-URL
git clone -b ieo >
可以。 远程仓库 git clone 下来,当你执行 git branch,你只会看到 master 并不会看到其他分支,即便远程仓库上有其他分支,使用 git branch -va 可以查看本地+远程分支列表 master 0840594 merge master and 100 remotes/origin/100 7
git checkout -b fjhbranch develop
基于远程的develop分支创建本地分支
on branch fjhbranch (在本地分支)
git add
git commit -m"xxxxx"
git checkout develop
git merge --no-ff fjhbranch
git push origin develop
进入到项目根目录,打开命令行/终端,输入指令,将会显示该项目的本地的全部分支,其中、当前分支的前面有号。
git branch
git checkout -b 新分支名
执行该指令后,会在本地创建一个新分支,该分支是从当前分支上检出的,所以所有文件内容都和当前分支一模一样,这是正常的。创建成功后,将自动切换至新分支上。
比如我要创建一个名为dev1的新分支:
此时,再执行git branch查看当前本地所有分支,就会看到两个分支:master与dev1
这里面两种方式
git push --set-upstream origin 分支名
例如,我要把上一步创建的本地dev1推送到远程仓库:
当我想从远程仓库里拉取一条本地不存在的分支时:
git checkout -b 本地分支名 origin/远程分支名
这个将会自动创建一个新的本地分支,并与指定的远程分支关联起来。
例如远程仓库里有个分支dev2,我本地没有该分支,我要把dev2拉到我本地:
若成功,将会在本地创建新分支dev2,并自动切到dev2上。
如果出现提示:
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
然后再执行
git checkout -b 本地分支名 origin/远程分支名
即可。
首先确保你的本地git工作目录下已经增加了远程分支了
使用 git remote -v 查看。
如果没有则先使用 git remote add 命令添加一个(假设名为origin,分支为master)。
如果已经有了,则使用 git push origin master命令提交当前工作目录下的分支到远程master分支
现在我在master分支上,工作目标是干净的,也没有需要 commit 的:
新建一个本地分支:
查看一下现在的分支状态:
星号()表示当前所在分支。现在的状态是成功创建的新的分支并且已经切换到新分支上。
把新建的本地分支push到远程服务器,远程分支与本地分支同名(当然可以随意起名):
使用 git branch -a 查看所有分支,会看到 remotes/origin/dev10 这个远程分支,说明新建远程分支成功。
我比较喜欢的简单方式,推送一个空分支到远程分支,其实就相当于删除远程分支:
也可以使用:
这两种方式都可以删除指定的远程分支
在记录一次:删除本地分支,并重新推送远程分支
以上就是关于如何把Git的某个commit提交到指定的本地分支和远程分支全部的内容,包括:如何把Git的某个commit提交到指定的本地分支和远程分支、git clone 指定分支 /git checkout -b 本地分支名 origin/指定远程分支名、如何查看git本地分支对应的远程分支等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)