浅谈Git(二):Git的基本操作

1. git 安装时全局参数配置

//查看当前配置的author用户名
git config --global user.name 
//查看当前配置的author邮箱
git config --global user.email 
//修改当前author信息
git config --global user.name "your name" user.email "your email"

2. 创建一个本地仓库

git init

3. 显示当前工作目录

git status

4. 添加文件到暂存区、提交

//添加一个类暂存区
git add class1.java
//添加多个类文件暂存区
git add class2.java class3.java ...
//将所有修改(modify)以及新文件(add)添加到暂存区
git add .
//将所有修改(modify)以及删除(delete)添加到暂存区
git add -u
//将所有修改(modify)以及删除(delete)、新增(add)添加到暂存区
git add -a 
git add -m "提交说明"
//绑定到远程仓库
git remote add origin <git ip-address>
//提交
git push 

5. Git log 查看版本信息

//默认输出
git log --online
//在log的基础上输出增删改的数据统计
git log --stat
//输出commit的具体修改内容
git log -p 
//限定提交作者
git log --author
//限定日期
git log --before -after
//限制输出数量
git log -n

6. Git Stash脏目录、临时储存区

当你的Git存在正在修改的索引以及文件,但此时你需要一个干净的工作目录,这种情况下不可能把未完成的代码提交,或者创建新分支。
举例子来说,你当前在开发新功能,此时反馈有个紧急bug要修复,那此时Git stash是个不错的选择。
处理策略:先将当前代码stash,然后修复完bug之后,再将未完成的代码unstash,继续开发。

//显示stash列表
git stash list
//显示做了哪些代码的改动 
git stash show 
//显示stash第一个的详情代码改动
git stash show -p
//执行储存时,添加备注
git stash save "message"
//stash栈中pop一次,并在栈中删除当前栈顶的内容
git stash pop
//stash栈中恢复一次,不在栈中删除当前栈顶的内容
git stash apply
//删除某次stash中的改动
git stash drop <stash name>
//清空stash
git stash clear 

7. 修改commit message

//修改最新的commit message
git commit --amend  
//可应用于修改多次commit
git rebase -i

8. 分支操作

//显示当前所在分支
git branch 
//创建一个名为dev2的分支
git branch dev2
//显示本地以及远程的所有分支
git branch -a
//检出到dev分支
git checkout dev
//检出到dev分支,如果不存在dev,则以HEAD所在的地方创建dev分支
git checkout -b dev
//修改分支名dev为develop
git branch -m dev develop
//删除本地分支dev
git branch -d dev
//删除远程分支dev
git push origin -d dev

//插入一个checkout的其他命令:检出文件:意思是某个文件上的修改的恢复
git checkout xx.java

9. git reset操作

远程库回滚:
如果拥有强制提交权限,可使用--hard命令,不过会丢失远程库代码~(极不建议)
建议使用revert

--soft 完全保留 工作区和暂存区
--mixed 完全保留工作区,彻底清除暂存区
--hard 彻底清除工作区和暂存区
--keep 保留工作区和HEAD之间的差异

Revert 反做,使用一次commit来回滚之前的内容:
举例子来说:比如分支1当前有A(id 001) -> B(002) -> C(003), 版本B存在Bug,需要进行回退处理,又不想影响版本C的功能:
git revert 002,会生成新的commit D(004)

10. git reflog

查看分支操作记录,包括reset记录和删除记录
继续举例子: 当前提交树:A->B->C,我回滚Reset到了B,当前提交树没有了版本C的提交。
第二天起床我后悔了,该怎么办呢?
使用Git reflog会输出你的流程大概为A(001)->B(002)->C(003)->D(004 Reset to B),
这个时候重新调用git reset --hard C。那么当前提交树又变成A -> B -> C.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念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

推荐阅读更多精彩内容

  • Add & Commit git init 初始化一个 Git 仓库(repository),即把当前所在目录变成...
    冬絮阅读 4,827评论 0 9
  • 以下笔记主要参考gitgot,大致了解git使用和原理。 第一部分我们从个人的视角去研究如何用好Git,并且揭示G...
    carolwhite阅读 2,375评论 0 1
  • 只为记录,以后尽量按照Git的官方帮助文档写! clone 从远程库中克隆到本地目录 init 此命令用于已有项目...
    四五20阅读 600评论 0 0
  • 1. GIT命令 git init在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个re...
    江边一蓑烟阅读 798评论 0 0
  • 紧张的一天。 学校说让上午把计划交了,那时已接近中午,想放弃挣扎,下午再交,但是心里还是装着它,连吃饭都恍恍惚惚。...
    蓝雪花a阅读 116评论 0 2