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. js监听键盘方向键事件

    <SCRIPT language=javascript> document.onkeydown = chang_page; function chang_page() { || ) loc ...

  2. CASE WHEN的两种格式

    CASE WHEN的两种格式 1.简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END 2.Case搜索函数 CASE ...

  3. 使用dom4j解析XML例子

    包括三个文件:studentInfo.xml(待解析的xml文件), Dom4jReadExmple.java(解析的主要类), TestDom4jReadExmple.java(测试解析的结果) 代 ...

  4. Form表单的post 和get跳转区别

    post是隐示请求 ----- 安全 get显示请求不安全,会在URL上显示路径和参数

  5. http请求连接

    1.在Info.plist中添加NSAppTransportSecurity类型Dictionary.2.在NSAppTransportSecurity下添加NSAllowsArbitraryLoad ...

  6. input内文字点击消失 弹出层,可以写表单

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  7. Flask architecture

    论文The Flask Security Architecture: System Support for Diverse Security Policies 介绍了Flask architectur ...

  8. xv6的设计trick(不断更新)

    1.每个进程通过时钟中断出发trap.c中的 if(proc && proc->state == RUNNING && tf->trapno == T_IR ...

  9. android ApplicationContext Context Activity 内存的一些学习

    Android中context可以作很多操作,但是最主要的功能是加载和访问资源. 在android中有两种context,一种是application context,一种是activity cont ...

  10. 转:Web安全与Rational AppScan入门

    Web 应用的基础概念 在讨论 Web 应用安全之前,先简单介绍一下 Web 应用基础概念,这样便于理解为什么 Web 应用是脆弱的,容易受到攻击. 1. 什么是 Web 应用 Web 应用是由动态脚 ...