Xcode模拟器录屏的命令:
- 进入终端,cd到要放置录屏文件的位置
例如:cd Movies/
- 输入命令
xcrun simctl io booted recordVideo filename.mov
此处的filename
是我们要保存的move的名称
停止录屏:在终端输入control + c
,此处的control就是control键不是command
最后进入到对应文件夹就可以找到录制好的视频了。
git常用命令
- 上传本地代码到
Github
- 在Github上创建仓库
- 打开Mac终端,cd到本地项目的位置
cd /Users/apple/Desktop/Movies
- 在本机本地址上创建一个 新的git仓库
$ git init
- 添加本地项目
$ git add .
- 提交信息
$ git commit -m "first commit"
- 管理远程仓库
$ git remote add origin https://github.com/SuiFengLiuNian/CALayerCoreAnimation.git
- 推送本地项目到远程
$ git push -u origin master
注意:删除本地的git目录
$ rm -rf .git/
问题
- 如果提示
fatal: remote origin already exists
解决办法:
1、先输入 git remote rm origin
2、再输入 git remote add origin**************
- 提示
The authenticity of host 'github.com ' can't be established
git remote add origin******
The authenticity of host 'github.com ' can't be established(无法建立主机“github.com”的真实性)
可能是你的git地址采用了ssh方式,切换为https方式即可,也可能是你的仓库地址不对,可以用命令先查看一下:
git remote -v
如果跟你的github地址不一样,那就去你的github上复制一下仓库地址
然后在终端中输入:
git remote set-url origin https://github.com/SuiFengLiuNian/CALayerCoreAnimation.git (这个是你的复制的仓库地址)
最后再push
git push origin master
- 添加代码到git
git add .
git commit -m "XXX"(XXX为注释内容)
git pull --rebase origin master
git push origin master
- 更新远程分支
git remote update origin --prune
git相关引用:
https://betheme.net/news/txtlist_i297392v.html?action=onClick
- Tag标签
Git分支
- Git删除远程分支
git push origin --delete [branch_name]
git branch -D -r origin/branch_name
- 删除本地分支区别
git branch -d 会在删除前检查merge状态(其与上游分支或者与head)。git branch -D 是git branch --delete --force的简写,它会直接删除。
共同点都是删除本地分支的方法(与删除远程分支命令相独立,要想本地和远程都删除,必须得运行两个命令)
- Git查看分支
查看本地分支 git branch查看远程分支 git branch -r查看本地和远程分支 git branch -a
- Git删除分支
删除本地分支 git branch -d 本地分支名删除远程分支 git push origin --delete 远程分支名推送空分支到远程(删除远程分支另一种实现)git push origin :远程分支
- Git分支到远程
方法一
使用如下命令:
//从远程分支 checkout 新分支并切换到该分支
git checkout -b 本地分支名x origin/远程分支名x
1
使用该方式会在本地新建分支x,并自动切换到该本地分支x。
采用此种方法建立的本地分支会和远程分支建立映射关系。
方式二
使用如下命令:
git fetch origin 远程分支名x:本地分支名x
1
使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需要手动checkout。
采用此种方法建立的本地分支不会和远程分支建立映射关系。
//推送到远程 会自动切换映射关系
要最终推送 repo,请运行 git push -u origin <branch-name>
要查看本地分支与远程分支的关联关系,可以使用 git branch -vv 命令。这个命令会显示所有本地分支的名称,以及它们所关联的远程分支的名称和最后一次提交的信息。
例如,如果你的本地仓库中有一个名为 feature-a 的分支,并且它关联到了远程仓库中的一个名为 origin/feature-a 的分支,那么运行 git branch -vv 命令后可能会看到类似下面的输出:
* feature-a c32a342 [origin/feature-a] Add new feature
master f23b456 [origin/master] Merge pull request #123
复制代码
在这个输出中,前面带有星号的行表示当前分支,也就是 feature-a。后面紧跟着的两个方括号中分别包含了远程分支的名称和本地分支最后一次提交的信息。
如果要查看某个特定的本地分支与远程分支的关联关系,可以在 git branch -vv 命令后加上分支的名称,例如:git branch -vv feature-a。这样可以只显示 feature-a 分支的信息。
Git的Tag命令
- 删除远程分支和tag
1.1 在Git v1.7.0之后
删除远程分支:
git push origin --delete <branchName>
删除Tag:
git push origin --delete tag <tagname>
1.2 在Git v1.7.0之前
删除远程分支(推送一个空分支到远程分支,其实相当于删除远程分支):
git push origin :<branchName>
删除远程Tag(推送一个空tag到远程tag,其实相当于删除远程tag):
git tag -d <tagname>
git push origin :refs/tags/<tagname>
- 查看Tag
----------------tag----------------
1.查看所有taggit tag
2.创建taggit tag v1.0
3.删除taggit tag -d v1.0
4.把tag推送到远端git push origin v1.0
5.把所有tag一起推送到远端git push origin -–tags
6.显示tag信息git show v1.0
7.修改tag名 v1.0重命名v2.0(1)git tag 新tag名称 旧tag名称(2)git tag -d 旧tag名称(3)git push origin :refs/tags/旧tag名称(4)git push --tags
8、查看远程tag git ls-remote --tags origin
1、通过git log查看要特定commit提交记录的hash值
git log --pretty=oneline --abbrev-commit
2、通过git tag 命令打tag
选择某个提交记录打tag,上一步看到的是hash前缀,在idea里提交记录如果中文可能是乱码,直接复制版本号前缀匹配
git tag -a v_tag_V3.4.5 -m "tag描述" 768a49ff
3、将tag通过git push origin 推送到远端(少了这一步,远程看不到本地的tag)
git push origin v_tag_V3.4.5
- Git简述
----------------git----------------git中有两个状态:内容状态和文件状态,内容状态标示内容文件的改变,有三个区域:工作目录,暂存区和提交区文件状态有两个状态:已跟踪和未跟踪
1.用户配置git config --global user.name "username"git config --global user.email xxxxxx@163.com
2.初始化git仓库git init
3.添加文件内容到暂存区(同时文件被跟踪)git add4.添加所有文件git add .
5.从暂存区提交 -m:注释git -commit -m 'first commit'
6.从工作区提交git commit -a -m 'full commit'
7.仅从暂存区删除git rm --cached
8.从暂存区与工作目录同时删除git rm
9.删除所有被跟踪,但是在工作目录被删除的文件git rm $(git ls-files --deleted)
10.将本地历史推送到远程git push
11.克隆一个远程仓库作为本地仓库git clone
----------------branch----------------
1.创建一个分支git branch <branchName>
2.删除一个分支git branch -d <branchName>
3.显示所有分支信息git branch -v
4.刷新远端分支git remote update origin -p
5.所有分支git branch -a
6.所有远端分支git branch -r
7.修改本地分支名git branch -m 原始名称 新名称
8.修改远端分支名(1)先重命名本地分支git branch -m 旧分支名称 新分支名称(2)删除远程分支git push --delete origin 旧分支名称(3)上传新修改名称的本地分支git push origin 新分支名称(4)修改后的本地分支关联远程分支git branch --set-upstream-to origin/新分支名称
- Git log
1、通过git log查看要特定commit提交记录的hash值
git log --pretty=oneline --abbrev-commit
2、通过git tag 命令打tag
选择某个提交记录打tag,上一步看到的是hash前缀,在idea里提交记录如果中文可能是乱码,直接复制版本号前缀匹配
git tag -a v_tag_V3.4.5 -m "tag描述" 768a49ff
3、将tag通过git push origin 推送到远端(少了这一步,远程看不到本地的tag)
git push origin v_tag_V3.4.5
————————————————
git prune 简单地说就是一个清扫(housekeeping)的命令。
使用git查看分支,可以看到分支有三个重要分类:本地分支,本地-远程分支的参照,远程分支比如我们在github上merge了一个PR,顺手删除了一个分支,这时在本地的电脑上本删除的分支对应的本地分支,远程分支,远程本地的参照关系都还存在,如果我们使用git branch -D name删除该分支, 会发现只删除了本地的分支,所参照的远程分支origin/name依然存在,清理这种残留垃圾的命令的时候,就是用到了prune。
git remove prune 和 git fetch --prune
git remove prune 清理所有已经删掉的远程分支参照,但是不会删除本地分支
git fetch --prune 则是清理完远程的无用分支之后,再把最近状态fetch到本地
分享
- Git reset
- Git cherry-pick
https://www.ruanyifeng.com/blog/2020/04/git-cherry-pick.html
- Mac command
https://www.jianshu.com/p/b31535c64bc7 - Git revert
https://www.freecodecamp.org/chinese/news/git-revert-how-to-reset-a-file-or-commit/
LLDB命令
- LLDB是开源的内置于Xcode的调试工具
- 1.打印、需改值
打印相关的命令有:p、po
p和po的区别在于使用po 只会输出对应的值、使用p则会返回值的类型以及命令结果的引用名
lldb) p self.baseEffect
(GLKBaseEffect *) $0 = 0x000060000128d130
(lldb) po self.baseEffect
self = 0x60000128d130 - GLKBaseEffect
{
lightingType: GLKLightingTypePerVertex
lightModelTwoSided: GL_FALSE
GLKEffectPropertyTransform = 0x7fe822626890
{
modelviewMatrix
{
{{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1}}
}
projectionMatrix
{
{{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1}}
}
normalMatrix
{
{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}
}
}
light0 = NULL
light1 = NULL
light2 = NULL
material = NULL
texture2d0 = 0x6000012846e0
GLKEffectPropertyTexture = 0x6000012846e0
{
enabled = 1
name = 0
envMode = GLKTextureEnvModeModulate
}
texture2d1 = NULL
constantColor = {1.000000,1.000000,1.000000,1.000000}
fog = NULL
}
- P 还可以进行敞亮的进制之间的转换
//默认打印为10进制
(lldb) p 100
(int) $8 = 100
//转16进制
(lldb) p/x 100
(int) $9 = 0x00000064
//转8进制
(lldb) p/o 100
(int) $10 = 0144
//转二进制
(lldb) p/t 100
(int) $2 = 0b00000000000000000000000001100100
//字符转10进制数字
(lldb) p/d 'A'
(char) $7 = 65
//10进制数字转字符
(lldb) p/c 66
(int) $10 = B\0\0\0
- expression修改参数值
//expression打印值
(lldb) expression width
(CGFloat) $5 = 67
//expression修改值
(lldb) expression width = 80
(CGFloat) $6 = 80
//打印修改后结果
(lldb) p width
(CGFloat) $7 = 80
(lldb)
Permission denied
使用pods 有时候会出现如下错误:
Pods-resources.sh: Permission denied
解决如下:
终端cd到 /Pods/Target Support Files/Pods/Pods-resources.sh所在文件夹,然后执行如下命令:
chmod a+x Pods-resources.sh
该错误是由访问权限引起