Bug分支:

  • 当在一个分支上工作的时候;突然到其它分支修复bug,当前分支工作还没到要提交的程度;这时候可以使用git stash来将工作分支暂时存储起来;
  • 用git stash list查看stash的列表
  • 恢复:
    • 一是用git stash apply恢复,但是恢复后,stash内容并不删除,需要用git stash drop来删除;
    • 用git stash pop,恢复的同时把stash内容也删了
    • 多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash

标签管理

  • 发布一个版本时,通常先在版本库中打一个标签,以后就能取出那个时刻的历史版本;所以,标签也是版本库的一个快照。
  • 标签其实就是指向某个commit的指针(跟分支很像,但是分支可以移动,标签不能移动)。

创建标签:git tag <name>

  • 可以将标签打到历史提交上:`git tag commit_id
  • 查看标签:git tag
  • 查看标签信息:git show <tagname>
  • 注意,标签不是按时间顺序列出,而是按字母排序的
  • 默认标签是打在最新提交的commit上的; 用git show就可以显示默认标签信息
  • 还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:

删除标签:git tag -d <tagname>

  • 创建的标签默认不会随commit推送到远程;
  • 推送标签:
    • 推送某个标签到远程: git push origin <tagname>
    • 一次性推送全部尚未推送到远程的本地标签:git push origin --tags
  • 删除远程标签:
    • 先从本地删除:git tag -d
    • 然后,从远程删除: git push origin :refs/tags/

配置: git config

  • 安装时的配置:
//注意用了`--global`参数表示这台机器上所有的Git仓库都会使用这个配置;当然也可以对某个仓库指定不同的用户名和Email地址。
git config --global user.name "Your Name"
git config --global user.email "email@example.com" //删除
git config --unset --global user.name;
git config --unset --global user.email;
  • 连接远程仓库配置

    • 在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件;
    • 如果没有,创建SSH Key:`$ ssh-keygen -t rsa -C "youremail@example.com"`,然后.ssh目录中会生成id_rsaid_rsa.pub,后者用于其它地方的配置
    • mac: mmssh-keygen -p
  • git自定义配置:
    • 让Git显示颜色: $ git config --global color.ui true
  • .gitignore文件:
    • 忽略操作系统自动生成的文件
    • 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库;
    • 忽略自己的带有敏感信息的配置文件,比如存放口令的配置文件。
  • 配置别名:
    • git config --global alias.st status就将git status缩简为git st
    • git config --global alias.unstage 'reset HEAD' ; 即 git unstage <file>->git reset HEAD <file>
    • git config --global alias.last 'log -1'; 用git last就能显示最近一次的提交
  • 配置Git的时候,加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。

    * 每个仓库的Git配置文件都放在.git/config文件的[alias]后面;也可以在这里配置
[branch "master"]
remote = origin
merge = refs/heads/master
[alias]
last = log -1
  • 而当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中:

可能git push失败的解决方法

Github seems only supports ssh way to read&write the repo, although https way also displayed 'Read&Write'.

So you need to change your repo config on your PC to ssh way:

1.edit .git/config file under your repo directory
2. find url=entry under section [remote "origin"]
3. change it from url=https://MichaelDrogalis@github.com/derekerdmann/lunch_call.git to url=ssh://git@github.com/derekerdmann/lunch_call.git. that is, change all the texts before @ symbol to ssh://git
4. Save config file and quit. now you could use git push origin master to sync your repo on GitHub

切远程分支

  • git stash: 缓存当前修改;
  • git fetch origin [originname]: 获取远程:
  • git checkout [originame]: 切换;
  • git stash pop: 推出缓存;

修改git的编辑器

which vim 

#retrun <path>

git config --global core.editor <path>

Git-rebase 误操作的恢复

git学习 分支特殊处理和配置03的更多相关文章

  1. 139.00.005 Git学习-分支管理

    @(139 - Environment Settings | 环境配置) 一.Why? 分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交, ...

  2. Git学习 -- 分支管理

    创建新分支,并切换到该分支 git checkout -b dev 这一句相当于以下两句: git branch dev 创建 git checkout dev 切换 查看当前分支 git branc ...

  3. git学习——分支

    分支 创建分支:git branch 如:git branch testing Git通过HEAD指针知道用户是在哪一个分支上工作. 切换分支用git checkout命令,注意:可以用git sta ...

  4. Git学习笔记---协作的一般流程

    一般的操作流程 1.pull 王小坤与另一个同事张大炮一起开发一个项目,张大炮昨天修改了数据库读写的api,优化了执行速度,并把read()函数改名成了Read(),下午下班之前把这些代码push到服 ...

  5. git 学习笔记 —— 获取远端分支并修改后提交至远端仓库

    笔者最近进行开发过程中,所有参与者的代码需要通过 git 上传到远端仓库中,不同的模块对应不同的 git 分支,不同模块的数据需要从远端仓库中获取.这里记录下笔者从远端仓库中获取分支数据,进行修改,最 ...

  6. git学习之branch分支

    作为新手,站在我的角度肤浅的来理解,分支就是相当于开辟了一个新的临时工作区,在这个工作区进行文件代码改动,然后在合并到master主工作区,这样能保证主工作区的安全性和稳定性,对于团队协作尤为重要. ...

  7. Git学习之路(6)- 分支操作

    ▓▓▓▓▓▓ 大致介绍 几乎所有的版本控制系统都会支持分支操作,分支可以让你在不影响开发主线的情况下,随心所欲的实现你的想法,但是在大多数的版本控制系统中,这个过程的效率是非常低的.就比如我在没有学习 ...

  8. 【学习总结】Git学习-参考廖雪峰老师教程六-分支管理

    学习总结之Git学习-总 目录: 一.Git简介 二.安装Git 三.创建版本库 四.时光机穿梭 五.远程仓库 六.分支管理 七.标签管理 八.使用GitHub 九.使用码云 十.自定义Git 期末总 ...

  9. Git学习系列之Windows上安装Git之后的一些配置(图文详解)

    不多说,直接上干货! 前面博客 Git学习系列之Windows上安装Git详细步骤(图文详解) 第一次使用Git时,需要对Git进行一些配置,以方便使用Git. 不过,这种配置工作只需要进行一次便可, ...

随机推荐

  1. Cannot change version of project facet Dynamic Web Module to 3.0

    背景描述: 最近在开发项目时,老是报错说:Project is not Dynamic Web Module 3.0.右击项目选择属性进行修改时出现以下错误: 这让我很是恼火,后来终于找到了万能的解决 ...

  2. Ubuntu离线更新flashplugin

    当网络太烂时,Ubuntu更新可能会卡在下载flashplugin上面,继而出错.在U论坛上找到一篇帖子,寻到成功安装flashplugin-installer的方法: 1.首先使用sudo apt- ...

  3. 6个原因说服你选择PostgreSQL9.6

    PostgreSQL9.6在前些日子发布了, 社区为该版本的重大更新付诸良多, 发布日志一如既往的长,我挑选了6个重要的更新, 这些或许能够帮助你更好的使用PostgreSQL. 并行: 并行应该是这 ...

  4. FragmentPagerAdapter实现刷新

    在fragmentpageadapter的instantiateItem方法里,他会先去FragmentManager里面去查找有没有相关的fragment如果有就直接使用如果没有才会触发fragme ...

  5. sdut 2125串结构练习--字符串匹配【两种KMP算法】

    串结构练习——字符串匹配 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目链接:http://acm.sdut.edu.cn/sduto ...

  6. 简简单单的一个PYTHON多进程实现

    因为在作自动化部署时,希望能将多个服务分不同的批次进行发布, 同一批次的机器同时发布, 如果前面一批次出错误,后面就需要停止整 个流程. 那可以简单的用threading来实现了. thread_li ...

  7. Java程序员要求具备的10项技能

    1.语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正. 2.命令:必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟悉:a ...

  8. 【数据结构】建立和平衡AVL二叉树

    一步一步写平衡二叉树(AVL树) 原文地址:http://www.cppblog.com/cxiaojia/archive/2012/08/20/187776.html 我添加了一些内容,以充实整个算 ...

  9. C# 将文件转化成byte[]数组

    /// <summary> /// 将文件转换成byte[] 数组 /// </summary> /// <param name="fileUrl"& ...

  10. PowerDesigner生成sql及HTML格式数据库文档

    一.PowerDesigner生成sql问题 生成sql的方法是 Database -->Generate Database (Ctrl + G ) 但是提示 Could not load VB ...