工作学习中,我们经常会有这么一个场景,需要自己搭建项目去实现一个系统或工具,但是不会让你合并到主分支,而是让你在远程仓库新建分支,将本地分支代码推送过去。
假设本地已经有了一个项目,打开文件夹,git bash
1、在本地项目路径创建一个空
的git仓库,这是本地仓库。
git init
2、把当前文件夹所有文件提交到暂存区
(缓存区)
git add .
3、将暂存区所有文件提交到本地仓库并带有提交日志
git commit -m "提交信息或日志记录写这里"
4、新建本地分支并切换
命令 | 说明 |
---|---|
git branch 分支 | 创建分支 |
git checkout 分支 | 切换分支 |
git checkout -b 分支 | 创建分支并切换 |
git checkout -b dev
5、本地关联远程仓库
git remote add origin 远程仓库地址
6、本地直接推送到远程仓库的一个新分支(相当于推送的同时在远程仓库创建了一个新分支
)
git push origin dev:davon // <本地新建分支名,或是初始master>:<远程仓库的新分支名>
7、到上一步已经完成了代码提交,此时本地分支实际并没有与远程分支建立联系
,需要这一步操作,以后就可以直接提交代码了
git push --set-upstream origin dev:davon
该命令会列出您当前本地的所有分支,并且显示每个分支与它所跟踪的远程分支之间的关系。如果某个本地分支没有跟踪任何远程分支
,那么它的远程分支列会是空的。(如果没有执行上面的第七步就会显示空)
git branch -vv
git branch -vv <branch-name> // 查询指定分支
删除远程仓库中的某个分支
git push <remote> :<branch>
其中,remote
是远程仓库的名称, branch
是要删除的分支名称。可以省略 remote
参数,如果省略,则默认使用远程仓库的 origin
作为远程仓库。
注意,两点之间的空格
是必须
的,它表示将一个空的“对象”推送到远程分支,这样就会删除远程分支。
例如,如果要从远程仓库 origin 中删除名为 feature-branch
的分支,则可以使用以下命令:
git push origin :feature-branch
执行此命令后,远程仓库 origin 中的 feature-branch
分支将被删除。请注意:
此命令会直接删除远程分支,因此在执行此命令之前,请确保你了解正在执行的操作,并确保你不会错误删除任何分支。
删除远程仓库分支也可以用下面命令:
git push origin --delete feature-branch
执行此命令后,远程仓库 origin 中的 feature-branch 分支将被删除。请注意,此命令不会删除本地仓库中的分支,如果需要删除本地分支,需要执行下面命令:
git branch -d <branch>
本地分支与远程分支关联,并推送到远程仓库(远程已经存在一个分支)
git push --set-upstream origin master
其他命令:Git本地分支和远程分支关联
工作中会要合并分支,比如将远程分支pinia
合并到当前分支davon
中,在这个过程中,我们需要始终保持本地拥有和远程分支一样的结构
,也就是说本地也得有pinia分支才行,我们首先来看命令:
1、切换到 davon
分支
git checkout davon
2、从远程仓库 origin
更新本地 pinia
分支
git fetch origin pinia
3、将 pinia
分支合并到当前分支 davon
上
git merge origin/pinia
如果你想在合并过程中禁用 Fast-forward
模式,可以添加 --no-ff
选项
git merge --no-ff origin/pinia
这样,会产生一次新的提交来标记
分支间的合并。
如果在合并过程中发生冲突,你需要解决冲突后再提交合并结果。
如果你使用vscode来提交代码,同样需要更新pinia的本地代码,也就是需要去远程拉取一次,再切换回davon分支去合并分支,提交推送就可以完成。或者你在本地新建一个分支叫pinia,拉取代码,然后合并,原理是一样的