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. 安装完php 后添加到环境变量

    Run PHP from the command line   up vote5down votefavorite 3 I have installed XAMPP v1.8.3 for my PHP ...

  2. zTree异步加载并初始化树时全部展开(贴主要代码)

    <%@page pageEncoding="UTF-8"%> <%@include file="/commons/include/html_doctyp ...

  3. perfect-scrollbar示例

    <!DOCTYPE html> <html> <head> <title>perfect-scrollbar - www.97zzw.com -97站长 ...

  4. jquery 展开关闭效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. Webkit之HTML解析

    加载部分HTML文本(即主资源)后便可以开始解析HTML元素(对输入字节流进行逐字扫描,识别HTML元素),最后生成DOM树,本文只讲HTML解析. HTML解析部分时序图: 其中最为重要的过程是(1 ...

  6. Swift 学习笔记(五)

    126. 协议(Protocols) 协议语法(Protocol Syntax) 属性要求(Property Requirements) 方法要求(Method Requirements) Mutat ...

  7. lucene 查询 (转载)

    原网址:http://hi.baidu.com/lszhuhaichao/blog/item/ccffc7cb858f1514bf09e66f.html Lucene3.0之查询处理(1):原理201 ...

  8. CodeForces 678C Joty and Chocolate

    简单题. #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> ...

  9. linux服务器性能状态查看

    vmstat结果内容的解释 Vmstat procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu---- ...

  10. java网络之tcp

    简单tcp传输 package pack; /* 演示tcp传输. 1,tcp分客户端和服务端. 2,客户端对应的对象是Socket. 服务端对应的对象是ServerSocket. 客户端, 通过查阅 ...