理论篇 GIT使用笔记

 

  GIT学习指导的游戏:http://pcottle.github.io/learnGitBranching/?NODEMO

 

  git fetch: 下载远端所有分支的本地没有的提交列表,并更新local分支origin/master

  1. 从remote下载local resp未包含的提交对象

  2. 更新local resp的远端分支点(如: origin/master)

  git fetch origin remoteBranch:localBranch  // 下载远端的分支到本地分支

  git fetch orign :localNewBranch       // 不指定Source时创建本地新分支 

 

  合并local resp的两个分支,有以下方式:

  1. git cherry-pick o/master

  2. git rebase o/master

  3. git merge o/master

 

  git pull: 就是git fetch与git merge origin/master的组合;

  1. 下载并更新local origin/master;

  2. 将local分支origin/master合并到local的当前分支中;

  注:如果要替换pull默认的merge操作,可以使用:git pull --rebase(当然rebase是从当前分支到origin/master分支中,因为remote提交的可能会很多;如果本地很多,remote少,可以反过来)

 

  git push: 提交local的当前分支 到remote的该分支中,并更新local的origin/master分支;

  1. 提交local的当前分支 到remote的该分支中

  2. 更新local的origin/master分支

 

  A先checkout remote的mater分支到local的master分支,开发new feature;B此后多次提交到remote的master分支;A要提交之前,必先下载合并代码,确保代码工作无误后,才提交:

  1. git fetch 更新local的origin/master分支;

  2. git rebase origin/master 以origin/maste为主分支,衍合当前分支master,此时master比origin/master多前进了feature提交;测试功能或者再提交;

  3. git push 提交到remote,并更新local的origin/master分支;

  注:如果将步骤2的rebase替换为merge,那么在步骤3的push中,remote也会做merge操作;

 

   关于让某个分支HEAD快速前进:

  master分支的head在C1,feature1分支的head在C2,C1 --> C2,想要将master的head移到C2上,可以:git rebase feature1 master(以feature1分支为主干,衍合其它分支)

 

  git rebase feature1: 都是以feature1分支为主分支,衍合当前分支master;

  git rebase feature1 master :都是以feature1分支为主分支,衍合master分支;

  1. 按提交顺序:如果master在feature1的上面,则将master的HEAD前移,即:快速前进;

  2. 按提交顺序:如果master与feature1并列,则复制master的更新,HEAD指向最新提交;

  3. 按提交顺序:如果master在feature1的下面,则提示:分支已经是最新的!

 

  跟踪远端分支:

  git checkout -b newBranchName o/master

  git branch -u o/master existedBranchName    // 重新设置upstream. (-u)

 

  将本地master分支的提交列表,推送到origin仓库的master分支中;

  git push origin master

  将本地分支或者HEAD指向的提交,推送到origin仓库的已存在分支或者新分支中;

  git push origin localBranch^:remoteNewBranch

  不指定source时,删除分支localBranch

  git push origin :localBranch

 

  remoteBranch下载到localBranch中,再在当前正在工作的branch中,merge localBranch。

  git pull origin remoteBranch:localBranch

 

  <<Pro Git>>学习笔记:

  本地工作目录的三种状态:

  已提交 commited --> 已修改 modified --> 已暂存 staged

命令:
git config

// 添加别名
git config --global alias.<short> <full-name>


git clone                  // 从远程仓库下载到本地目录

 

git status                  // 工作目录中各文件的状态:“已修改”、“已暂存”

状态变更:
git add <file>                 // 放到暂存区,处于“已暂存”

git commit -m "commitMessage"      // 提交文件,状态为:"已提交"

git commit -a -m              // 跳过暂存,直接提交

 

git rm <file>                // 从暂存区移除文件
git rm <file> -f               // 永久移除该文件,待提交
git rm <file> --cache            // 保存该文件,不提交
git reset head <file>            // 取消"已暂存",恢复到工作目录

git commit --amend -m msg        // 修改最后一次提交:将"暂存区"覆盖上次的提交,弥补上次的部分缺失
git checkout <file>             // 取消"已修改",恢复到上次最新的代码


远程仓库:
git remote -v                // 查看远程仓库
git remote add <name> <url>       // 添加远程仓库

git remote show <remote-repository-name>  // 查看某个远程仓库的详细信息

git remote rename <old-name> <new-name>  // 更改远程仓库的名字


git fetch <remote-name>          // 从远程仓库抓取数据到本地

// 本地推送到远程仓库的某个分支上
git push <remote-repository-name> <remote-branch-name>

// 将所有本地标签上传过去
git push <> <> --tags


分支管理:

git branch -a            // 查看本地所有分支

git branch <branch-name>      // 创建分支

git branch -d <branch>       // 删除分支(-D 强制删除)

 

git checkout <branch>       // 切换分支(切换工作目录到某一个分支)

git checkout -b <branch>      // 创建分支,并切换到该分支

git checkout -b <branch> <remote-resp>/<remote-branch>

 

git merge <branch>        // 将branch合并到当前分支中;

git push <remote-resp> <branch> // 将分支推送到远程仓库的该分支下

git push <remote-resp> <branch>:<remote-branch>  // 将分支推送到远程仓库的某branch下

git push <remote-resp> :<remote-branch>       // 删除远程仓库下的branch

 

git rebase <branch>      // 将当前分支,衍合到branch中

 

转载于:https://www.cnblogs.com/diydyq/p/4103007.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492732.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cuda学习

CUDA 安装测试部分 https://blog.csdn.net/sunmc1204953974/article/details/51000970 CUDA的HelloWorld程序编写 https://www.cnblogs.com/neopenx/p/4643705.html 对多线程并行处理的解释&#xff1a;https://blog.csdn.net/sunmc1204953974/article/details/51025801 以下的…

英特尔第七任CEO敲定 斯旺为何受到董事会青睐?

来源&#xff1a;网易科技2019年1月最后一天&#xff0c;芯片巨头英特尔公司(Intel)宣布任命临时首席执行官罗伯特斯旺(Robert Swan)为正式CEO&#xff0c;从而结束了长达数月的猎头工作。此前&#xff0c;英特尔前任CEO布莱恩柯再奇(Brian Krzanich)因与员工存在“暧昧关系”而…

sudo使用

sudo使用 /etc/sudo.conf /etc/sudoers /etc/sudoers.d/ /etc/sudo-ldap.conf /etc/sudoer sudo安全策略配置文件 Defaults requiretty Defaults !visiblepw Defaults always_set_home Defaults env_reset Defaults env_keep "COLORS DISPLAY HOSTNAME HI…

图灵奖得主长文报告:是什么开启了计算机架构的新黄金十年?

来源&#xff1a;AI科技评论摘要&#xff1a;2017 年图灵奖的两位得主 John L. Hennessy 和 David A. Patterson 就是这个新浪潮的见证者和引领者。近几年来&#xff0c;不论是普通消费者还是科研人员们都可以感受到两种浪潮&#xff0c;一种是CPU速度的提升越来越不显著了&…

ubuntu安装wine之后进不了系统

以前曾经装过一次wine&#xff0c;安装的时候没碰到什么问题&#xff0c;但卸载的时候却出问题了&#xff0c;把我nouvean显卡给删除了。 自然&#xff0c;我下一次启动的时候就进不了桌面了。所以我得重装一次&#xff0c;那一次重装的是整个系统&#xff01; 今天突然觉得evi…

5G到底有哪些能力

来源&#xff1a;工信头条作者&#xff1a;华为5G首席科学家 童文摘要&#xff1a;华为5G首席科学家告诉你5G到底有哪些能力&#xff01;2019年是5G产业进入全面商用的关键一年&#xff0c;全球5G网络的部署已经启动。2018年6月&#xff0c;5G独立组网标准冻结&#xff0c;5G完…

口琴简易吹奏法

摘自上海口琴说明书。 口琴体积小巧&#xff0c;携带方便&#xff0c;有"带着走的音乐"、"口袋里的钢琴"之称。 口琴是一种簧舌乐器&#xff0c;用嘴吹吸发音。 复音口琴每孔上下两个是同音&#xff0c;吹奏时两格内的簧片同时发音。 口琴的 "1、3…

商业航天:通往太空旅程的新门票

来源&#xff1a;资本实验室自1969年美国实现人类首次登月之后&#xff0c;很长一段时间里&#xff0c;人类对月球的探索计划因各种原因变得沉寂。近年来&#xff0c;随着各国航天科技的持续发展&#xff0c;人类正在启动对月球的全新探索旅程。今年1月3日&#xff0c;我国“嫦…

win32程序调试

win32程序调试函数&#xff1a;https://blog.csdn.net/github_35160620/article/details/51864872 显示在编译器调试时的输出栏&#xff1b; debugView的使用&#xff0c;注意是程序单独运行时的调试工具&#xff0c;不是在VS编译器下&#xff1a;https://blog.csdn.net/bearc…

关于用css实现的文字超出部分显示省略号

文字超出部分显示省略号还是比较常用的一个效果,最近看到网上的一些方法亲自实践了一下,发现有些以前一些浏览器不能用的属性现在可以用了&#xff0c;于是研究了一番&#xff0c;现总结如下&#xff1a; 我们先来看下HTML代码&#xff1a; <div><p><span>用…

AIoT的生死局:未来的AIoT很赚钱,但目前的AI+IoT很花钱

来源&#xff1a;物联网智库整理摘要&#xff1a;AIoT目前仍处于发展的起步阶段&#xff0c;只能作为一种美好的愿想&#xff0c;无论从AI还是IoT本身来看&#xff0c;仍然存在着许许多多的问题。如同互联网等新兴技术发展初期一样&#xff0c;AIoT也多少存在追捧与泡沫。尽管从…

指针数组和数组指针

int p[4] 与 int (p[4]) 等价 &#xff3b;&#xff3d;优先级比高&#xff0c;因此p先和&#xff3b;&#xff3d;结合&#xff0c;表明p是一个数组&#xff0c;且含有4个元素&#xff0c;然后再和结合&#xff0c;表明数组元素为指针&#xff0c;最后指明指针指向的是int类型…

链表的经典问题

链表的经典问题 如何判断两个单链表是否相交&#xff0c;如果相交&#xff0c;找出交点&#xff08;两个链表都不存在环&#xff09; 如果两个单链表相交&#xff0c;那应该呈“Y”字形&#xff0c;也就是从交点以后的部分是两个链表的公共节点。 所以&#xff0c;判断是否相交…

亚马逊、谷歌和微软寸土必争的新战场

作者&#xff1a; Caroline Donnelly 编译&#xff1a;机器之能 张玺摘要&#xff1a;当亚马逊、谷歌与微软都表示要争取所有可能的垂直市场客户时&#xff0c;云服务三巨头在零售市场的竞争变得愈发有趣。云技术在零售市场应用方面表现抢眼&#xff0c;但是竞争问题正在影响客…

duilib环境配置以及简单入门介绍

内容全部为转载&#xff1a; VS2013的编译&#xff0c;https://www.cnblogs.com/Alberl/p/3342030.html duilib框架介绍&#xff0c;以及VS2013配置&#xff0c;创建工程&#xff0c;调试代码部分&#xff1a; https://blog.csdn.net/lanuage/article/details/52040306 https:/…

Android开发之Java集合类性能分析

对于Android开发者来说深入了解Java的集合类很有必要主要是从Collection和Map接口衍生出来的&#xff0c;目前主要提供了List、Set和 Map这三大类的集合&#xff0c;今天就他们的子类在标准情况和多线程下的性能做简单的分析。 Collection接口主要有两种子类分别为List和Set&am…

2019年汽车行业深度投资研究

来源&#xff1a;中泰证券2018年预计我国汽车销售负增长&#xff0c;为30年来首次&#xff0c;批发数据自5月份开始逐步下降&#xff0c;尤其是9月之后,销售增速加速下滑,判断汽车市场弱势的原因和持续时间长短&#xff0c;是思考2019年汽车行业投资策略的前提。我们认为&#…

duilib消息事件产生和分发解释

参考博客&#xff1a;https://www.cnblogs.com/haomiao/p/5055413.html

有没有哪些数学猜想是验证到很大的数以后才发现是错的?

来源&#xff1a;孙天任算数学苑素数的分布密度为 ρ(x)~1/ln(x)&#xff0c;从而在 x 以内的素数个数——通常用 π(x) 表示——为&#xff1a; π(x) ~ Li(x) 其中 Li(x) ≡ ∫ 1/ln(x) dx 是对数积分函数 。这个结果有些读者可能也认出来了&#xff0c;它正是著名的素数定理…

JAVA动态代理(JDK和CGLIB)

JAVA的动态代理 代理模式 代理模式是常用的java设计模式&#xff0c;他的特征是代理类与委托类有同样的接口&#xff0c;代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类&#xff0c;以及事后处理消息等。代理类与委托类之间通常会存在关联关系&#xff0c;一…