戚薇戚薇戚薇

让他夜夜
热液乳业人员

整理一些Git不常用但实用的命令

更新时间:2020-05-21 12:02:27点击:

1、摘取co毫米it提交[从其余地位摘代替码]:git cherry-pick

一般团队开辟都邑将master分支作为制造公布的分支,也即是说master分支大概只容许往里merge归并代码,而不容许在该分支举行开辟,更有甚者master分支提叮咛码至长途服务器的权限都被限定的死死的。

每每会有这种环境:原来要在dev分支做开辟并co毫米it的,后果一不当心就在master分支下co毫米it提交了代码,当今这些提交需求挪动到dev分支去,又不能够全部master分支往dev分支里merge归并,git cherry-pick即是来办理全部疑问,该号令能够选定某一个分支中的一个或几个提交co毫米it来举行摘取操纵。

# 从其余分支摘代替码 git checkout master # 进来到master分支 git log # 稽查提交织分支的co毫米it_id ## git log号令以后## 按空格能够稽查更多的co毫米it_id## 按q键能够退出稽查模式## 能够看到诸如:## co毫米it 3f324e4c0ebe6f6b238642c5bf40169b130e016c HEAD (HEAD -> master, origin/master)## 那一串 3f32开首的字符,大凡黄色字样的即是co毫米it_id git checkout dev # 进来到dev分支 ## 在dev分支里将曾经提交到master分支的提交摘取到dev分支中,固然一次能够pick一个或多个co毫米it_idgit cherry-pick 3f324e4c0ebe6f6b238642c5bf40169b130e016c  ## 后续 能够回到master分支 reset掉没有效的提交 那即是 git reset干的活儿了

2、暂存而不提交:git stash

或是团队开辟场景吧~某天你整嗨皮的撸代码呢,QA那儿报了个bug,但你目前撸的代码交易还没实现,又不想做一个co毫米it提交,不过呢又要立马动手去调试办理这个bug,git stash暂存即是干这个了,一个git stash目前兼职区立马宁静了,目前做的代码窜改又不会丧失。

# 将目前的点窜暂存git stash  ## 稽查暂存列表git stash list  ## 诸如:## stash@{0}: WIP on dev: c440ec2 ....## stash@{1}: WIP on dev: a32e24e ....## 此中stash@{0}之类的即是暂存编号## 从0首先递加,0显露很近的暂存 # 软件目前的暂存 git stash apply# 若有多个暂存则软件很新一个 # 指定要规复的暂存git stash apply _stash_id_  # 删除指定的暂存# git stash apply并无将暂存从仓库中删除git stash drop _stash_id_ # 规复并删除暂存区,前方apply只是规复暂存区但并无删除,还需求手动实行dropgit stash pop [_stash_id_] ## pop号令后方可指定暂存ID,规律与apply同等

git对于的分析蕴藏的分析(或本文不太尺度的称号:暂存):https://git-scm.com/book/zh/v1/Git-%E5%B7%A5%E5%85%B7-%E5%82%A8%E8%97%8F%EF%BC%88Stashing%EF%BC%89

3、点窜很近一次的提交分析:--amend参数

偶然候敲号令git co毫米it -m "xxx",中英文输入法切换,难免对co毫米it的分析输入有误大概需点窜的环境,很后这个--amend的参数关乎到git的点窜经历纪录的功效,而git全部波及经历纪录点窜的都是相对繁杂的,一般码畜开辟的时分根基上用不到,就只影象这一种用法吧~

## 点窜很近一次co毫米it分析# 干脆一条号令实行git co毫米it --amend -m "xxx"# 交互式git co毫米it --amend ## git的经历点窜很繁杂,经常使用的只需求打听--amend这个参数接口,amend这个单词含意即是点窜、改善,影象的话,amend跟append相似,能够用于帮助影象

git点窜经历的分析:https://git-scm.com/book/zh/v1/Git-%E5%B7%A5%E5%85%B7-%E9%87%8D%E5%86%99%E5%8E%86%E5%8F%B2