git切换、合并、推送分支

需求

1.把本地仓库中的项目分支合并到主分支里面

git分支的常用操作

操作 git
查看当前本地分支 git branch
查看所有分支 git branch -a
查看远程origin分支 git branch -r
创建新的分支 git branch master2
切换到新分支 git checkout master2
对比两个分支的区别 git diff master…master2
将master2分支合并到当前分支 git merge master2
重命名 git branch -m bugfix bugfix-1
删除 git branch -d bugfix-1
————————————————

git 对比两个分支差异

  1. 显示出branch1和branch2中差异的部分
    git diff branch1 branch2 –stat

  2. 显示指定文件的详细差异
    git diff branch1 branch2 具体文件路径

  3. 显示出所有有差异的文件的详细差异
    git diff branch1 branch2

  4. 查看branch1分支有,而branch2中没有的log
    git log branch1 ^branch2

  5. 查看branch2中比branch1中多提交了哪些内容
    git log branch1..branch2
    注意,列出来的是两个点后边(此处即dev)多提交的内容。

  6. 不知道谁提交的多谁提交的少,单纯想知道有什么不一样
    git log branch1…branch2

  7. 在上述情况下,在显示出每个提交是在哪个分支上
    git log -lefg-right branch1…branch2
    注意 commit 后面的箭头,根据我们在 –left-right branch1…branch2 的顺序,左箭头 < 表示是 branch1 的,右箭头 > 表示是branch2的。

————————————————

实现分支合并后推送

1.查看当前本地分支 git branch
2.切换到新分支 git checkout main
3.对比两个分支的区别 git diff main…fluid
注意:执行git diff命令之后,如何退出(输入q,按enter键盘)
4.将fluid分支合并到当前分支main, git merge fluid
5.然后查看状态及执行提交命令
git status
git push origin main
注意:这时会报错如下内容

1
2
3
4
5
6
7
8
 ! [rejected]        main -> main (fetch first)
error: failed to push some refs to 'git@github.com:dzq88/hexo-blog.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

解决办法:git错误error: failed to push some refs to ‘git@github.com:dzq88/hexo-blog.git’

1.问题原因:远程库与本地库不一致造成的,在hint中也有提示把远程库同步到本地库就可以了
解决办法:使用命令行:

1
git pull --rebase origin main

该命令的意思是把远程库中的更新合并到(pull=fetch+merge)本地库中,–-rebase的作用是取消掉本地库中刚刚的commit,并把他们接到更新后的版本库之中。出现如下图执行pull执行成功后,可以成功执行git push origin master操作。

1
2
3
4
5
6
7
8
9
10
11
12
13
$ git pull --rebase origin main
remote: Enumerating objects: 24, done.
remote: Counting objects: 100% (24/24), done.
remote: Compressing objects: 100% (21/21), done.
remote: Total 21 (delta 16), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (21/21), done.
From github.com:dzq88/hexo-blog
* branch main -> FETCH_HEAD
44887ad..330d065 main -> origin/main
First, rewinding head to replay your work on top of it...
Applying: 更改主题thems
Applying: 更fluid文件夹

最后使用以下命令将将更新的代码push到远程仓库下

1
git push origin main

2.成功推送

1
2
3
4
5
6
7
8
9
10
11
$ git push origin main
Enumerating objects: 231, done.
Counting objects: 100% (231/231), done.
Delta compression using up to 4 threads
Compressing objects: 100% (213/213), done.
Writing objects: 100% (229/229), 598.16 KiB | 1.36 MiB/s, done.
Total 229 (delta 8), reused 119 (delta 5)
remote: Resolving deltas: 100% (8/8), completed with 1 local object.
To github.com:dzq88/hexo-blog.git
330d065..0919245 main -> main

欢迎光临本站!


本站主要记录一些个人所学的内容。



git切换、合并、推送分支
http://example.com/2024/02/24/git切换、合并、推送分支/
作者
dzq88
发布于
2024年2月24日
许可协议