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. HTML-中<li>标签value值的兼容问题

    今天在做项目测试的时候,发现IE浏览器对HTML中<li>标记的value取值存在兼容性问题,特意从4个浏览器出发进行了一些测试.现将测试结论展示如下: 测试类型 IE8 FF16.0.1 ...

  2. JavaBean技术的一些讲解

    JavaBean: 由于原先的jsp的html代码和css代码以及java代码都是写在一起的,所以看起来就比较冗余,同时 也体现不了javaBean中面向对象的思想的{当然可以同过jstl标签库以及m ...

  3. 关于RuntimException

    对于实现接口的类如果要抛出异常的话,那么接口也要抛出异常 所以RuntimeException只要对于实现接口的类就可以了 对于继承的类也可以这样运用 毕竟在实际开发中接口不一定是自己写的,而且团队可 ...

  4. Haproxy的安装和配置示例

    1.ha proxy简介ha proxy是一个开源的,高性能的,基于tcp第四层和http第七层应用的负载均衡软件优点:可靠性和稳定性非常好          最高可以同时维护40000-50000个 ...

  5. java设计模式案例详解:工厂模式

    1.简单工厂模式 在不考虑扩展的情况下还是很好用的,其实我们写代码也很经常用到,其主要理解在于传入不同参数则构建不同对象,只有一个工厂,如需添加产品涉及到扩展需要修改比较多的东西,不符合开闭原则,如下 ...

  6. 软件开发常用的linux命令心得(ubuntu为例)

    软件开发过程中难免要经常对主机进行配置或者部署等操作,想到一些就写一些了,以后再更新 解压命令: a.如果是tar文件,则直接用 “tar zxvf 文件名”: b.如果是zip文件,用 “unzip ...

  7. Css 之 px em %

    在页面整体布局中,页面元素的尺寸大小(长度.宽度.内外边距等)和页面字体的大小也是重要的工作之一.一个合理设置,则会让页面看起来层次分明,重点鲜明,赏心悦目.反之,一个不友好的页面尺寸和字体大小设置, ...

  8. redis 队列缓存 + mysql 批量入库 + php 离线整合

    问题分析 思考:应用网站架构的衍化过程中,应用最新的框架和工具技术固然是最优选择:但是,如果能在现有的框架的基础上提出简单可依赖的解决方案,未尝不是一种提升自我的尝试. 解决: 问题一:要求日志最好入 ...

  9. git 强制覆盖本地文件

    git fetch --all git reset --hard origin/master git pull

  10. iOS 静态库,动态库与 Framework 浅析

    静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用. 什么时候我们会用到库呢?一种情况是某些代码需要给别人使用,但是我们不希望别人 ...