git与github
Git-版本控制,多人协作,分布式;
Github-开源项目,远程仓库;

我在github上建立了一个仓库 https://github.com/abcd/2016ife;
现在我要把它下载到本地;
cd g:
cd github/test
git clone url 这里url填写仓库的地址;如:https://github.com/abcd/2016ife.git
cd 2016ife
进入后如下:

git config --global user.name "xxxxxxx" //设置全局的用户名,回车后没有提示就是设置成功了;
git config --global user.email "xxxxx@163.com" //设置邮箱
设置了这两个,当我们提交代码的时候就会把这两个记录在版本库里,其他人就可以查看到;
git config --global user.email //我们设置好了,也可以查看的;回车后会打印出邮箱;

git config --list //查看到所有的配置
master是主分支的默认名称;创建一个分支,不影响稳定的主分支master,等分支做好了,再合并到主分支。
git的三个区:
工作区,暂存区,版本区(库)
工作区-->暂存区-->版本区
暂存区:工作区要提交代码到版本区,需要经过暂存区;
先将改好的代码扔到暂存区,再把暂存区的扔到版本区;
暂存区的作用:作为过渡层,避免误操作,保护工作区和版本区,分支处理;
git status //查看当前工作区和暂存区的状态

提示,nothing to commit……
我把xinshijie这个文件夹拷贝到了本地2016ife那个文件夹中,再在命令行输入git status

表示有一个文件夹的内容现在没有提交到暂存区和版本区,现在正在工作区;
git add xinshijie/ //添加到暂存区,git add 文件名 文件名可以是具体的文件,也可以是文件夹的名字;git add . 全部添加到暂存区;

可以看到红色的是 +1 ~0 -0 表示在工作区,有1个新增的文件(文件夹),0个修改,和0个删除的文件;
绿色的是暂存区的;最后,看不见红色了的,表示工作区已经干净了;
所以从工作区到暂存区,通过 git add这个命令来实现;
接下来,把暂存区文件放入版本库:
git commit //会直接弹出个记事本,要我们增加注释; 而通过 git commit -m "change demo1" 这样不会打开记事本,而快速添加注释; -m "注释内容" ;
git commit -a -m "快速注释" //这样可以直接从工作区到版本区;-a 是简写的add,添加到暂存区;

再次使用 git status;看到已经提交有1个版本了;

git log //查看提交历史,按q退出;
git diff //比较工作区和暂存区的不同;
git diff --cached (git diff --staged) //比较暂存区和版本库的不同;
git diff master //比较工作区和版本库的不同;
撤销操作:
git reset HEAD <file.name> //从暂存区撤销回工作区,<file.name>输入文件名
git checkout -- <file.name> //从工作区撤销回版本区
git commit --amend //撤销提交操作
注意:

这里的逻辑是这样的:我现在有两个文件在工作区;我首先添加了 drag.js到暂存区,然后提交到了版本区;这时我才发现还有个demo1.html没有提交;其实我的想法是把这两个文件一次提交成功(涉及到提交的版本);解决方法:先把demo1.html添加到暂存区;然后使用 git commit -m "change3 drag.js and demo1.html" --amend 这样就会撤销掉上次提交,并且一起再提交;这样就完成了撤销,两个文件一起提交。
删除
git rm <file.name> //删除暂存区的内容;我们工作区假如删了一个文件,通过这个命令把暂存区的也删掉;
git rm -f <file.name> //工作区和暂存区都有文件的时候,强制删除暂存区和工作区对应的文件;
git rm --cached <file.name> //工作区和暂存区都有文件时,只删除暂存区的文件,但保留工作区文件;
恢复
通过git log可以看到cmmit的ID
git checkout commit_id <file.name> //这是对指定文件进行恢复
git reset --hard commit_id //恢复到以前的版本
head 版本的指针 ,指针来控制版本
git reset --hard HEAD^ //回到前一个版本
git reflog //可以查看所有分支的所有操作记录(包括commit和reset的操作)
这样用git reset --hard commit_id 可以恢复到以前的版本了;
下面将本地的开发,传到github上;
我们要先登录github的客户端;先可以看下是否登录了github账号;
git remote //查看远程仓库的名字,clone下,默认是origin 这个名字

git remote -v //查看对应的远程仓库的地址
git push origin master //git push 远程仓库的名字 要同步的分支
这样我们就提交到了远程仓库;

多人协作的时候,要添加新的协作人员;


这样就会给用户发送一个请求,让他来一起开发这个项目;
另外一个人收到权限,仍然使用 git clone url 来获取到本地;后面的操作命令都一样;
多人协作开发
先拉取同步更新下,避免冲突;
多人协作解决冲突;
git pull与 git fetch的区别:
git fetch //不合并到分支中,先解决冲突,再手动地合并
git diff master origin/master //查看差别
git merge origin/master //手动合并
git pull //直接合并到文件中,不容易查看到差别;
开源项目协作:先fork;再pull request
如何参与到没有权限的开源项目中呢?
fork 完全镜像了一个版本,放到自己的账号中…
修改完后,pull request,发到请求到作者那边;
删除仓库
在settings中有 delete this repository;删除要特别小心,不要误删了,删除了是找不回来的。
git命令行
http://www.cnblogs.com/sysu-blackbear/p/3463475.html
git与github的更多相关文章
- 简单使用Git和Github来管理自己的代码和读书笔记
原文链接:http://my.oschina.net/bxxfighting/blog/378196 先注册github.com的账号官方网站: https://github.com/ 注册界面, ...
- git for windows 的默认工作路径(HOME)的设置以及Git与GitHub之间的SSH加密协议
1.安装及配置默认路径 Windows中从GitHub上面:https://git-for-windows.github.io/ 下载安装好git后(双击,改一下需要的安装路径,一路确定就好了),安装 ...
- git与github安装、配置、pull、push
操作系统是Ubuntu 16.04 LTS 64bit 1 安装git (1)安装 sudo apt-get install git-core (2)一些全局变量的初始化 在本地建立一个文件夹,然后做 ...
- 转:sublime上使用git连接github
"工欲善其事,必先利其器." 这是古人的教诲,也是一个高效率的工程师需要遵循的法则之一.从大学开始写Java使用了JBuilder,Eclipse,后来写PHP用了Zend,写Ja ...
- git与github使用
Git和Github简单教程 目录: 零.Git是什么 一.Git的主要功能:版本控制 二.概览 三.Git for Windows软件安装 四.本地Git的使用 五.Github与Git的关联 六. ...
- linux下git以及github的连接与使用
简单理解 Git 的思想和基本的工作原理,能够更好的进一步和使用Git.在开始学习Git 的时候,最好不要把Git的各种概念和其他的版本控制系统诸如 Subversion 等相比,否则容易混淆每个操作 ...
- Git和Github简单教程
原文链接:Git和Github简单教程 网络上关于Git和GitHub的教程不少,但是这些教程有的命令太少不够用,有的命令太多,使得初期学习的时候需要额外花不少时间在一些当前用不到的命令上. 这篇文章 ...
- Git和Github简单教程(转)
这篇文章只挑一部分命令来讲,差不多够用就行的程度.如果需要其他命令,到时候再去其他地方了解就行了先在Github上写好再搬过来的:本文Github链接 目录: 零.Git是什么 一.Git的主要功能: ...
- WebStorm和sublime上使用git连接github(转)
WebStorm使用git连接github的方法: 用webstorm上传代码时,首先要先下载git,网址一搜就可以搜到,安装git,并且把ssh配置到github上.然后开始配置webstorm,打 ...
- git和github使用方式
git 和github github是远程管理代码的服务器的名称 git代码管理系统 (git既然是一个系统,所以说git也有一些命令) git操作过程 首先在本地建立一个仓库,用来把代码提交到git ...
随机推荐
- [C++基础]C++中静态成员函数如何访问非静态成员
#include <iostream> /* 静态成员函数只能访问静态数据成员.静态成员函数和类以外的函数和数据,不能访问非静态数据成员,但静态成员函数或静态数据成员可由任意访问许可的函数 ...
- 写一个自己定义进度颜色和圆形转动的ProgressBar(具体介绍)
先上图: 我们得自己定义ProgressBar的样式 <span style="white-space:pre"> </span><style nam ...
- h5-5 canvas
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 对jquery的 attr()和prop()理解
jquery1.6版本后引入了prop()方法,很多时候总是混淆attr()与prop()这俩,下面分析一下这俩的区别 在此之前,先来了解一下html 的attribute和property,因为jq ...
- 锁大全与 GDB调试
1.innodb_lock_monitor:打开锁信息的方式 mysql> create table innodb_lock_monitor(id int) engine=InnoDB; Que ...
- D2 前端技术论坛总结(下)
此篇文章不接上篇了,下午4场我就不一一介绍了,主要总结下 D2 整场下来都讲了些什么. 整场下来,就3个关键词:nodejs,多终端,工程化 nodejs 从杭js到d2,大会上提到最多的词汇 ...
- 创建ORACLE JOB
oracle job简介 主要的使用情景 定时在后台执行相关操作:如每天晚上0点将一张表的数据保存到另一张表中,2:定时备份数据库等 熟化说万事开头难,这里我只简单记述一个创建一个简单的job 步骤如 ...
- 架构设计:负载均衡层设计方案(7)——LVS + Keepalived + Nginx安装及配置
1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...
- SQL VS NoSQL 如何选择数据库
在前一篇文章中我们主要的讨论了SQL与NoSQL数据库之间的主要的差别.接下来,我们将会利用上一篇中的知识来确定在特定的场景中如何确定比较好的选择. 首先我们先来总结一下: SQL数据库: 使用表存 ...
- sqoop1.99.4安装与简介
1.什么是sqoop clouder公司开发的一个在关系数据库和hdfs,hive之间数据导入导出的一个工具 2.版本及其区别 现在分为sqoop1和sqoop2 1)架构图(sqoop1和hadoo ...