GIt

Git属于分散型版本管理系统。版本管理就是管理更新的历史记录。


安装Git

Mac和Linux都预装了Git。
Windows使用msysGit:http://msysgit.github.io/
Use git bash only


初始设置

设置姓名和邮箱地址
git config --global user.name "Firstname Lastname"
git config --global user.email "your_email@example.com"

将color.ui设置为auto可以让命令的输出拥有更高的可读性

git config --global color.ui auto

设置SSH Key

$ssh-keygen -t rsa -C "email"

之后直接回车,不用填写东西。之后会让你输入密码。然后就生成一个目录.ssh ,里面有两个文件:id_rsa(私有密钥) , id_rsa.pub(公开密钥),还有一个fingerprint值
把这个SSH放到github上。用公钥。先在GitHub上注册一个用户,然后进入account-setting ,把id_rsa.pub的内容复制进去就可以了。
测试OK。输入命令:$ssh -T git@github.com


基本操作

  • 定位——cd ~/
  • git Init ——初始化仓库
mkdir git-tutorial
cd git-tutorial

然后会生成.git目录,这个目录里存储着管理当前目录内容所需的仓库数据。
将这个目录的内容称为”附属于该仓库的工作树“。

  • git status——查看仓库状态
git status

建立README.md文件作为管理对象,未第一次提交做前期准备

touch README.md
  • git add——向暂存区中添加文件
    将其加入暂存区(Stage或者Index)中。
git add README.md
  • git commit——保存仓库的历史记录
  • 记述一行提交信息
git commit -m "First commit"

First commit是提交信息

  • 记述详细提交信息
  git commit```
执行后编辑器就会启动,在编辑器中记述提交信息的格式如下: 
第一行:用一行文字简述提交的更改内容
第二行:空行
第三行以后:记述更改的原因和详细内容
  `Esc`+`shift`+`z`+`shift`+`z`即可推出编辑器并保存
  `Esc`+`:`+`help`可查看编辑器帮助
* **git log**——查看提交日志
commit栏旁是指向这个提交的哈希值。
* `git log --pretty=short `——只显示提交信息的第一行
* `git log README.md `——只显示指定目录、文件的日志
* ` git log -p` ——显示文件的改动
* **git diff**——查看更改前后的差别
在刚刚提交的README.md中写:
>\#Git 教程

* `git diff`——查看工作树和暂存区的差别
然后将README.md加入暂存区:git add README.md
* `git diff HEAD`——查看工作树和最新提交的差别
> **养成好习惯**:在执行git commit前先执行git diff HEAD,查看本次提交与上次提交之间有什么差别,等确认完毕后再进行提交,这里的HEAD是指向当前分支中最新一次提交的指针。

确认过两个提交之间的差别后就可以执行commit命令:

git commit -m "Add index"

查看提交日志,确认提交成功。
***
####分支的操作

* **git branch**——显示分支一览表
* **git checkout -b**——创建、切换分支

git checkout -b feature-A等同于
git branch feature-A
git checkout feature-A

在分支A下修改README.md并提交
 * 切换回上一个分支——**git checkout -**
* **git merge**——合并分支

首先切换到master分支
git checkout master
然后
git merge --no-ff feature-A

 * **git log --graph**——以图表形式查看分支
***
####更改提交的操作
* **git reset**——回溯历史版本
 * 回溯到创建分支A前

git reset --hard 目标时间点的哈希值

 * 创建分支B修改README.md并提交
 * 推进至分支A合并后的状态
`git reflog`可查看当前仓库执行过的操作的日志。找到对应哈希值并回到当时的状态。
 * 消除冲突
合并分支B时分支A更改的部分和分支B发生了冲突。
修改README.md文件,然后提交。
 * **git commit --amend**——修改提交信息
编辑器启动,修改提交信息后保存退出。
 * **git rebase -i**——压缩历史
    * 创建分支C修改README.md并提交C,故意留下拼写错误,然后:git commit -am "Add feature-C"完成两步操作
    * 修正并提交:git commit -am "Fix typo",`错字漏字等失误称作typo`
    * ```
      git rebase -i HEAD~2
出现
     pick 哈希值 Add feature-C
     pick 哈希值 Fix typo
将pick改为fixup便可

分支C合并至master分支。


推送至远程仓库

  • git remote add——添加远程仓库

git remote add origin git@github.com:DumplingsLi/git-tutorial.git

Git自动将远程仓库的名称设置为origin(标识符)
* **git push**——推送至远程仓库
 * 推送至master分支

git push -u origin master

 * 推送至master以外的分支

git checkout -b feature-D
git push -u origin feature-D

***
###从远程仓库获取
* **git clone**——获取远程仓库
 * 获取远程仓库

git clone git@github.com:DumplingsLi/git-tutorial.git
查看当前分支的相关信息
git branch -a

 * 获取远程的feature-D分支

git checkout -b feature-D(本地仓库新建分支名称) origin/feature-D(获取来源的分支名称)

修改分支D并推送。
* **git pull**——获取最新的远程仓库分支

git pull origin feature-D

一些资源:
[Pro Git](http://git-scm.com/book/zh/v1)  作者:[Scott Chacon](https://github.com/schacon)
[LearningGitBranching](http://pcottle.github.io/learnGitBranching/)
[tryGit](http://try.github.io/)

[Github pages的一些用法](http://www.cnblogs.com/ztoz/p/5515475.html)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容