error:src refspec master does not match any  将本地GIT版本库PUSH到一个GITHUB上一个空的版本库时出现错误,本地版本库为空, 空目录不能提交 (只进行了init, 没有add和commit)

git stash 缓存目前的文件    
git push origin master -f  强覆盖,不推荐使用
git push origin 本地分支:远程分支 提交本地分支的名字到远程分支上(如果远程分支的名字没有,那么就创建一个),如果本地分支留空不写,那么则会删除远程分支
git pull origin master 
git log    查看git提交日志,退出可按q命令
pwd   查看当前目录,print work directory
mkdir learngit   产生一个目录文件夹,叫做learngit
cat kmsh.xml 打开某个文件
git init  初始化当前目录
ls -ah      显示该目录所有的内容,包括隐藏的内容
git status   时刻掌握仓库当前状态
git diff     查看两次修改内容                      
git reset --hard HEAD  硬回退到当前版本,HEAD当前版本,上一个版本是HEAD^^,多次回退可以写成HEAD~100 就是100次
git reset --hard 3628164 硬回退到即可HEAD是一个指针,指向某个版本,有soft和mix,soft仅仅回退commit 记录
git reflog 来记录用户的每一次使用命令
git diff HEAD --readme.txt 可以查看工作区和版本库里面最新版本的区别                                   
git checkout -- readme.txt 把readme.txt文件在工作区的修改全部撤销,
       两种情况,一种是readme.txt自修改后还没有被放到暂存区,现在撤销修改就回到和版本库一模一样的状态;                 
               一种是readme.txt已经添加到暂存区,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
                    总之,就是让这个文件回到最近一次 git commit 或者 git add时的状态
git checkout origin/dev -b dev  检出一个新的分支,全新的分支,和远程分支上一样
git reset HEAD file 可以把暂存区的修改撤销掉(unstage),重新放回工作区;
git reset 命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
 
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
 
rm file 删除一个文件
git rm file 从版本库中删除某文件,需要继续git commit
git checkout -- test.txt  其实就是用版本库里的版本替换工作区的版本,无论工作区还是修改或删除,都可以一键还原。
git remote add origin git@github.com:michaelliao/learngit.git 关联远程库
git push -u origin master  第一次把本地的仓库推送到远程仓库,把本地的master分支和远程的master分支关联起来,以后推送或者拉取时就可以简化命令
 
ssh-keygen -t rsa  generate ssh key  click enter
 
git branch dev 创建分支dev
git checkout dev 切换到分支dev
git checkout -b dev 创建且切换到分支dev
 
git branch 查看目前的分支 
git merge dev 把dev分支上面的内容合并到当前分支上,一般这是默认的fast-forward,直接把master指向dev的当前提交
 当出现冲突,解决了之后,需要再次提交
 
git branch -d dev 在当前分支上面删除dev分支,而且dev分支被当前分支合并过了,如果没有合并那么会出错
git branch -D dev 强制删除dev分支
git show-ref 展示所有本地引用的分支
git branch -r 展示连接的远程分支
git checkout -b my origin/my  基于远程分支my创建并切换到本地分支my  (注意对于分支my,如果再创建分支的话,那么就不能进行pull,除非加上--track参数)
 
git rebase master 合并分支,考虑几种情况。从远程服务器origin 下面拉分支到master,多个人开发,于是就会出现不同的分支增长,这时候另外一个人修改了提交到了远程分支上面,当我也做好了修改后,准备提交,首先pull下来origin分支。然后可以采用merge或者rebase方法。如果采用merge,则会把我的分支历史给覆盖掉,也就是本来两个人一人都有两次提交,然后Merge了,最后也只有2个分支,可能还加上最后合并的这次分支。如果采用rebase,那么假设是在dev开发分支上面rebase master,那么就是把dev分支上面做的修改全部撤销并保存在.git文件里面,然后对master分支逐个提交之前撤销的commit记录,撤销几个就再次提交几个,考虑队列的数据结构,然后在rebase 后面的分支上面就多了4个分支,也就是我和另外一个小伙伴的分支都被记录了,这样显然比较好。图片情况,百度一下,你就知道。
 
git log --graph --pretty=oneline --abbrev-commit 用带参数的git log 也可以看到分支的合并情况,
通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
 
git merge --no-ff -m "merge with no-ff" dev 禁止用fast forward模式提交,所以加上-m 参数提交一个新的commit
合并后,我们用git log看看分支历史:
 
git stash 暂存当前工作目录
git stash list 查看暂存区有哪些工作目录
git stash pop 恢复暂存区内容,并把stash内容也删除  如git stash pop stash@{1}
git stash apply 恢复暂存区内容,但是不删除stash内容
git stash drop stash@{1} 删除stash中序号为1的内容
其中上面两个可以在最后加参数 如 stash@{0}
 
git remote 查看远程库的信息  当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin
git remote -v 显示远程库更详细的信息,这些是有推送权限的
 
git push origin dev 推送dev到远程的dev分支上面
 
git clone git@github.com:like/a.git  克隆仓库(需要提前把SSH key添加到github上面),默认只能看到master分支
 
git checkout -b dev origin/dev 创建远程origin的dev分支到本地
 
git branch --set-upstream dev origin/dev 指定本地dev分支与远程origin/dev分支的链接
git tag v1.0 给当前分支搭上标签1.0,git的标签是版本库的快照,其实是指向某个commit的指针,方便删除和创建,打在最新的commit
git tag 查看所有标签
git tag v0.9 6224937 给对应的commit id 打上了tag标签,标签不是按时间顺序列出,而是按字母排序的
git checkout v1.0 切到v1.0标签上面
git show v0.9 查看标签信息
git tag -a v0.1 -m 创建带有说明的标签,-a指定标签名,-m指定说明文字
git tag -d v0.1 删除分支
git push origin v1.0 推送分支到远程
git push origin --tags 一次性推送全部尚未推送到远程的本地标签
git push origin :refs/tags/v0.9 删除远程一个标签

在git工作区的根目录下创建一个特殊的.gitignore文件,把要忽略的文件名填进去,git就会自动忽略这些文件。可参考https://github.com/github/gitignore

比如操作系统自动生成的文件,缩略图。编译生成的中间文件、可执行文件,.class文件。忽略带有敏感信息的配置文件,比如存放口令的配置文件。

git config --global alias.st status 构造快捷键,将st映射到status,git st 就可以查看当前状态

如果不设置gitignore文件,在开发android的时候会相当蛋疼,因为每次运行bin文件夹里面都会修改,这样会频繁影响.git的变化,所以需要加入忽略文件,忽略文件可在

github上面的开源工程上面看到,本地有一个gitconfig文件,可先在命令行下敲git config --global core.excludesfile ~/.gitignore_global  需要更换为windows下面的视窗。

进去修改如下,excludesfile = c:/Users/你的账户文件夹/.gitignore_global

每个仓库的Git配置文件都放在.git/config文件中:

$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
url = git@github.com:michaelliao/learngit.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[alias]
last = log -

别名就在[alias]后面,要删除别名,直接把对应的行删掉即可。

而当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中:

$ cat .gitconfig
[alias]
co = checkout
ci = commit
br = branch
st = status
[user]
name = Your Name
email = your@email.com

配置别名也可以直接修改这个文件,如果改错了,可以删掉文件重新通过命令配置

apt advance package tool 高级包管理工具

git研究1的更多相关文章

  1. git研究详解(官网文档)及总结

    前言:git作为新一代的版本控制软件,说实话比svn好用多了,个人见解,关于git的详细介绍及研究,我推荐三个地方 1.git官网上的文档(推荐UC浏览器,比火狐多个英文翻译的功能) 地址为:http ...

  2. git研究2

    git也有发布版本时期的tag,不过这个tag,主要是作为一个标记而存在的,或者说在某个commit上面再打一个标记,表明版本是多少.这个和SVN上面的不太一样,SVN感觉有多份保存,似乎没有git方 ...

  3. 配置管理-git研究(版本管理)

    1. 安装git2.7 git2.7具体安装步骤如下: [root@host1 ~]# yum install curl-devel expat-devel gettext-devel openssl ...

  4. 版本控制Git研究二

    经过好几周的工作忙碌,终于可以有时间静下心来学习东西了,做为崇尚技术的人来说,应该是最幸福的时光了,呵呵,当然也是宅神的表现啦,话不多说,继续git的学习,上次已经对git的一些概念进行了说明,具体可 ...

  5. 版本控制Git研究一

    对于Git的使用,早在2010年的时候,就已经开始了,接触它也是由于Android开发的原因,我们知道Android源代码的管理就是用的Git,而至今期间已经呆过几个不同的公司,不同公司对于代码的管理 ...

  6. EFCore Database-first深入研究

    EFCore Database-first深入研究 使用Scaffold-DbContext从数据库生成实体 说明文档: 关于 Scaffold-DbContext 微软有官方说明文档 https:/ ...

  7. 将C语课设传到了Github和Code上 2015-91-18

    一直听说Git好使,以前捣鼓过没弄成,现在考完试了终于可以静下心来研究研究. 哎,我要是当时做课设的时候就用Git,也能省下不少事呢. 使用的Git教程,刚看个开头: 廖雪峰的Git教程 http:/ ...

  8. 深入理解git,从研究git目录开始

    转发学习的啦. 似乎很少有人在读某个git快速教程的时候会说:“这个关于git的快速教程太酷了!读完了用起git来超级舒服,并且我一点也不怕自己会破坏什么东西.” 对git的初学者来说,刚接触git时 ...

  9. 10.10_魔兽账号,OSC代码托管演示,研究SQL别忘记了,git

    (1)juedui8456juedui456chixin0769魔兽世界账号112288 (2)EasyXls.开源中国推出 PaaS@OSC 代码演示和运行平台.git.oschina.coding ...

随机推荐

  1. C#用xpath查找某节点

    C#用xpath查找某节点 从根节点一直下来的相对路径才能确定Xpath的写法. /root/<节点1>/<节点2>//<@属性> Xpath是功能很强大的,但是也 ...

  2. ehcache基本原理

    ehcache是现在最流行的纯Java开源缓存框架,配置简单.结构清晰.功能强大,最初知道它,是从Hibernate的缓存开始的.网上中文的EhCache材料以简单介绍和配置方法居多,如果你有这方面的 ...

  3. 从修复 testerhome(rubychina)网站的一个 bug 学习 ruby&rails on ruby

    前言 testerhome: http://testerhome.com/topics/1480 对于一个差点脱离前沿技术人,想要学习ruby,就意味着要放弃熟悉的操作系统windows,熟悉的ide ...

  4. Restful与webService区别

    有好多人问我们在设计底层服务的时候到底是应该选择目前最流行的RestFul架构还是选择老牌的webService呢?今天我就将这两个概念做一下阐述,到底什么情况下选择什么比较合理. 首先需要了解:RE ...

  5. 使用Visual Studio 2013编写可维护的本地可视化(natvis)

    在Visual Studio 2012中,我们介绍了创建可视化使用原生类型的能力natvis文件. Visual Studio 2013中包含了一些改进,使其更容易编写可视化的类,在内部利用收集来存储 ...

  6. HW4.38

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  7. 教程-Delphi资源文件(全面分析于使用)

    Delphi资源文件(全面分析之位图.光标.图标.AVI.JPEG.Wave)   几乎每个Windows应用程序都使用图标.图片.光标等资源.资源是程序的一部分,但是它是不可执行代码.下面我们就详细 ...

  8. 检查REDO日志相关信息并生成HTML文件的脚本

    生成HTML格式的文件 内容有: 检查数据库版本.REDO日志组情况, 最近20次日志切换频率检查--日志间的归档时间间隔, 这对查看数据库的IO繁忙时段 统计指定日期当天每小时的归档日志产生量--日 ...

  9. 高性能以太网芯片W5500 数据手册 V1.0(二)

    继续给大家介绍W5500 数据手册. 2.4       固定数据长度模式(FDM) 在外设主机不能控制 SCSn 时,可以使用固定数据长度模式. 此时,SCSn 必须连接到低电平(保持接地).与此同 ...

  10. flot图插件使用

    <div id="budget-charts"></div> <script src="../../../plugins/ace/js/fl ...