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后悔药

  1. 工作区的代码想撤销: git checkout -- <file>
  2. add到暂存区的代码想撤销: git reset HEADgit unstage
  3. 提交到本地仓库的代码想撤销: git reset --hard <版本号>
  4. 把刚刚的提交撤回到暂存区: git reset --soft HEAD~1
  5. revert某此修改(会新增一条commit执行反向修改而已): git revert $id
  6. 回滚后反悔怎么办?: git reflog 记录了我们的每一次命令( commit、merge 等信息), 根据这命令来查出我们的历史 commit id,然后 git reset即可
  7. 另外,git rebase -i也可以撤销之前的提交。 edit修改,drop丢弃,squash合并压缩

git rebase --skip_可冒充git大神的git tips相关推荐

  1. git rebase VS git merge? 更优雅的 git 合并方式值得拥有

    写在前面 如果你不能很好的应用 Git,那么这里为你提供一个非常棒的 Git 在线练习工具 Git Online ,你可以更直观的看到你所使用的命令会产生什么效果 另外,你在使用 Git 合并分支时只 ...

  2. 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% ...

  3. git rebase(变基)—— Git 学习笔记 19

    git rebase(变基) 认识 git rebase 假设你现在基于远程分支"origin",创建一个叫"mywork"的分支. $ git checkou ...

  4. git rebase 命令 常用_git命令之 git rebase 常用

    git rebase 命令的功能很强大, 在<git 权威指南>一书里,改变提交(commit)的顺序,书中教了一种很复杂的方法,运用了git reset ... git cherry-p ...

  5. [转]git merge 与 git rebase的区别

    git log --graph可以查看分支合并图 1>他们都是用于从一个分支获取并且合并到当前分支 2>一个场景:在feature分支进行新特性的开发,与此同时,master分支也有新的提 ...

  6. [Git] Git整理(四) git rebase 的使用

    概述 在之前总结分支相关内容时说道,合并两个分支的提交可以使用git merge,然而除了这种方式之外,还有一种方式就是使用git rebase,这两种方式的最终结果都相同,但是合并历史却不同:git ...

  7. 浅谈git rebase命令 -- git修改历史提交信息

    浅谈git rebase命令 如果你只想修改git log命令打印到终端上的最后一个提交信息,那么使用git commit --amend命令直接修改就好. 如果你还想合并最近的某几个提交为一个提交, ...

  8. git rebase -i_git rebase -i改变生活的魔力

    git rebase -i 软件开发混乱. 如此多的错误转弯,拼写错误得到纠正,快速的hack和错误纠正可以在以后发现的过程中发现一次又一次的错误. 使用版本控制,您可以清晰地记录在创建"完 ...

  9. [Git Rebase] Git Rebase 合并提交(命令操作 SourceTree 操作)

    前言 在开发过程中, 我们有的时候会有代码提交失误的情况. 在前一章, 我们介绍了git push - - force命令. 本章我们介绍git rebase命令及 SourceTree内的相关操作. ...

最新文章

  1. 利用尾递归减少栈空间的消耗
  2. windows远程登录 ubuntu Linux 系统及互连共享桌面
  3. 韩顺平php视频笔记46 函数入门
  4. 请允许我用2019年11种主流编程语言,祝祖国70华诞快乐!
  5. 计算机知识技能答案,学生计算机知识技能竞参考题范围及答案.doc
  6. 软件中Undo(撤回)和Redo(重做)的实现
  7. Ubuntu 11.10为何值得我们期待?
  8. SAP-MM MRP类型详解
  9. 微软云计算-私有云概述
  10. nginx打开网页报错
  11. 采用ATSC标准、欧洲DVB-T和日本ISDB-T标准的国家
  12. 百度指数 数据分析(介绍)
  13. 简明 s3cmd 安装与使用手册
  14. 混乱的代码是技术债吗
  15. obs多推流地址_OBS下载、安装、使用(腾讯)推流直播教程
  16. window7调用计算机,教你查看win7系统电脑使用记录的具体方法
  17. 戴尔OptiPlex 7060 SSD+HHD+win10和ubuntu双系统安装
  18. JavaPoet动态生成代码,高薪程序员必会
  19. jsp页面链接下载文件
  20. 用户之声 | 从江苏新大陆项目看GBase国产数据库

热门文章

  1. Leedcode8-reorder-list
  2. Django 新建account应用
  3. 【文章】工作之余,放松心情
  4. 详述白盒测试的逻辑覆盖的路径覆盖及其优缺点
  5. MacOS下安装BeautifulSoup库及使用
  6. 控制台文字对战游戏 初始版
  7. 支付宝 报错 rsa_private read error : private key is NULL解决方法
  8. java8--IO(java疯狂讲义3复习笔记)
  9. 《Ext JS高级程序设计》节选:在CRUD操作中restful的设置以及使用Ext.Direct的问题...
  10. 电文的编码和译码c语言实现,电文的编码及译码.doc