git rebase --skip_可冒充git大神的git tips
rebase
算冒充大神的必备技能了,移花接木之术,可以任意整理分支树。嫌弃分支树枝枝蔓蔓,一定要学会此招。
git rebase <branch or commit> # 将修改以指定的分支或修改重新应用一下
git rebase -i <branch or commit> # 同上,交互式,可在交互界面里对需要的commits进行修改、压缩、丢弃以及调整顺序等
git pull <remote> <branch> --rebase # 拉取远程代码时使用rebase替代merge操作,本地若有远程没有的修改,则被本地修改rebase到远程代码上。
导出纯代码和浅克隆
很多场景,我们不需要完整的代码仓库,不需要commit历史,我就要最新的或某分支某tag的纯代码而已。
## archive命令就是将纯代码打包(默认tar,可以另指定zip等)
git archive master | tar -x -C /somewhere/else # 等于将代码导出到另一个地方
git archive master | bzip2 >source-tree.tar.bz2 # 代码打包后再压缩下
git archive --format=zip --output /full/path/to/zipfile.zip master # 以zip压缩包导出## 克隆tag/branch时使用浅克隆
git clone --branch tag-v0.1 --depth 1 git@git.home.nas:gitrepo/hellogit.git
# --depth 1 只取回一次提交记录,同时也生效--single-branch# 将浅克隆的shallow repo转换为完整repo仓库
git fetch --unshallow origin master
submodule子仓库
对,我们git也可以将别的仓库引用为本仓库的子仓库。比如要创建一个封装类型的工程时,比如直接用git管理golang的vendor模块时,等等。
# 全新克隆时直接将子仓库也全部克隆来
git clone --recurse-submodules https://github.com/wadefelix/YourProjectName# 若已有项目代码仓库,但其中尚未将子仓取下来时,用下面的
git submodule init
git submodule update
git代理
代码需要穿墙打洞才能取下来或者加速时。
# 设置全局使用git代理,也可以是其它端口啊(不仅限定用443)
git config --global https.proxy https://git-proxy-server:443
git代理配置其实也是在文件里的~/.gitconfig,直接编辑这个文件也可以,它的内容:
[https]proxy = https://git-proxy-server:443
那怎么搭建代理服务器呢?好咧,常用的nginx就可以,配置文件
server {listen 80;listen 443;resolver 192.168.0.1;proxy_connect;location /{proxy_pass https://$http_host$request_uri;proxy_set_header Host $host;}}
管理登录信息
可以设置保存用户名密码的,命令
git config credential.helper store
设置完毕后,~/.gitconfig配置文件会有:
[credential]helper = store
保存用户名和密码后~/.git-credentials
文件内容:
https://username:password@git-server
对,明文的,请斟酌。
分支删除
分支用多了,这个算是小儿科了,简列几条:
git fetch -p # 跟随远程删除分支的操作删除本地分支
git fetch -P # 跟随远程删除分支的操作删除本地tag
# 用branch和push分别删除本地分支和远程分支的操作你肯定会,对不对?
git branch --delete <branch>
git push origin --delete <branch>
git后悔药
- 工作区的代码想撤销:
git checkout -- <file>
- add到暂存区的代码想撤销:
git reset HEAD
或git unstage
- 提交到本地仓库的代码想撤销:
git reset --hard <版本号>
- 把刚刚的提交撤回到暂存区:
git reset --soft HEAD~1
- revert某此修改(会新增一条commit执行反向修改而已):
git revert $id
- 回滚后反悔怎么办?:
git reflog
记录了我们的每一次命令( commit、merge 等信息), 根据这命令来查出我们的历史 commit id,然后git reset
即可 - 另外,
git rebase -i
也可以撤销之前的提交。edit
修改,drop
丢弃,squash
合并压缩
git rebase --skip_可冒充git大神的git tips相关推荐
- git rebase VS git merge? 更优雅的 git 合并方式值得拥有
写在前面 如果你不能很好的应用 Git,那么这里为你提供一个非常棒的 Git 在线练习工具 Git Online ,你可以更直观的看到你所使用的命令会产生什么效果 另外,你在使用 Git 合并分支时只 ...
- git rebase和git merge的用法
http://softlab.sdut.edu.cn/blog/subaochen/2016/01/git-rebase%E5%92%8Cgit-merge%E7%9A%84%E7%94%A8%E6% ...
- git rebase(变基)—— Git 学习笔记 19
git rebase(变基) 认识 git rebase 假设你现在基于远程分支"origin",创建一个叫"mywork"的分支. $ git checkou ...
- git rebase 命令 常用_git命令之 git rebase 常用
git rebase 命令的功能很强大, 在<git 权威指南>一书里,改变提交(commit)的顺序,书中教了一种很复杂的方法,运用了git reset ... git cherry-p ...
- [转]git merge 与 git rebase的区别
git log --graph可以查看分支合并图 1>他们都是用于从一个分支获取并且合并到当前分支 2>一个场景:在feature分支进行新特性的开发,与此同时,master分支也有新的提 ...
- [Git] Git整理(四) git rebase 的使用
概述 在之前总结分支相关内容时说道,合并两个分支的提交可以使用git merge,然而除了这种方式之外,还有一种方式就是使用git rebase,这两种方式的最终结果都相同,但是合并历史却不同:git ...
- 浅谈git rebase命令 -- git修改历史提交信息
浅谈git rebase命令 如果你只想修改git log命令打印到终端上的最后一个提交信息,那么使用git commit --amend命令直接修改就好. 如果你还想合并最近的某几个提交为一个提交, ...
- git rebase -i_git rebase -i改变生活的魔力
git rebase -i 软件开发混乱. 如此多的错误转弯,拼写错误得到纠正,快速的hack和错误纠正可以在以后发现的过程中发现一次又一次的错误. 使用版本控制,您可以清晰地记录在创建"完 ...
- [Git Rebase] Git Rebase 合并提交(命令操作 SourceTree 操作)
前言 在开发过程中, 我们有的时候会有代码提交失误的情况. 在前一章, 我们介绍了git push - - force命令. 本章我们介绍git rebase命令及 SourceTree内的相关操作. ...
最新文章
- 利用尾递归减少栈空间的消耗
- windows远程登录 ubuntu Linux 系统及互连共享桌面
- 韩顺平php视频笔记46 函数入门
- 请允许我用2019年11种主流编程语言,祝祖国70华诞快乐!
- 计算机知识技能答案,学生计算机知识技能竞参考题范围及答案.doc
- 软件中Undo(撤回)和Redo(重做)的实现
- Ubuntu 11.10为何值得我们期待?
- SAP-MM MRP类型详解
- 微软云计算-私有云概述
- nginx打开网页报错
- 采用ATSC标准、欧洲DVB-T和日本ISDB-T标准的国家
- 百度指数 数据分析(介绍)
- 简明 s3cmd 安装与使用手册
- 混乱的代码是技术债吗
- obs多推流地址_OBS下载、安装、使用(腾讯)推流直播教程
- window7调用计算机,教你查看win7系统电脑使用记录的具体方法
- 戴尔OptiPlex 7060 SSD+HHD+win10和ubuntu双系统安装
- JavaPoet动态生成代码,高薪程序员必会
- jsp页面链接下载文件
- 用户之声 | 从江苏新大陆项目看GBase国产数据库
热门文章
- Leedcode8-reorder-list
- Django 新建account应用
- 【文章】工作之余,放松心情
- 详述白盒测试的逻辑覆盖的路径覆盖及其优缺点
- MacOS下安装BeautifulSoup库及使用
- 控制台文字对战游戏 初始版
- 支付宝 报错 rsa_private read error : private key is NULL解决方法
- java8--IO(java疯狂讲义3复习笔记)
- 《Ext JS高级程序设计》节选:在CRUD操作中restful的设置以及使用Ext.Direct的问题...
- 电文的编码和译码c语言实现,电文的编码及译码.doc