git应用

1_创建代码仓库

git init 创建Repository
ls -al 查看内容
git add file 添加文件/ add . 表示添加所有文件
git commit -m "First commit." 提交到Repository

2_查看修改状态

git status 查看文件修改情况
git diff 查看所有文件的更改内容
git diff app/src/main/.../MainAcitvity.java 查看具体文件的更改内容
git checkout app/src/main/.../MainAcitvity.java 撤销具体文件的更改内容
<使用Andorid studio 时,通常用revert撤销更改>
当文件的更改执行过add命令后,无法用checkout命令还原,
此时,git reset HEAD app/src/main/.../MainAcitvity.java取消添加,再运行git checkout命令撤销修改。
git log 查看提交记录<包括提交id,提交人,提交日期,提交记录>
git log (id) -1 只看一行记录
git log (id) -1 -p 查看该行记录具体修改了什么内容
git log --graph 以图表形式查看

_3分支的用法

git branch 查看当前版本库当中有哪些分支
git branch version1.0 创建名为version1.0的分支
git checkout version1.0 切换到名为version1.0的分支

将分支上的修改合并到主干
git checkout master
git merge version1.0
1_ 切换到主干
2_ 将名为version1.0的分支合并到主干
git merge --no-ff version1.0
--no-ff 作用是在历史记录中明确记录下本次分支合并

git branch -D version1.0 删除名为version1.0的分支

_4远程版本库协作

git clone https://github.com/.../ text.git 将远程代码下载到本地仓库
git push origin master 在对本地代码进行了 一些修改和提交,同步到远程代码库
origin指远程版本库的Git地址,此处指https://github.com/.../text.git
master指同步到哪一个分支上,此处为master主干

远程版本库的修改同步到本地,两种方法:
1, fetch命令
git fetch origin master
此命令同步下来的代码并不会合并到任何分支上,而是存放在origin/master分支上
git diff origin/master 查看远程版本库作了哪些修改
git merge origin/master 将origin/maste分支上的修改合并到主分支上
2,pull命令
git pull origin master 将fetch 和 merge 命令一起执行,获取最新代码并且合并

_将代码托管至 github上

方法1:github上新建仓库,clone至本地,将想要公开的代码提交至这个仓库再push到GitHub仓库中,代码便会被公开。

方法2:git remote add origin <仓库地址>
本地仓库与远程仓库连接

_github中Tag的应用

git tag -a v1.0 -m "add a tag" 创建名为v1.0的Tag
git tag 查看所有Tag
git tag -l 'v1.0' 查看具体某个版本Tag
git show v1.0 展示Tag v1.0具体信息
git push origin v1.0 共享至github
git push origin --tags 所有Tag共享至github
git tag -d v1.0 删除某个Tag
git push origin :refs/tags/v1.0 删除远程某个Tag
git checkout v0.1 切换到名为v0.1的Tag
git checkout -b bt v0.1 创建一个名为bt的分支,包含v0.1Tag的代码

_技巧应用

场景一:

回到某个节点,修复BUG,合并到主干
git reset 回溯历史版本

git log 查看历史日志,记录要回到节点的ID哈希值
git reset --hard ID哈希值 回溯到某个节点
git checkout -b fix-b 创建修复Bug分支fix-b
修复Bug
git relog 查看当前仓库执行过的操作日志,记录ID哈希值
git checkout master 回到主分支
git reset --hard ID哈希值 推进到之前的节点
git merge --no-ff fix-b 合并fix-b分支
git add / git commit 提交至仓库

场景二:

要修改上一条提交信息
git commit --amend
在编辑器中修改提交信息,保存,关闭编辑器

场景三:

将一次小的修改,提交至上一次提交中,压缩成一个历史记录
git rebase -i

git rebase -i HEAD~2 选定当前分支中包含HEAD在内的两个最新历史记录为对象,并在编辑器中打开
显示为
pick id 提交信息1
pick id 提交信息2
更改为
pick id 提交信息1
fixup id 提交信息2
保存,关闭编辑器

场景四:

分支的协作开发:同事1创建某个功能分支,并同步到远程仓库,同事2获取远程的分支,提交更改,同步更新,同事1获取最新更新。
1,git checkout -b feature-D 同事1创建分支
2,git push -u origin feature-D 同事1push至远程仓库
3,git clone git@github.com:...
git branch -a 添加-a可以同时查看本地和远程仓库的信息
如果已克隆至本地仓库,可省略...
git checkout -b feature-D origin/feature-D 将feature-D分支获取至本地
修改...
4,git commit -am "###" 提交
5,git push 推送至远程仓库
6,git pull origin feature-D 同事1获取分支最新代码

场景五:

github上下载某个分支代码
git clone -b feature-b git@github.com:...
下载名为feature-b的分支代码

场景六:

github上 查看分支间差别
比如想查看feature-a 和 feature-b分支之间的差别,可以将分支名加入到URL里
https://github.com/rails/rails/compare/feature-a...feature-b
查看几天前的差别
https://github.com/rails/rails/compare/master@{7.day.ago}...master
时间单位{day.week.month.year}
查看与指定日期之间的差别
https://github.com/rails/rails/compare/master@{2018-01-01}...master

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

推荐阅读更多精彩内容

  • Git常用语法 [TOC] Git简介 描述 ​ Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,...
    君惜丶阅读 3,506评论 0 13
  • 创建版本库: 1.初始化一个Git仓库,使用git init命令。 2.添加文件到Git仓库,分两步:(1)使用命...
    Leon_Geo阅读 1,308评论 1 11
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,649评论 9 163
  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,469评论 1 26
  • 第一章 昼夜节律 (重点摘抄) 人平均每晚睡6.5个小时。此外,每晚只睡5~6小时占比还在逐年加剧!由此看来,社...
    KAKA旭阅读 1,095评论 0 0