Ubuntu下安装步骤

  1. sudo apt-get install git完成git的安装
  2. 安装完成后进行配置
    • git config –global user.name “Your Name”
    • git config –global user.email “email@example.com”

连接GitHub

  1. 创建SSH Key,在用户主目录(~)下创建SSH Key:

    • ssh-keygen -t rsa -C “youremail@example.com”
    • 然后一路回车使用默认值即可。
  2. 执行完之后,我们可以找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的密钥对,id_rsa是私钥,id_rsa.pub是公钥。
  3. 登录GitHub,打开”Account settings”,找到”SSH Keys”页面,点击”Add SSH Key”,把id_rsa.pub文件中的内容粘贴过来。

创建版本库(Repository)

  • 新建一个目录: mkdir my_dir && cd my_dir
  • git init 把目录变成Git可以管理Repository
  • git add filename 将文件添加到仓库
  • git commit -m “xxxxx” 告诉Git把文件提交到Repository

    git add 命令可以执行多次,添加多个文件到仓库
    git commit 命令中 -m 后面输入的是本次提交的说明,可以输入任意内容

版本修改

  • git status 命令查看Repository当前的状态
  • git diff filename 查看修改过的但还没提交的文件与已经commit到仓库中的区别
  • git log 查看从最近到最远的提交日志

    在Git中用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^, 以此类推,往上10个版本可以写成HEAD~10。

  • 有时候后悔提交当前版本了,可以用git reset –hard HEAD^ 命令回退到上一个版本

  • 工作区(Working Directory)和版本库(Repository)的区别
    • 工作区就是指的某个目录,例如上面的my_dir。
    • 在my_dir中有一个隐藏目录.git,这个就是版本库。
      • 版本库中最重要的就是被称为stage(或者index)的暂存区,还有Git为我们自动创建的第一个分支master以及指向master的指针HEAD。
      • git add 命令就是把文件添加的暂存区
      • git commit 命令提交更改后,就是把暂存区的所有内容提交到当前分支
    • git checkout – filename 命令可以把文件在工作区的修改全部撤消掉,有两种情况:
      • 一种是filename文件修改后还没添加到暂存区,撤消修改之后就和版本库一样。
      • 一种是filename文件修改后添加到暂存区,撤消修改之后就回到添加到暂存区后的状态。
    • 当在工作区把某个文件删除了之后,版本库中还存在,这时用git status 命令可以看到版本库中那些文件在工作区被删除了,这时有两种选择:
      • 一种是确实要删除某个文件,那么版本库中也应该相应删除,可以使用git rm filename 并且git commit -m “xxxx” 命令在版本库中删除。
      • 另一种是删错了,那么可以使用git checkout – filename 命令把工作区误删的文件恢复到最新版。

远程仓库

  • git remote add origin git@github.com:xxxx/xxxx.git 命令将本地仓库与GitHub仓库关联。

    • 执行之后,远程库的名字就是origin。
  • git push -u origin master 命令把本地库中的所有内容推送到远程库中。
    • git push 命令就是把当前分支master推送到远程
    • 由于一开始远程库是空的,-u参数不仅能够将本地master分支内容推送到远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送和拉取时就可以简化命令。
    • 之后就可以用git push origin master 命令了。
    • 注意可以用git push -f命令来强制推送。
  • git clone git@github.com:xxxx/xxxx.git 命令从远程库中克隆一个到本地仓库

分支管理

  • git checkout -b dev 命令用于创建dev分支,参数-b表示创建并切换,相当于以下两条命令:

    • git branch dev
    • git checkout dev
  • git branch 命令查看当前分支
  • git merge dev 命令将dev分支的工作成果合并到master分支上
  • git branch -d dev 命令用于删除dev分支
  • git remote -v查看远程库更详细的信息
  • 从远程库中抓取分支,使用git pull命令。

参考博客

Git使用笔记的更多相关文章

  1. Git学习笔记与IntelliJ IDEA整合

    Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...

  2. Git学习笔记(10)——搭建Git服务器

    本文主要记录了Git服务器的搭建,以及一些其他的配置,和最后的小总结. Git远程仓库服务器 其实远程仓库和本地仓库没啥不同,远程仓库只是每天24小时开机为大家服务,所以叫做服务器.我们完全可以把自己 ...

  3. Git学习笔记(四)

    一.忽略特殊文件 在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件. 不需要从头写.gitignore文件,GitHub已经为我们 ...

  4. git 学习笔记6--remote & log

    git 学习笔记6--remote & log 创建SSH Keys ssh-keygen -t rsa -C "1050244110@qq.com" 本地关联远程 git ...

  5. 《Pro Git》笔记3:分支基本操作

    <Pro Git>笔记3:Git分支基本操作 分支使多线开发和合并非常容易.Git的分支就是一个指向提交对象的可变指针,极其轻量.Git的默认分支为master. 1.Git数据存储结构和 ...

  6. git使用笔记(三)(图文说明) 图解提交更改内容的不同方式,涉及代码

    此步之前的工作和示例请参考以下帖子: git使用笔记(一)Git的下载与配置 git使用笔记(二) 如何把GitHub上项目同步到本地 -------------------------------- ...

  7. git入门笔记汇总——(廖雪峰博客git入门)

    本文内容是对廖雪峰老师Git教程做的笔记,外加一些自己的学习心得,还抱着学以致用的心态来实践一番 如有显示错误 请移步本人github:git教程小结 Git学习笔记 Git简介 安装Git 创建版本 ...

  8. Git学习笔记---协作的一般流程

    一般的操作流程 1.pull 王小坤与另一个同事张大炮一起开发一个项目,张大炮昨天修改了数据库读写的api,优化了执行速度,并把read()函数改名成了Read(),下午下班之前把这些代码push到服 ...

  9. 【转帖】Git学习笔记 记录一下

    本文内容参考了廖雪峰老师的博文,并做了适当整理,方便大家查阅. 原帖地址 https://wangfanggang.com/Git/git/ 常用命令 仓库初始化 - git init 1 git i ...

  10. 【Git 使用笔记】第四部分:git在公司中的开发流程

    先声明几个变量 仓管A:主分支,只有master分支仓管B:开发分支,只有各个业务开发分支   仓管B fork 于 A 如下图 为了保证 代码的稳定性,只有 仓管B中的某个分支测试完毕并进行了代码r ...

随机推荐

  1. java中数组的基本知识

    数组{ 物以类聚 人以群分 avg sum 数组 数组的概念[ 数组:一组具有相同数据类型的集合 ] 数组的语法[ 先声明 后使用 声明数组: 数据类型+[]+ 变量名 ;/ 数据类型+变量名 +[] ...

  2. 关于java的格式输出控制

    java中的System.out.println()功能十分强大,可以对任意类型的数据进行输出. 这里我们不讨论System.out.println(),而是讨论System.out.printf() ...

  3. [C/C++] C/C++延伸学习系列之STL及Boost库概述

    想要彻底搞懂C++是很难的,或许是不太现实的.但是不积硅步,无以至千里,所以抽时间来坚持学习一点,总结一点,多多锻炼几次,相信总有一天我们会变得"了解"C++. 1. C++标准库 ...

  4. Linux中find常见用法示例

    ·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \; find命令的参数: pathname: find命 ...

  5. Xcode 快捷键、常用技巧

    关于iOS开发中的技能快捷键 经常使用鼠标太TM的D疼了,快捷键能大大地提高我们的开发速度,使我们的手指尽情的在键盘上飞舞,优美的代码,哈哈哈,那些常规的复制.粘贴.剪切请自行度娘或者Google一下 ...

  6. 优先队列实现Huffman编码

    首先把所有的字符加入到优先队列,然后每次弹出两个结点,用这两个结点作为左右孩子,构造一个子树,子树的跟结点的权值为左右孩子的权值的和,然后将子树插入到优先队列,重复这个步骤,直到优先队列中只有一个结点 ...

  7. 微信小程序导航:官方工具+精品教程+DEMO集合(1月7更新)

    1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=14764346784612:简易教程:https://mp.weixin.qq.com/debug ...

  8. python之路十四

    概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器 ...

  9. ASP.NET MVC RenderPartial和Partial的区别

    背景:ASP.NET MVC 4.0 @{ Html.RenderPartial(...); } public static void RenderPartial(this HtmlHelper ht ...

  10. Android JNI总结

    @Dlive 0x01 JNI介绍 JNI是Java Native Interface的缩写,JNI不是Android专有的东西,它是从Java继承而来,但是在Android中,JNI的作用和重要性大 ...