Git相关命令汇总

Git命令庞大繁杂,有必要做个备份以供参考。这里仅列出最基础的部分命令。
先上个图感受下

  • 合并本地分支

    git merge local_branch_name

  • 合并远程仓库

    git merge origin/remote_branch_name

  • 查看当前分支与远程分支的对应关系

    git branch -vv

  • 列举所有配置

    git config -l

  • 比较暂存区和版本库差异

    git diff --cached

  • 将工作区做的修改暂存到一个git栈中
    git stash

  • 查看栈中所有暂存

    git stash list

  • 将暂存栈中指定编号恢复到工作区

    git stash apply stash_number (stash_numer:暂存编号 注意:暂存还在栈中)

  • 将栈顶的暂存恢复到工作区

    git stash pop

  • 清空暂存栈

    git stash clear

  • 查看远程服务器仓库状态

    git remote show origin

  • 删除远程仓库地址

    git remote rm

  • 修改远程地址

    git remote set-url origin git@github.com:robbin/robbin

  • 添加远程仓库地址

    git remote add origin git@github:robbin/robbin_site.git

  • 查看当前没有被合并的分支

    git branch --no-merged

  • 创建远程分支

    git push origin local_branch_name:remote_branch_name

  • 创建本地分支与远程分支关联(当前没有创建对应的本地分支)

    git checkout --track origin/remote_branch_name

    git checkout -b local_branch_name origin/remote_branch_name

  • 将本地分支与远程分支关联(已创建本地分支)

    git branch --set-upstream-to=origin/remote_branch_name

    git branch -u origin/remote_branch_name

  • 修改上一次的提交信息

    git commit --amend

  • 修改历史提交信息

    git rebase -i HEAD~20

  • 取消暂存

    git reset HEAD file_name

  • 撤销对文件的修改

    git checkout --file_name

  • 本地代码库回滚

    git reset --hard commit_id (回滚到commit-id,将commit-id之后提交的commit都去除)

    git reset --hard HEAD~3 (将最近3次的提交回滚)

  • 远程代码库回滚

    应用场景:系统发布后发现问题,需要回滚到某一个commit-id,再重新发布

    原理:先将本地分支退回到某个commit-id,删除远程分支,再重新push本地分支

    操作步骤

    1. git checkout the_branch

    2. git pull

    3. git checkout the_branch_backup (备份一下这个分支当前的情况)

    4. git reset --hard the_commit_id (把the_branch本地回滚到the_commit_id)

    5. git push origin :the_branch (删除远程the_banch分支)

    6. git push origin the_branch (用回滚后的本地分支重新建立远程分支)

    7. git push origin :the_branch_backup (如果前面成功了,删除这个备份分支)


如有任何错误之处或疑问,请联系我:fishnewsdream@gmail.com,欢迎交流,共同提高!

Objective-C/Swift技术开发交流群201556264,讨论何种技术并不受限,欢迎各位大牛百家争鸣!

微信公众号OldDriverWeekly,欢迎关注并提出宝贵意见

老司机iOS周报,欢迎关注或订阅

刚刚在线工作室,欢迎关注或提出建设性意见!

刚刚在线论坛, 欢迎踊跃提问或解答!

如有转载,请注明出处,谢谢!

iOS开发的一些奇巧淫技

“奇巧淫技”并非是一些稀奇古怪的技术要点,也不是什么所谓的黑科学,只是一些平时可能会用到但有些又并不是很容易查询得到的小tips.


如何查看真机沙盒文件?

一:安装iFunBox或IExployer

二:在xcode的上部导航栏里,选择window -> Devices,找到目标app ,这样我们只能看到沙盒的目录结构,看不到实体文件。然后点击Download Container ,下载后保存到桌面,右键显示包内容即可。

如何使用命令行进行打包?

一: 使用原生xcodebuild、xcrun 打开终端 cd到当前项目,使用如下两条命令即可。

如果项目没有使用cocoapods:

xcodebuild -project 项目名.xcodeproj -target 项目名 -configuration Release(生成项目名.app文件)

xcrun -sdk iphoneos -v PackageApplication ./build/Release-iphoneos/项目名.app -o ~/Desktop/项目名.ipa(-o前为.app文件路径,-o后为生成的.ipa路径)

如果使用cocoapods:

xcodebuild -workspace Test.xcworkspace -scheme Test -configuration Release

xcrun -sdk iphoneos -v PackageApplication 项目名.app路径 -o ~/Desktop/Demo.ipa

二:使用xctool进行自动打包,是FaceBook开源的一个命令行工具,可使用brew安装(安装命令:sudo brew install xctool)

如果项目没有使用cocoapods:

xctool -scheme Demo archive -archivePath “Demo/“(会生成.xcarchive文件)

xcrun -sdk iphoneos -v PackageApplication ./Demo.xcarchive/Products/Applications/Demo.app -o ~/Desktop/Demo.ipa

如果使用cocoapods:

xctool -workspace Demo.xcworkspace -scheme Demo archive -archivePath “Demo”

xcrun -sdk iphoneos -v PackageApplication ./Demo.xcarchive/Products/Applications/Demo.app -o ~/Desktop/Demo.ipa

Xcode历史版本下载地址

https://developer.apple.com/downloads/

加急审核渠道链接(并非只是加急,包括向苹果申诉、修改appstore上相关信息等)

https://developer.apple.com/appstore/contact/appreviewteam/index.html
也可以直接从ITunes右下角contact us也可以,但是无法填写相关文字描述

Autolayout及SizeClass示意图



窗口中有多个responder,如何快速释放键盘

一:[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];

二:
[self.view endEditing:YES];

如何去除UITableView中Group样式cell的边框

一:

UIView *tempView = [[UIView alloc] init];

[cell setBackgroundView:tempView];

[cell setBackgroundColor:[UIColor clearColor]];

二:

tableView.separatorColor=[UIColor clearColor];

如何解决colorWithPatternImage设置view背景色太占内存问题

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"main_landscape.jpg"]];

切换成

self.view.layer.contents =[UIImage imageNamed:@"name.png"].CGImage;

App升级后如何删除NSUserDefaults全部数据

APP升级后,UserDefaults中原有的plist是不会删除的,除非用户卸载APP

NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];

[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];

如何修改图片颜色

先设置图片的渲染模式为UIImageRenderingModeAlwaysTemplate,再设置tintcolor

self.imageView.image = [[UIImage imageNamed:@"back"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

self.imageView.tintColor = [UIColor redColor];

也可以在Asset catelog中设置render as

如何放大图片使之不失真且不产生锯齿

在Asset Catalog的Attribtues Pane中设置Single(前提是图片必须是矢量图) Vector为SingleVector

如何在拉伸图片的时候使之不变形

一:stretchableImageWithLeftCapWidth: topCapHeight:

二:在Xcode中选中图片,然后点击右下角的Show Slicing:

Storyboard中如何正确设置控件透明度

在直接设置alpha的情况下,如果上面有文字的话会随着透明度的变大而变得越来越不清楚。

此时应该这样设置 Background →0ther →0pacity

[UIScreen mainScreen].bounds获取屏幕大小不对的问题

#define SCREEN_WIDTH [UIScreen mainScreen].bounds.size.width

#define iPhone6Plus ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242,2208),[[UIScreen mainScreen] currentMode].size) : NO)

在标准模式下

6+:

[[UIScreen mainScreen] currentMode].size为{1242,2208}

[UIScreen mainScreen].bounds.size为{414,736}

6:

[[UIScreen mainScreen] currentMode].size为{750,1334}

[UIScreen mainScreen].bounds.size为{375,667}

放大模式下(设置->显示与亮度->显示模式)

6+:

[[UIScreen mainScreen] currentMode].size为{1125,2001}

[UIScreen mainScreen].bounds.size为{375,667}

6:

[[UIScreen mainScreen] currentMode].size为{640,1136}

[UIScreen mainScreen].bounds.size为{320,568}

Mac模式下如何将视频生成Gif文件

一:使用GifBrewery直接将视频转为gif文件(安装GifBreweryw密码:www.macx.cn)

二:安装ffmpeg ( brew install ffmpeg)使用ffmpeg使视频转为多张图片

( ffmpeg -i news.mov -r 10 -f image2 文件夹名/%05d.png)

然后使用PicGIF (将多张图片生成gif文件)


以上,用代码直接展示并不方便,所以依次列出来,其他技巧均在Demo中体现,欢迎下载。

下载链接:https://github.com/ChinaFishNews/StrangeSkills.git


如有任何错误之处或疑问,请联系我:fishnewsdream@gmail.com,欢迎交流,共同提高!

Objective-C/Swift技术开发交流群201556264,讨论何种技术并不受限,欢迎各位大牛百家争鸣!

微信公众号OldDriverWeekly,欢迎关注并提出宝贵意见

老司机iOS周报,欢迎关注或订阅

刚刚在线工作室,欢迎关注或提出建设性意见!

刚刚在线论坛, 欢迎踊跃提问或解答!

如有转载,请注明出处,谢谢!

写在开篇

一直以来都有记录的习惯,尤其是做开发,这个习惯必不可少。中学时代老师经常提醒我们要常做笔记,记录一些疑难要点、好词好句和曾经做错的题目,当时不以为然,后来也证明不听老师话的结果,惨不忍睹!

之前一直在用印象笔记,粗略查了下里面记录了上千篇,至少有一半不是我自己总结的,还有四分之一现在看来都不值一提,剩下的四分之一才感觉依然很有价值。相关Demo写了少说也有几百个,良莠不齐。

做iOS开发也有两年多了,感觉也到了该回馈社会的时候了,请原谅我使用”回馈社会”这么装逼的字眼。依然记得刚开始工作时的阵痛,虽然只有不到两个月的时间。万事开头难,尤其是做技术,没人指引对于新手来说的确是痛苦的,尽管成长的很快。在此感谢入行之初帮助过我的那些前辈,尤其是上海的那哥们和苏州的一妹子,虽然他们未必看得到。一直以来也都有在尝试帮助他人,不过也都是在公司内部或相关技术交流群里,范围终归有限。所以从现在开始尝试写些博客,尽自己绵薄之力。很多网上的文章都是互相转载未经查证,或者炫技卖弄隐藏关键点,让人作呕!也希望更多的博主能保证文章质量,杜绝浮躁之风,尽管没什么卵用。

接下来有时间的话会陆续上传或撰写一些技术要点和生活感悟,有些技术要点可能在现在看来都不算一个点了,但是对于新人来说也许依然会感到陌生,重要的是,我喜欢这种可以看到自己成长的过程!

网络文明依然需要大家共同努力,希望尽量做到谨慎拍砖,砖要轻拍,拍之有理。但是谁又会理会呢?

读万卷书不如行万里路,行万里路不如阅人无数,阅人无数不如名师指路,名师指路不如自己去悟!共勉!


如有任何疑问或问题请联系我:fishnewsdream@gmail.com,欢迎交流,共同提高!

Objective-C/Swift技术开发交流群201556264,讨论何种技术并不受限,欢迎各位大牛百家争鸣!

微信公众号OldDriverWeekly,欢迎关注并提出宝贵意见

老司机iOS周报,欢迎关注或订阅

刚刚在线工作室,欢迎关注或提出建设性意见!

刚刚在线论坛, 欢迎踊跃提问或解答!

如有转载,请注明出处,谢谢!

本站总访问量 本文总阅读量