一、绑定用户名、邮件地址
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. 2017.9.18 HTMl学习总结----input标签的额type

    2.1.3  HTML表单标签与表单设计 (1)表单的组成:文本框(text),密码框(password),多行文本框(Multiline text box).  单选按钮框(Single - rad ...

  2. memcache 基本操作

    输入 telnet  localhost 11211 步骤: 1.输入 set hans 0 0 3 回车 2. 输入 123  回车 3. get  hans 回车 删除操作,输入 delete h ...

  3. test image

    Most of these images are in PBM or PGM format and compressed with GNU Zip and GNU TAR Note: These pa ...

  4. hihocoder1398 网络流五之最大权闭合子图

    最大权闭合子图 虽然我自己现在总结不好最大权闭合子图.但也算稍稍理解辣. 网络流起步ing~~~(- ̄▽ ̄)- #include<iostream> #include<cstdio& ...

  5. File类,递归

    File类 File文件和目录路径名的抽象表示形式.即,Java中把文件或者目录(文件夹)都封装成File对象. File类包含     路径    path E:\...     目录 direct ...

  6. C#流程控制语句

    C#流程控制语句 一.选择语句 当程序中需要进行两个或两个以上的选择时,可以根据条件的判断来选择将要执行的一组语句. ?if语句 ?switch语句 二.循环语句 循环语句是对一个程序模块进行的重复操 ...

  7. sup inf max min

    来自这里,觉得定义和举例都是最清楚的.http://www.math.illinois.edu/~ajh/347.summer14/completeness.pdf

  8. EBS补丁时遇到的问题

    今天在给R12.1.3打17525552的时候,出现了这样的一个错误 ATTENTION: All workers either have failed or are waiting: FAILED: ...

  9. [转]C++ Template

    引言 模板(Template)指C++程序设计设计语言中采用类型作为参数的程序设计,支持通用程序设计.C++ 的标准库提供许多有用的函数大多结合了模板的观念,如STL以及IO Stream. 函数模板 ...

  10. BZOJ1901: Zju2112 Dynamic Rankings(整体二分 树状数组)

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 9094  Solved: 3808[Submit][Status][Discuss] Descript ...