zoukankan      html  css  js  c++  java
  • 6.25-Git 技巧

    TOC

    致谢

    xqs83
    git stash

    前言

    • 自己是git新手,在本地没有分支的时候不知道怎么拉取(从别的电脑push的)远程分支,完全没办法,只好删除整个文件夹重新clone,后来到网上好好学了学,总算知道了。
    • 这里重点介绍一下本地没有该分支,需要到远程拉取该分支的方法

    本地没有的时候拉取远程分支

    错误做法

    git branch link-rosforlv
    git checkout link-rosforlv
    git pull origin link-rosforlv
    • 因为,这样建立的branch是以master为基础建立的,再pull下来的话,会和master的内容进行合并,有可能会发生冲突

    正确用法

    • git branch -a查看包括远程分支在内的所有分支:
    • 使用checkout命令来把远程分支取到本地,并自动建立tracking
    git checkout -b link-rosforlv origin/link-rosforlv
    • 或者使用-t参数,它默认会在本地建立一个和远程分支名字一样的分支
    git checkout -t origin/link-rosforlv
    • 也可以使用fetch来做:
      git fetch origin link-rosforlv:link-rosforlv

      不过通过fetch命令来建立的本地分支不是一个track branch,而且成功后不会自动切换到该分支上

    结语

    • 学完之后才发现有这么多种方法可以做到这些,瞬觉自己才疏学浅,惭愧惭愧。

    误在master上做开发

    • git stash 可以暂时将当前修改压入git stack栈中,在checkout 到其他分支后再从栈中压出来
    # on master
    git stash
    git branch dev
    git checkout dev
    git stash apply
    # 注意:2,3两步可以合为git checkout -b dev

    git submodule

    合并一个分支的特定commits

    合并一个分支的一个重要commit

    • 比如,feature 分支上的commit 62ecb3 非常重要,它含有一个bug的修改,或其他人想访问的内容。无论什么原因,你现在只需要将62ecb3 合并到master,而不合并feature上的其他commits,所以我们用git cherry-pick命令来做:
    git checkout master
    git cherry-pick 62ecb3

    commit提交错误

    提交之后发现还有文件忘了提交

    git commit -m 'initial commit'
    git add forgotten_file
    git commit --amend # 这个命令会将暂存区中的文件提交

    其他错误

    detached HEAD问题

    • 使用VSCode时候,提交时选择了origin/global_planner而不是global_plannner,结果checkout 过去发现自己不在一个branch里面,而是在某一个commit里面
    • 问题是,我其实是想生成一个新的branch,并且保存这些更改
    git checkout global_planner # 执行完毕后仍然在master分支
    git checkout otigin/global_planner # 执行完后来到了一个commit,而不是一个branch,此时就是detached HEAD状态
    git checkout -b temp # 将此commit生成一个branch
    # 之后就可以merge了
    git checkout master 
    git merge temp

    git large file support

    remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com

    解决办法

    #下载git large file 插件
    # 到库里面
    git lfs install
    
  • 相关阅读:
    Android压缩图片到100K以下并保持不失真的高效方法
    Android 动画学习笔记
    JAVA jdbc连接Mysql
    android 在myeclipse中查看源码
    Intent用法总结
    Android中加载数据库到data/data下的当前包中
    Android Paint类介绍
    经典常用SQL语句大全
    android 语音识别技术
    Insert multi user or more than one user in SharePoint list Person or Group field
  • 原文地址:https://www.cnblogs.com/lizhensheng/p/11117216.html
Copyright © 2011-2022 走看看