git学习 远程仓库02
使用远程仓库:
- 查看当前远程库://克隆后,至少有一个名为 origin 的远程库,Git 默认使用这个名字来标识你所克隆的原始仓库
- git remote -v: 并显示所有远程库的地址;
- 添加远程仓库:
- git remote add [local_origin] [url]:
- git push -u [local_origin] master //第一次推送
master
分支时,加上了-u
参数,把本地的master
分支和远程的master
分支关联起来 - git push [local_origin] master ;
- 查看远程分支:
- git branch -a
- 从远程仓库抓取数据:
- git fetch [remote-name] ;//如果是克隆了一个仓库,使用
git fetch origin
(git fetch origin remote_branch);fetch 只是将数据拉到本地仓库,并不自动合并; - 如果设置了某个分支用于跟踪某个远端仓库的分支,可以使用
git pull
命令自动抓取数据下来;
- git fetch [remote-name] ;//如果是克隆了一个仓库,使用
- 推送数据到远程仓库: git push [remote-name] [branch-name]:
- 例子:把本地的 master 分支推送到origin 服务器上 git push origin master
- 创建远程分支:
- git push origin [name];
- 利用本地分支[name],创建远程同名的分支;
- 注意未创建之前本地分支[name]推送到本地切出来分支对应的远程分支;
- 删除远程分支:
- git push origin --delete <remote_name>
- 获取远程分支映射
- git checkout -b local_name orgin/remote_name;
- 如果出现问题,先运行 git fetch,再运行上面的命令
分支管理:
- 当前分支:一个指向你正在工作中的本地分支的指针HEAD
- 新建分支: git branch <branchname>
- 切换分支: git checkout <branchname> //此时HEAD指向新的工作分支
- 简化:git checkout -b <branchname>
- 删除分支:git branch -d <branchname>
- 不能这样删除还未合并进来的分支,使用 git branch -D <branchname>强制删除;
- 重命名分支: git branch -m <branch_name> <new_name>
- 显示所有分支: git branch
- 显示所有分支同时包括各个分支最后的提交: git branch -v
- 查看哪些分支已被并入当前分支(直接上游): git branch --merged / --no-merged
- 一般分支类型:
master分支是主分支,因此要时刻与远程同步;
dev分支是开发分支,所以也需要与远程同步;
bug分支只用于在本地修复bug,就没必要推到远程;
feature分支是否推到远程,取决于实际开发情况。
合并:将目标分支合并到当前分支 git merge <targetbranch>
- Fast-forward: 顺着单线分支合并,只是将指针右移,如下
c4合并到c2;
- 分叉分支合并:
这次合并操作的底层实现,Git 会用两个分支的末端(C4 和 C5)以及它们的共同祖先(C2)进行一次简单的三方合并计算 ;
对三方合并后的结果重新做一个新的快照,并自动创建一个指向它的提交对象,它有两个祖先;值得一提的是 Git 可以自己裁决哪个共同祖先才是最佳合并基础;
- 遇到冲突时的分支合并: //这时必须手动选择内容解决冲突
- 运行git merge <targetbranch>之后,git作了合并,但没有提交,它会停下来等你解决冲突;
- 使用git status查看发生冲突的文件;
- 进入文件:会显示格式:
<<<<<<< HEAD
head分支冲突部分的内容
=======
目标分支冲突部分的内容
>>>>>>> <targetbrach>
1-press "i"
2-write your merge method
3-press "esc"
4-write ":wq" then press enter
- 在手动修改完毕并删除多余符号之后可以将其添加到暂存区后提交了;添加暂存时会询问是否确定修改完毕;
- 用git log --graph命令可以看到分支合并图。
- 非Fast-forward合并:
- git merge --no-ff -m "merge with no-ff" dev
- 合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
衍合: //与分支合并(merge)不同,分支衍合(rebase)是把一个分支里提交的改变移到另一个分支里重放一遍;
$ git checkout experiment $ git rebase master
它的原理是回到两个分支最近的共同祖先,根据当前分支(也就是要进行衍合的分支 experiment
)后续的历次提交对象(这里只有一个 C3),生成一系列文件补丁,然后以基底分支(也就是主干分支master
)最后一个提交对象(C4)为新的出发点,逐个应用之前准备好的补丁文件,最后会生成一个新的合并提交对象(C3'),从而改写 experiment
的提交历史,使它成为 master
分支的直接下游,如图 所示:
现在回到 master
分支,进行一次快进合并:
其结果是和merge相同的,但会有个更简介的提交历史;
本地分支rebase之后可能不能进行push,这时候使用git push -f;
多人协同工作:
- 查看添加的远程地址: git remote -v
- 添加远程地址: git remote add [name] [url]
- git fetch [name]
- 操作: git push/pull [name] [origin_branch]
切出commit分支
- git branch -b [new_name] [hash]
转载于:https://www.cnblogs.com/jinkspeng/p/4172314.html
git学习 远程仓库02相关推荐
- 【git学习三】git基础之git管理远程仓库
1.背景 git管理远程仓库,本文以github为例. 2.管理远程仓库 1.本地ssh认证,在github建立一个repo叫做ospaf-GetWordFre 2.添加远程仓库 ...
- Git更新远程仓库代码到本地仓库办法
Git更新远程仓库代码到本地仓库办法 1. 需求 2. 查看远程分支 git remote -v 3. 从远程获取最新版本到本地 git fetch origin master:temp 4. 比较本 ...
- Git本地远程仓库的搭建(局域网内也可提交)
寂书万卷 2018-07-09 16:02:06 13357 收藏 23 展开 Git本地远程仓库的搭建(windows 7专业版) 你是否也这样想过?可以在自己的两台或者多台电脑中创建一个仓 ...
- Git系列(二)、Git连接远程仓库(Gitee码云)
Git连接远程仓库 一.什么是Git远程仓库? 二.创建远程仓库 第一步:新建仓库 第二步:创建SSH公钥 第三步:查看公钥 第四步:登录码云Gitee,打开当前仓库设置,添加SSH公钥 第五步:从本 ...
- 使用git 添加远程仓库 或者 从远程仓库克隆的两种实现
使用git 添加远程仓库 1-先配置本地git git init git config --global user.eamil "1500070188@qq.com" 邮件地址 g ...
- 使用git将远程仓库和本地仓库关联
使用git将远程仓库和本地仓库关联 1.首先你需要一个sshKey,并与远程仓库绑定 sshkey生成和绑定 2.新建本地仓库并与远程仓库关联 创建一个新文件夹,然后进入该文件路径,使用 git in ...
- 解决git添加远程仓库提示出错信息:fatal: remote origin already exists
解决git添加远程仓库提示出错信息:fatal: remote origin already exists. 解决办法如下:1.先输入$ git remote rm origin2.再输入$ git ...
- Git连接远程仓库(私有/公开仓库),克隆代码
Git连接远程仓库(私有/公开仓库),克隆代码 1.下载安装Git: git官网下载地址: https://git-scm.com/download/win 但是 ,git官网的话,下载速度比较慢,可 ...
- git和远程仓库建立连接详细过程
git和远程仓库建立连接详细过程 建立远程仓库 首先在github/gitee上创建自己的一个仓库,并将自己的路径复制下来,如下图. 建立本地仓库 本地新建文件夹存储工程文件,并且初始化仓库. 打开g ...
- git连接远程仓库以及常用命令
git连接远程仓库以及常用命令 git 连接远程仓库 git ssh key配置 本地配置 git配置 git连接远程仓库 关联远程仓库(将本地仓库推送到新的远程仓库) git常用命令(包括clone ...
最新文章
- curlopt_ssl_verifypeer后https还是验证不过_验证码识别竞赛解决方案(97%+一等奖)
- mac navicat premium 使用技巧
- post请求需要加密吗_Python接口自动化Requets之http请求(2)
- Java更新XML的四种常用方法简介
- node 测试生成模拟用户数据
- mysql binlog查看_MySQL--17 配置binlog-server 及中间件
- python list index方法,Python List.index()方法
- POJ 2115 C Looooops (扩展欧几里德解同余方程 Ax = B(mod C) )
- 04.Android之动画问题
- 什么样的流_量最容易变现?
- 关于ASP.Net页面上用户控件相互调用的方法 .
- java 获取周日期_java 获得本周一到周五的日期
- matlab调整文字方向,python 旋转文字方向_如何通过Python 在绘图中旋转文字?
- 计算机中year函数怎么使用,excel2010中YEAR函数的使用方法
- 计算机二级选择题需要刷吗,“我明天就要考计算机二级了”
- 尚硅谷的Netty介绍(一)
- 2020秋招腾讯群面场景题:给莫高窟设计一款互联网+产品
- Apache漏洞汇总:
- 分享ps颜色偏黄照片的修正原理和思路
- 学习NLP的第9天——基于HanLP实现的拼音转换
热门文章
- pyqtsignal()作用
- pandas.errors.ParserError: Error tokenizing data. C error: EOF inside string starting at line xxx
- java 删除n天前的文件_linux自动删除n天前备份
- java c 网络_编程中Java与C/C++,Internet区别
- python获取昨天日期_python 获取今天、昨天、明天的时间时间戳
- kubernetes kubeadm init kube-apiserver.yaml already exists
- 微信小程序云开发教程-云函数操作数据库-修改、删除
- 微信小程序云开发教程-微信小程序的API入门-API的类型和语法结构
- html文本绘制,HTML5绘制实心的文本
- matlab重叠图像块拼接,在matlab中拼接图像时如何正确混合?