git远程操作总结(一)

1. git clone 地址

把远程仓库的东西克隆下来
在本地仓库里面可以得到一模一样的信息,
此时分支名为:origin/master,代表克隆的是远程仓库origin的master分支
在这里插入图片描述

2. git commit

原来:
在这里插入图片描述
提交之后:
origin/master远程分支不会动,本地的master分支会自己动
在这里插入图片描述

2.1 git checkout origin/master

把HEAD分支拿到origin/master上面(默认从当前所在分支拿)
检出到该分支
在这里插入图片描述

2.2 git commit

会从HEAD分支继续提交
在这里插入图片描述

3. git fetch

原来远程仓库有两个分支,我们本地里面两个克隆下来的分支还没有更新到最新
取最新
在这里插入图片描述执行git fetch更新所有的远程分支
在这里插入图片描述
注意!!!!!!
只是更新了远程分支,我们界面看到的分支还在HEAD上,需要切换到远程分支才能看出变化。

4. git merge

现在是这种状态:远程仓库更新了,本地也更新了,两个不同步
在这里插入图片描述
执行git fetch
新开了一部分,抓取到了远程的最新分支
在这里插入图片描述
再执行git merge o/master
把o/master这个分支拽到HEAD上
把该分支合并到HEAD分支
在这里插入图片描述
现在合并好了。

5. git pull

git pull执行第四个知识点的git fetch 和git merge两步,一模一样的结果。
在这里插入图片描述
git pull = git fetch + git merge
所以git pull会自动取得远程仓库的最新分支并自动和本地分支合并。(远程仓库还没动,只是本地好了)

--------------------------------------------上面是远程仓库变化,更新本地仓库

--------------------------------------------下面是本地仓库变化,去更新远程仓库

6. git push

原本:
在这里插入图片描述
先git commit两次
在这里插入图片描述
git push
把本地变化都推过去
注意!!!!!!!!!
我们本地仓库o/master和远程仓库的master分支都自动更新了。
在这里插入图片描述

7. git rebase

远程仓库和本地仓库都做了更改,两边不一样了(远程仓库的master分支在c3,本地仓库的o/master分支在c1),这时候是不能够git push成功的
在这里插入图片描述
此时怎么办呢?必须强制把本地仓库更新到和远程仓库一样的状态

7.1 git fetch -> git merge o/master ->git push

就是第4点的内容,

  • git fetch先把本地的o/master分支更到最新
    在这里插入图片描述
  • git merge o/master合并本地分支和远程分支
    在这里插入图片描述
  • git push 把本地仓库推送到远程
    在这里插入图片描述
    也可以直接看第5点,把git fetch 和git merge合在一起写成,git pull
    然后git push。
    在这里插入图片描述
    在这里插入图片描述
7.2 git fetch -> git rebase o/master ->git push
  • git fetch抓取新分支
    在这里插入图片描述
  • git rebase o/master
    (git rebase o/master master应该是两个参数,master默认参数省略,意思是o/master续上master)
    把本地工作和新分支合并本地分支是没有变的,和merge不同的地方是merge形成了一个黏在一起的提交,rebase形成了一个新的提交。
    注意!!!!
    我们本地的master分支在新提交上。 在这里插入图片描述
  • git push提交即可
    在这里插入图片描述
7.3 git pull --rebase ->git push

和第4点、第5点、第7.1点一样,我们也可以把命令合在一起写
git pull = git fetch + git merge
git pull --rebase = git fetch + git rebase(相当于只指定是rebase合并,否则默认是merge合并)
在这里插入图片描述
在这里插入图片描述

8. git reset

撤回某次提交。
原本:
在这里插入图片描述
我们想撤回到c1状态(或者撤回到o/master分支)
git reset --hard c1(git reset --hard o/master)
在这里插入图片描述
(reset有三种选项,hard mixed soft可以看下图,表示撤回到哪里)
在这里插入图片描述
接着:
git checkout -b feature c2
检出到feature分支(在c2上新建的分支)
在这里插入图片描述
最后
git push
在这里插入图片描述这些操作可以让我们造一个新分支把之前的提交放在新提交上面推送到远程仓库中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值