Github - 第三篇:分支操作案例

1.本地分支与远程分支 建立或撤消关联

1)本地没有dev分支,远程有dev分支

  • git checkout --track origin/dev
  • #本地会新建分支dev并自动跟踪远程分支dev

2)本地已有分支dev,但远程没有

  • git push --set-upstream origin dev
  • #远程会创建dev分支,并本地分支dev会自动跟踪远程分支dev

3)本地与远程都没有分支dev

  • git checkout -b dev
  • git push origin dev

4)已有本地分支dev与远程分支dev

  • git checkout -b dev #新建并切换到本地dev分支
  • git branch --set-upstream-to=origin/dev dev #本地dev与远程dev建立关联
  • git pull origin dev #新建远程分支,并本地分支与远程分支相关联

5)本地与远程分支不同名建立关联

  • git checkout -b local_branch remote_branch

6)撤消本地分支与远程分支关联关系

  • git branch --unset-upstream

2.本地分支 与 远程分支合并

1)合并两本地分支:将本地分支dev合并到本地分支master

  • git checkout dev #切换到dev
  • git commit #提交commit
  • git checkout master #切换到master
  • git commit #提交commit
  • git merge dev #将dev 合并到master

2)远程分支合并到本地分支:将远程master合并到本地分支dev

  • git remote -v    查看远程仓
  • 将远程orgin仓master分支下载到本地,并新建一个dev分支
  • git fetch origin PtahRevitDesigner:dev
  • git diff dev    查看dev分支与本地原有分支的不同
  • git merge dev    将dev分支和本地分支合并
  • git branch -d dev     删除temp分支

3)将远程分支dev合并到远程master

  • [1]方法一: 在gitlab 或 github 页面上进行merger操作
  • [2]方法二: 将本地dev分支合并到本地master,将本地master推送到远程master
  • update hello.py #更新hello.py
  • git add hello.py #添加hello.py到暂存区
  • git commit -m "add sys module" #将hello.py从暂存区提交到仓库区
  • git checkout master #切换到master分支
  • git merge dev #本地的dev合并到master上
  • git push origin master  #推送到远程的master上

3.提交代码

1)本地master提交至远程master

  • git checkout master
  • git add hello.py #添加hello.py到暂存区
  • git commit -m "output ok" #将hello.py从暂存区提交到仓库区
  • git push 或 git push origin master

2)本地dev提交至远程dev

  • git status #查看当前分支
  • git checkout dev #切换至dev分支
  • update hello.py #更新hello.py
  • git status #查看dev更新情况
  • git add hello.py #添加hello.py到暂存区
  • git commit -m "add sys module" #将hello.py从暂存区提交到仓库区
  • git push origin dev #将从仓库区推送到远程分支dev

3)将远程分支dev合并到远程master

  • [1]方法一: 在gitlab 或 github 页面上进行merger操作
  • [2]方法二: 将本地dev分支合并到本地master,将本地master推送到远程master
  • update hello.py #更新hello.py
  • git add hello.py #添加hello.py到暂存区
  • git commit -m "add sys module" #将hello.py从暂存区提交到仓库区
  • git checkout master #切换到master分支
  • git merge dev #本地的dev合并到master上
  • git push origin master  #推送到远程的master上

4)当远程库与本地库不一致,如何merge和push

  • #先将远程master pull到本地master
  • git pull origin master 或 git pull --rebase origin master
  • #将本地dev合并到本地master上
  • git checkout master
  • git merge dev
  • git push origin master 或 git push -u origin master

4.撤消修改或commit

  • git reset --soft HEAD^
  • #--soft不删除工作空间改动代码,撤销commit,不撤销git add . 
  • git reset --hard f1c13bfd921e085d8b8d18ace9d69c25bc00b878
  • #--hard 删除工作空间改动代码,撤销commit,撤销git add . 
  • #注意完成这个操作后,就恢复到了上一次的commit状态。

1)恢复暂存区的指定文件到工作区

  • git checkout [file]
  • 2)恢复某个commit的指定文件到暂存区和工作区
  • git checkout 7a6847c test.md
  • 3)恢复暂存区的所有文件到工作区
  • git checkout .

  • # 重置暂存区与工作区,与上一次commit保持一致
  • $ git reset --hard
  • # 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
  • $ git reset [commit]
  • # 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
  • $ git reset --hard [commit]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值