Git GitHub的使用
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的使用的更多相关文章
- git &github 快速入门
本节内容 github介绍 安装 仓库创建& 提交代码 代码回滚 工作区和暂存区 撤销修改 删除操作 远程仓库 分支管理 多人协作 github使用 忽略特殊文件.gitignore 1.gi ...
- git+github上传与管理
1.首先下载并安装git,方便管理github上的代码 https://git-scm.com/downloads 2.然后点击安装好的git bash(注册好自己的github) git confi ...
- git/github学习笔记
郑重提示,本文来自这里,如果喜欢,请关注原作者. 1. git 版本控制系统 相比CVS\SVN优势: - 支持离线开发,离线Repository- 强大的分支功能,适合多个独立开发者协作- 速度块 ...
- Git/GitHub 初用体验与总结
Git,一个神奇而又陌生的东西,居然到现在才去了解它,就像有一位仁兄说的,现在不会用Git真的都不好意思说自己搞IT的. 简单的讲,这Git是目前最先进的分布式版本控制系统,和他相对应的就是众所周知的 ...
- git github简单知识
Git 常用命令 git init here -- 创建本地仓库(repository),将会在文件夹下创建一个 .git 文件夹,.git 文件夹里存储了所有的版本信息.标记等内容 git remo ...
- Git/Github + TortoiseGit 使用教程
前言 Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理. 在github上有很多优秀的项目,一个伟大的学习宝库.本文分享使用tortoisegit对github/ ...
- Git+GitHub 使用小结
1.Git安装完成后需要做的配置 $ git config --global user.name "Your Name" $ git confi ...
- Git & Github 一页简明笔记
由于小组工程需要使用git&github的版本控制来协作,但我对其使用并不熟悉,特此写篇一页的笔记放在手边,备随时查阅. 相信这种一页的简明笔记,对大家也是有帮助的.我的笔记总结自廖雪峰的Gi ...
- git/github初级运用自如(zz)
----//git/github环境配置 一 . github上创建立一个项目 用户登录后系统,在github首页,点击页面右下角“New Repository” 填写项目信息: project n ...
- git/github 使用
原文:http://www.cnblogs.com/fnng/archive/2011/08/25/2153807.html git/github学习笔记 Posted on 2011-08-25 2 ...
随机推荐
- php发送get、post请求获取内容的几种方法
方法1: 用file_get_contents 以get方式获取内容 <?php $url='http://www.domain.com/'; $html = file_get_contents ...
- FirstOrDefault()的重载方法
FirstOrDefault方法的使用总结: 现有一集合对象list, 其中集合对象调用FirstOrDefault()方法, list.FirstOrDefault()返回集合中第一个元素, 若集合 ...
- 获取表空间的语句 以及 建表和索引的ddl
alter session set container=PHD1; SET SERVEROUTPUT ON SET LINESIZE SET FEEDBACK OFF SET PAGESIZE sel ...
- 1.1 整理的Linux 基础
本文总参照:http://blog.csdn.net/xiaoguaihai/article/details/8705992/ 2.用户管理操作命令 (1)Su - XX 切换用户 3.文件管理操作命 ...
- FRAM 铁电存储器
铁电存储器与传统存储器的区别. 一:易失性的存储器包括静态存储器SRAM和动态存储器DRAM. 优点:读写速度快,读写寿命无次数限止. 缺点:掉电会丢失数据. ...
- 为Android系统内置C可执行程序测试Linux内核驱动程序
在前一篇文章中,我们介绍了如何在Ubuntu上为Android系统编写Linux内核驱动程序.在这个名为hello的Linux内核驱动程序中, 创建三个不同的文件节点来供用户空间访问,分别是传统的设备 ...
- 查看UDP连接情况
运行界面,输入"CMD"命令; 在命令提示符界面中,输入"netstat -s -p udp"命令,按回车.即可显示本机所有UDP连接情况.
- MySQL5.1升级5.6后,执行grant出错:ERROR 2013 (HY000): Lost connection to MySQL server during query【转载】
转载: MySQL5.5升级5.6后,执行grant出错:ERROR 2013 (HY000): Lost connection to -mysql教程-数据库-壹聚教程网http://www.111 ...
- 数值标记问题 离线+树状数组 HDU 3938 + HDU 3333
HDU 3938 题目大意:给你一个长度为n的数组a,定义区间[l,r]的val为区间内所有不同的数值之和.现在有m个询问,每次询问一个区间,问区间的val是多少. 思路:将所有的询问按照右端点排序. ...
- zf-关于调用页面提示找不到className的原因
多亏了蒋杰 还好他上次告诉我 关于节点的问题 我一看到这个函数就想到了他以前教我的 我这里一开始就调用js函数了 所以没获取到节点 后来把方法换到这里就OK了