如何使用git将分支branch合并到主干master上
对于一人独立使用git进行系统开发时,branch分支相当于版本(Version),如果每次都将新的分支branch提交到GitHub上,则会在GitHub中产生相应的新分支。那么如何将开发完毕的新分支合并到主干master上,而且还保留原有分支信息呢?
新建分支并切换
git chechout -b wang
这样就切换到新建的分支上了,接着我们在新建的分支上进行系统开发,假设修改了README.MD中的内容,添加了下面一句:
增加系统维护模块
开发完毕后需要在当前分支上提交修改后的文件,使用如下命令:
git add README.MD
git commit -m "增加系统维护模块"
切换到主干master
使用如下命令从当前分支切换到主干master上:
git checkout master
合并某个分支到主干master
使用如下命令合并分支:
git merge wang
合并后删除分支信息
使用如下命令删除分支:
git branch -d wang
1.如果此时你在wang这个分支上,删除分支的时候会报错:error: Cannot delete branch 'xxx' checked out at 'xxxx'
解决方案:想要删除分支,就需要将当前分别切换到别的分支上,不能再wang这个分支上。
2.error: The branch 'wang' is not fully merged.
If you are sure you want to delete it, run 'git branch -D wang'.
解决方案:git branch -D wang,此时本地的删除了。
查看所有分支信息
使用如下命令查看所有分支:
git branch -a
(tensorflow) localhost:DeepCTR person$ git branch -a
* master
remotes/origin/DMR
remotes/origin/master
remotes/origin/wang
此时远程分支还在,也需要删除一下远程分支:
git push origin --delete wang
此时本地和远程的分支wang,都被删除了。
git 删除远程仓库文件
具体操作步骤如下:
-
预览将要删除的文件
git rm -r -n --cached 文件/文件夹名称
加上 -n 这个参数,执行命令时,是不会删除任何文件,而是展示此命令要删除的文件列表预览。
- 确定无误后删除文件
git rm -r --cached 文件/文件夹名称
- 提交到本地并推送到远程服务器
git commit -m "提交说明"
git push origin master
本地删除分支后,重新建立本地分支,git pull时,遇见如下问题:
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> release
使用git在本地新建一个分支后,需要做远程分支关联。如果没有关联,git会在下面的操作中提示你显示的添加关联。
关联目的是在执行git pull, git push操作时就不需要指定对应的远程分支,你只要没有显示指定,git pull的时候,就会提示你。
解决方法就是按照提示添加一下:
git branch --set-upstream-to=origin/remote_branch your_branch
其中,origin/remote_branch是你本地分支对应的远程分支;your_branch是你当前的本地分支。