zoukankan      html  css  js  c++  java
  • git学习 分支特殊处理和配置03

    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 误操作的恢复

  • 相关阅读:
    springboot~使用docker构建gradle项目
    CH BR8(小学生在上课-逆元和互质数一一对应关系)
    UNIX环境高级编程第二版代码笔记
    【Linux学习笔记】用nc实现两台主机间的文件传输(不需要输密码)
    hdu 1159
    轻量级的原型设计工具-Axure RP
    在Ubuntu 12.10 上安装部署Openstack
    [Android 中级]Voip之CSipSimple类库的编绎
    OpenStack云计算快速入门之一:OpenStack及其构成简介
    OpenStack云计算快速入门之二:OpenStack安装与配置
  • 原文地址:https://www.cnblogs.com/jinkspeng/p/4386615.html
Copyright © 2011-2022 走看看