Git的工作区示意

GIT总结

使用git github也一段时间突然发现还是少了一些总结,那就从这儿开始吧!

(1)git的配置,这儿就从单独的安装配置开始
安装:sudo yum install git-core;
配置:git config --global user.name "yourusername"
git config --global user.email "yourusername@163.com"
ssh-key生成:ssh-keygen -C "yourusername@163.com" -t rsa
(2) git的初始化
a.本地初始化
step 1:新建项目的空文件夹
mkdir my_project
step 2:进入项目文件夹
cd my_project
step 3:git初始化
git init
b.从github的项目初始化
step 1:同上
step 2:从github项目clone
git clone https://github.com/yourusername/my_project.git
or git clone git@github.com:yourusername/my_project.git
(3)本地变化相关操作
a.查看本地状态变化情况
git status
b.查看各文件的具体变化内容
git diff 比较的是工作区与stage的区别
git diff --cached 比较的是stage与版本库的区别
git diff HEAD 比较工作区与版本库的区别
git difftool ... 是以图形化的形式查看区别对比
c.添加所有变化至本地缓存
git add .
d.添加指定文件的变化至本地缓存
git add -p <file>
e.将缓存中的内容提交到本地分支
git commit -m "your_comment"
git commit -a -m "your_comment" 添加至stage的同时提交至版本库
f.查看上次提交后缓存的变化.PS:当stage为空时感觉与git status效果较为一致
git commit
(4)提交历史查看
a.查看所有的提交历史
git log
b.查看指定文件的修改提交历史
git log -p <file>
git log --graph --pretty=online --abbrev-commit
c.命令历史
git reflog
d.查看谁对某个文件的修改情况
git blame <file>
(5)分支与tag相关
a.列出当前本机上的所有分支
git branch
b.切换当前的分支
git checkout <branch>
c.创建新的分支
git branch <new-branch>
下面的在创建的同时还会完成分支的切换
git checkout -b <new-branch>
d.删除本地分支
git branch -d <branch>
e.对本次提交添加tag
git tag <tag-name>
git tag -d <tag-name>
f.合并分支,将指定分支合并到当前的分支上
git merge <branch>
g.合并分支,并且修改分支的历史版本信息
git rebase <branch>
git rebase --abort 放弃一次rebase
git rebase --continue 解决冲突后继续一次rebase操作
注意rebase过程中发生冲突时解决后应使用git add添加后再使用
git rebase --continue
(6)更新及发布
a.查看远程的所有配置情况
git remote -v
b.为远程添加新的分支
git remote add <remote> <url>
ie: git remote add origin git@github.com:yourusername/my_project.git
c.同步远程分支信息,不会进行合并
git fetch <remote>:local:name
ie:git fetch origin master:tmp
git diff tmp
git merge tmp
上面例子的含义为:将远程的origin下的master分支下载到本地的tmp上,然后检查
tmp分支与当前分支的差异,最后与当前分支合并
d.从运程获取分支并merge到本地当前分支上
git pull <remote> <branch>
实际上相当于git fetch 与git merge的合并
f.将本地分支推送到远程分支上
git push <remote> <branch>
g.删除远程的一个分支
git push <remote>:<branch>
h.发布tags
git push --tags
(7)撤消修改相关
a.放弃工作区中的所有修改内容
git reset --hard HEAD
b.放弃指定文件的本地修改
git checkout HEAD <file>
git checkout -- <file>
c.撤消某次提交,并将这次撤消作为新的提交,版本增加
git revert <commit>
d.回退到某次提交
git reset --hard <commit> 丢弃更改至指定的提交,stage,workarea与head均会改变
git reset --soft <commit> 回滚至指定的提交,修改保存于工作区,stage,workarea均不改变
git reset --mixed <commit> 默认,不改变workarea仅改变stage,head的内容
git checkout -- <file> 只修改workaarea,会优先回退stage的内容至工作区,若stage为空,则回退版本库中的内容
e.删除版本库中的文件
git rm <file>
f.暂存改动
git stash
git stash可以把当前的改动(stage和unstage,但不包括untrack的文件)暂存。然后通过gitstash list查看。并通过git stash apply重新取出来。但apply之前要保证worktree是干净的。
(8)gitignore
https://github.com/github/gitignore

Git GitHub的使用的更多相关文章

  1. git &github 快速入门

    本节内容 github介绍 安装 仓库创建& 提交代码 代码回滚 工作区和暂存区 撤销修改 删除操作 远程仓库 分支管理 多人协作 github使用 忽略特殊文件.gitignore 1.gi ...

  2. git+github上传与管理

    1.首先下载并安装git,方便管理github上的代码 https://git-scm.com/downloads 2.然后点击安装好的git bash(注册好自己的github) git confi ...

  3. git/github学习笔记

    郑重提示,本文来自这里,如果喜欢,请关注原作者. 1. git 版本控制系统 相比CVS\SVN优势: - 支持离线开发,离线Repository- 强大的分支功能,适合多个独立开发者协作- 速度块 ...

  4. Git/GitHub 初用体验与总结

    Git,一个神奇而又陌生的东西,居然到现在才去了解它,就像有一位仁兄说的,现在不会用Git真的都不好意思说自己搞IT的. 简单的讲,这Git是目前最先进的分布式版本控制系统,和他相对应的就是众所周知的 ...

  5. git github简单知识

    Git 常用命令 git init here -- 创建本地仓库(repository),将会在文件夹下创建一个 .git 文件夹,.git 文件夹里存储了所有的版本信息.标记等内容 git remo ...

  6. Git/Github + TortoiseGit 使用教程

    前言 Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理. 在github上有很多优秀的项目,一个伟大的学习宝库.本文分享使用tortoisegit对github/ ...

  7. Git+GitHub 使用小结

    1.Git安装完成后需要做的配置            $ git config --global user.name "Your Name"        $ git confi ...

  8. Git & Github 一页简明笔记

    由于小组工程需要使用git&github的版本控制来协作,但我对其使用并不熟悉,特此写篇一页的笔记放在手边,备随时查阅. 相信这种一页的简明笔记,对大家也是有帮助的.我的笔记总结自廖雪峰的Gi ...

  9. git/github初级运用自如(zz)

    ----//git/github环境配置 一 .  github上创建立一个项目 用户登录后系统,在github首页,点击页面右下角“New Repository” 填写项目信息: project n ...

  10. git/github 使用

    原文:http://www.cnblogs.com/fnng/archive/2011/08/25/2153807.html git/github学习笔记 Posted on 2011-08-25 2 ...

随机推荐

  1. OpenGL红宝书例子2.2 uniform变量的使用

    1. 简单介绍一下OpenGL可编程渲染管线的流程 顶点着色 --> 细分着色 --> 几何着色 --> 片元着色 --> 计算着色 一般我们主要参与的阶段是顶点着色和片元着色 ...

  2. UIImagePikerController 浅析

    原文链接:http://www.jianshu.com/p/2ac85aca4468 UIImagePickerController是iOS系统提供的和系统的相册和相机交互的一个类,可以用来获取相册的 ...

  3. HTML一些小细节

    这里主要是记录一些看起来不重要,但是其实作用不小或者使用起来某种情况下好用的东西,又或者是重要的但容易忽略的基础知识 1. HTML5之后的第一个标签是<!DOCTYPE html> 这个 ...

  4. mplayer最全的命令

    前段时间做过qt内嵌mplayer的一个小程序,感觉mplayer还行不过不支持打开图片感觉有点无力.话不多说上代码: QString path="d:/1.mkv"; QWidg ...

  5. 二分图最大匹配 Hopcroft-Karp算法模板

    #include <iostream> #include <cstdlib> #include <cstdio> #include <cstring> ...

  6. ImageLoader的使用

    显示本地图片 //ImageLoader使用前必须初始化 ImageLoader imageLoader = ImageLoader.getInstance(); imageLoader.init(I ...

  7. 格式化一个文件的大小(size),或者说是格式化一个app的大小(size)

    long number = 6243161; Formatter.formatFileSize(context, number): 需要导包,import android.text.format.Fo ...

  8. struts2语法--error页面如何捕获?

    如果地址栏输入了不带后缀或者action为后缀, 不存在的页面跳转到error.jsp: struts.xml配置" <package name="default" ...

  9. AIM Tech Round 3 (Div. 2) B 数学+贪心

    http://codeforces.com/contest/709 题目大意:给一个一维的坐标轴,上面有n个点,我们刚开始在位置a,问,从a点开始走,走n-1个点所需要的最小路程. 思路:我们知道,如 ...

  10. Android MediaScanner 详尽分析

    [Innost]: http://blog.csdn.net/Innost/article/details/6083467 ====================================== ...