一、绑定用户名、邮件地址
git config --global user.name "Your Name"
git config --global user.email "email@example.com
二、设置SSH免密码登陆
生成公钥
ssh-keygen -t rsa -C your_email@youremail.com(GitHub注册邮箱)
公钥上传github账户
生成的文件放在了C:/Users/用户名(你的windows用户)/.ssh/文件夹中,用记事本打开其中的id_rsa.pub文件,(ubuntu 默认在用户目录/.ssh目录下)全部内容复制。登录github网站,找到account setting

测试是否成功
ssh -T git@github.com 如果成功,会显示欢迎字符
 
error:
Agent admitted failure to sign using the key.
Permission denied (publickey).
solve ssh-add
 
三、建仓库
远程库(repository)
在网站上登录你的github帐户,点击Repositoies选项卡,建立一个名叫Hello的库。(名字随便取,但在本地建库时必须使用相同名字)
 
本地库
在自己电脑上任意一个文件夹,新建一个目录,目录名与在github上所建库的名字相同,这里是Hello,并进入Hello文件夹
 
初始化本地库
1.git init
2.编辑一个文档
  vim readme.txt
  Git is a version control system.
  Git is free software.
3.1用命令git add告诉Git,把文件添加到仓库
  git add readme.txt
3.2用命令git commit告诉Git,把文件提交到仓库
  git commit -m "wrote a readme file"
 
commit可以一次提交很多文件,所以你可以多次add不同的文件
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."
 
本地仓库
1.修改文件
  修改文件之后,使用git status查看哪个文件有改动
  git status
  使用git diff查看具体哪里改动
  git diff readme.txt
2.提交修改
  git add readme.txt
  git status
  git commit
3.版本查看
  git log 【--pretty=oneline】
4.版本恢复
Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
 
  git reset --hard HEAD^
  git reset --hard 版本号:可前可后恢复
如果关机之后不知道commit id,可以使用git reflog查看
5.撤销修改
  git checkout -- file可以丢弃工作区的修改
  命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销
6.文件删除
  如果磁盘误删
  rm file 磁盘直接删除
  第一种情况,确实要删除
    git rm file 版本库中删除
    git commit -m “commitment”提交
  第二种情况,还原
    git checkout -- file还原
 
远程仓库
1.关联本地仓库
  在Github建立一个同名仓库
  本地执行git remote add origin git@github.com:michaelliao/learngit.git
  添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库
2.推送到远程仓库
  git push -u origin master
  我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令
  之后可以执行git push origin master
3.克隆到本地
  在github上新建一个远程库
  git clone git@github.com:tla001/gittest.git
 
分支管理
master称为主分支
  git checkout -b dev创建dev分支并切换进去
  相当于 git branch dev
      git checkout dev
 
git branch 查看当前分支
git checkout master切换到主分支
git merge dev 将dev分支合并到master上
git branch -d dev 删除dev分支
 
突发保存于恢复
git stash
git stash list
git stash pop
 
多人协作
git remote 查看远程库信息
git remote -v详细信息
master分支是主分支,因此要时刻与远程同步;
 
dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。
你的小伙伴要在dev分支上开发,就必须创建远程origin的dev分支到本地,于是他用这个命令创建本地dev分支,clone只能得到master
git checkout -b dev origin/dev
 
如果发生冲突
  git pull 与远程同步
  git branch --set-upstream dev origin/dev 分支连接
步骤
  1首先,可以试图用git push origin branch-name推送自己的修改;
  2如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
  3如果合并有冲突,则解决冲突,并在本地提交;
  4没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有 创建,用命令git branch --set-upstream branch-name origin/branch-name。
 
标签管理
git branch
git checkout master跳转到相应的分支
git tag v1.0
git tag 查看
git tag v0.9 commit id
git tag -s <tagname> -m "blablabla..."可以用PGP签名标签查看标签信息
git tag -d v0.9 删除标签
git push origin v1.0推送某个标签
git push origin --tags一次性推送全部尚未推送到远程的本地标签
git push origin :refs/tags/<tagname>可以删除一个远程标签
 
eclipse 和myeclipse配置git
1.help中安装marketplace client插件
添加site juno-http:??download.eclipse.org/releases/juno
2.MarketplaceClient装好后,会重启Eclipse,然后我们会发现“Help”菜单下多了一个“EclipseMMarketPlace”,打开按照下图操作
搜索安装egit
3.window->preference->Team下出现Git就成功了。就可以开始配置和使用这个插件了

--------------------------------------------------------------------------------
error:src refspec master does not match any
touch README
git add README
git commit -m 'first commit'
git push origin master

git使用及一些配置、问题的更多相关文章

  1. 【经验之谈】Git使用之TortoiseGit配置VS详解

    前言 上一篇<[经验之谈]Git使用之Windows环境下配置>: 安装 配置和使用 后记 关于vs中使用git网上的教程大家也可以找到,我当时配置的时候也是按照网上找的教程一步一步来的, ...

  2. Git系列教程三 配置与基本命令

    一.安装Git 网上有很多安装教程,可以参考.这里使用的是Windows版本的Git,点击这里下载. 二.基本设置 安装完成后,通过点击鼠标右键就可以看到新添加了俩个Git命令:Git GUI Her ...

  3. Git的.gitignore文件配置

    .gitignore是Git工具的配置文件,用于屏蔽某些文件上传到线上. 创建.gitignore 在window系统中,不允许新建文件名以"."开头的文件,所以通过git bas ...

  4. CentOS6.4下Git服务器Gitosis安装配置

    1.安装GIt: #yum install git 2.增加一个git用户 #useradd git #passwd git 3.创建git仓库存储目录,设置权限 #mkdir /home/git/r ...

  5. Git 笔记二-Git安装与初始配置

    git 笔记二-Git安装与初始配置 Git的安装 由于我日常生活和工作基本上都是在Windows上,因此此处只说windows上的安装.Windows上的安装和其他程序一样,只需要到http://g ...

  6. spring cloud 入门系列七:基于Git存储的分布式配置中心

    我们前面接触到的spring cloud组件都是基于Netflix的组件进行实现的,这次我们来看下spring cloud 团队自己创建的一个全新项目:Spring Cloud Config.它用来为 ...

  7. Git管理多个SSH密钥,Git多帐号配置

    版权声明:转载须标明本文转自严振杰的博客 https://blog.csdn.net/yanzhenjie1003/article/details/69487932版权声明:转载必须注明本文转自严振杰 ...

  8. Git介绍及安装配置

    一.概述 1.1git概念 Git是一个开源的分布式版本控制系统,用于敏捷高效处理任意规模的项目,其作者为Linux创造者Linus Torvalds为管理Linux内核而开放的一个开源的版本控制柔软 ...

  9. (转)【经验之谈】Git使用之TortoiseGit配置VS详解

    原文地址:http://www.cnblogs.com/xishuai/p/3590705.html 前言 上一篇<[经验之谈]Git使用之Windows环境下配置>: 安装 配置和使用 ...

  10. spring cloud 入门系列七:基于Git存储的分布式配置中心--Spring Cloud Config

    我们前面接触到的spring cloud组件都是基于Netflix的组件进行实现的,这次我们来看下spring cloud 团队自己创建的一个全新项目:Spring Cloud Config.它用来为 ...

随机推荐

  1. sql server 基础

    1 .左连接 select a.* ,b.* from student as aleft join hobby as bon a.hobbyid=b.hobbyid 2. 右 连接 select a. ...

  2. javaweb基础(40)_jdbc框架

    一.元数据介绍 元数据指的是"数据库"."表"."列"的定义信息. 1.1.DataBaseMetaData元数据 Connection.g ...

  3. linux系统中 redis 保存数据的5种形式 linux后端模式启动 jedis无法通过IP地址和端口号访问如何修改linux防火墙

    vim修改redis.conf配置文件(我的已经复制到虚拟机的/usr/local/redis/bin目录下)为daemonize yes, 以后端模式启动 ./redis-server redis. ...

  4. UVA_10139

    The factorial function, n! is defined thus for n a non-negative integer:0! = 1 n! = n×(n−1)! (n > ...

  5. python基础数据类型之列表,元组操作

    一.列表的索引和切片1.列表的索引列表和字符串一样样拥有索引 lst = ["a","b","c"] print(lst[0]) # 获取第 ...

  6. Linux关闭开启防火墙命令

    在外部访问CentOS中部署应用时,需要关闭防火墙. 关闭防火墙命令:systemctl stop firewalld.service 开启防火墙:systemctl start firewalld. ...

  7. linux 特殊命令(一)

    1.ifconfig 网卡配置:ifconfig  [网络设备] [参数] 1) up 启动指定网络设备/网卡. 2) down 关闭指定网络设备/网卡.该参数可以有效地阻止通过指定接口的IP信息流, ...

  8. 【笔记】objdump命令的使用

    ---恢复内容开始--- objdump命令是Linux下的反汇编目标文件或者可执行文件的命令,它还有其他作用,下面以ELF格式可执行文件test为例详细介绍: objdump -f test 显示t ...

  9. Echarts 背景渐变柱状图

    var dom = document.getElementById("container"); var myChart1 = echarts.init(dom); var app ...

  10. mysql学习第三天笔记

    连接连接是在多个表之间通过一定的连接条件,使表之间发生关联,进而能从多个表之间获取数据.在 WHERE子句中书写连接条件. 如果在多个表中出现相同的列名,则需要使用表名作为来自该表的列名的前缀. N个 ...