git笔记

纲领:

其实git的学习就是四个区之间关系转换的学习,以及各个区本身一些操作的学习。每个操作都有其特定的作用区。学习时注意区分,可事半功倍!

注:尤其要注意,git是以修改为单位的。

一、配置

关键命令: "git config"

git config --global user.name "yourName"
git config --global user.email "email@example.com"

二、初始化

关键命令:"git init"

//切换到工作目录,然后执行初始化命令
git init

三、添加文件

关键命令:"git add xx.file"

git add test.txt

四、提交文件

关键命令:"git commit -m "添加了xx.file文件""

git commit -m "添加了test.txt文件"

五、状态查看

关键命令:"git status"

git status 

六、查看差异

关键命令:"git diff xx.file"

注:对比的是工作区与暂存区

git diff test.txt

七、查看版本历史

关键命令:"git log" 、"git log --pretty=oneline"

注:查看的都是repo库的改动

git log

#简化输出可用参数--pretty=oneline
git log --pretty=oneline
#等号两边没有空格

八、回退历史版本

关键命令:"git reset --hard commit_id"

注:此命令其实就是修改repo库head指针的指向位置

参数解释:

git reset有三个主要参数

  • --soft -------->只有repo动
  • --mixed ----->repo和stage动(注:默认缺省值
  • --hard -------> repo、stage、workspace都动

commit_id主要有两种表示方式

  • HEAD关键字表示
  • hash值前四位表示
git reset --hard HEAD^
#--hard 表示三个区域完全回退
#HEAD^表示回退的目的地,^号表示HEAD指针的上一个版本。HEAD^也可用commit id的hash值的前几位替代,git会自动索引。
git reset --hard 142e


九、回流

关键命令:"git reflog"

注:作用与repo库

git  reflog 
#用于回流回退过的情况

十、放弃工作区的修改

关键命令:"git checkout -- xx.file"

注:从暂存去签出,覆盖工作区。

git checkout -- test.txt
# --不能少

十一、删除暂存区的内容(参考第八条)

关键命令:"git reset HEAD xx.file"

参数解释:

  • 默认缺省--mixed
  • xx.file在单一文件时可缺省,默认整个文件夹同时修改
  • HEAD指向当前head指针
    注:本质依旧是修改repo库的head指针,但因为缺省值同时修改了stage,所以效果像是删除了暂存区。
git reset HEAD test.txt
#此操作不会影响工作区

十二、删除工作区文件

关键命令:"git rm xx.file"

注:在暂存区工作,同git add xx.file,所以还需要一步commit

git rm test.txt
#会先执行工作区的文件删除操作 `rm test.txt`

git commit -m "rm test.txt"

十三、远程仓库

  • ssh-keygen -t rsa -C "youremail@example.com"创建私钥与公钥
  • 在github添加公钥
  • 创建github仓库 (后续可直接按github的提示操作即可。)
  • 本地git工作区运行git remote add origin git@github.com:name/repoName.git关联本地repo与远程repo
  • 初次推送git push -u origin master
  • 后续推送git push origin master
  • 注:SSH警告可以忽略,直接yes

十四、克隆项目

关键命令:"git clone"

git clone git@github.com:name/repoName.git
#使用了ssh。也可以使用https。

十五、分支

关键命令:

  • git branch <name> 创建分支
  • git checkout -b <name> 创建并切换分支
  • git checkout <name> 切换分支
  • git branch 查看分支
  • git merge <name> 合并指定分支到当前分支
  • git branch -d <name> 删除指定分支
git branch testDevA
#创建分支A
git checkout -b testDevB
#创建并切换到B分支
git checkout master
#切换到主分支
git branch
#查看分支
git merge testDevA
#将A分支合并到主分支
git merge testDevB
#将B分支合并到主分支
git branch -d testDevA
#删除A分支
git branch -d testDevB 
#删除B分支

十六、贮藏栈

注:常用来暂存当前工作,去解决临时问题,之后再恢复工作。

关键命令:

  • git stash 贮藏入栈
  • git stash pop 出栈并清空栈
  • git stash list 贮藏列表(可多次贮藏,然后查询,并用下面命令取出)
  • git stash apply 出栈
  • git stash apply stash{0} 指定贮藏出栈
  • git stash drop 清空栈
git stash
#贮藏
git stash pop
#取出

十七、标签

注:默认给最新的commit_id打标签,也可指定commit_id。
注2:标签的显示是按照字母顺序的,不是时间顺序。
注3:标签默认只存储在本地,需要而外推送远程库。

关键命令:

  • git tag <tagName> 打标签
  • git tag 查看标签名
  • git tag <tagName> <commit_id> 给特定commit_id打标签
  • git show <tagName> 查看指定标签的详细信息
  • git tag -a <tagName> -m <describe> <commit_id> -a指定标签名,-m注释。
  • git tag -d v1.0 删除标签
  • git push origin <tagName> 推送特定标签
  • git push origin --tags 推送全部标签
  • git push origin :ref/tags/<tagName> 删除远端标签
git tag v1.0
git tag
git tag v0.3 1e2c
git show v1.0
git tag -a v0.4 -m "this is a test" 3re4 

#commit_id 可省略,默认最新commit_id。

十八、git私服搭建

待续。

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

推荐阅读更多精彩内容

  • Git 是目前最流行的分布式版本控制系统之一。 版本控制指的是,记录每次版本变更的内容和时间等细节,保留各版本之间...
    神齐阅读 1,400评论 0 7
  • 分支模型 常驻型分支: master:每个提交都是稳定版本,每次提交打tagdevelop:每次提交都是可完整编译...
    Wavky阅读 340评论 0 0
  • 对于一个新的包括submodule的项目调用以下命令即可 或者 配置 首先是配置帐号信息 ssh -T git@g...
    brownfeng阅读 467评论 0 0
  • 一.Git简介 Git是世界上最先进的分布式版本控制系统,相对于SVN这样的集中式版本控制系统,Git不需要“中央...
    ahuustcly阅读 714评论 0 0
  • 目录 Git 笔记系列(一)—— Git简介 Git 笔记系列(二)—— Git工作流程 Git 笔记系列(三)—...
    吃蘑菇De大灰狼阅读 496评论 0 4