问题描述:
由于项目中的各种依赖和分支,所以在pull、运行项目以及提交git的时候总是报各种错,下面再次复盘一下,方便以后更熟悉项目流程。
一、获取AiLesson
AiLesson再项目中有自己的独立的库,在开发中也引用着相应的分支,所以我们要单独获取它,并且在提交代码的时候它也不作为提交项,
这一点很重要。
1、首先克隆项目到制定的文件夹,然后cd进入到parent项目,我们使用git submodule update --init --recursive先初始化一下。
git submodule update --init --recursive
2、cd进入AiLesson文件夹中,切换到指定的分支,pull下来。
2.1 获取当前AiLesson所有的分支
git branch -a
2.2 然后切换到指定的分支中
git checkout jzt-master
2.3 切换后,拉取最新的代码
git pull
二、cd .. 回到parent文件中
提交文件的时候要注意在第一条的时候说的问题,我们不能直接git add .提交全部的文件,需要提交指定的被修改的文件路径。如果提交的比较多,可以以空格的形式在后面添加文件路径。
1、提交代码
git add jiazhangtong/Platform/ViewController/Home/3.0.X/Views jiazhangtong/Platform/ViewController/Home/3.0.X/VCs
git commit -m "修改了部分内容"
git push origin HEAD:refs/for/develop
git push origin HEAD:refs/for/develop
,这样提交,不要直接使用git push 的方式提交,否则无法提交成功。
三、代码的拉取、提交和回滚。
使用sourcetree
四、git简化提交流程设置
在项目中的终端填写:cat .git/config
,然后cd ~/.ssh/
,vim ~/.gitconfig
进入设置,可查看。
详细设置
git push出现的错误:
fatal: Unpack error, check server log
error: remote unpack failed: error Missing tree c0ea00612ac75714de7dd984fea9c58ba90cc360
To ssh://gerrit.17zuoye.net:29418/ios_17ParentNew
! [remote rejected] HEAD -> refs/for/feature (n/a (unpacker error))
error: failed to push some refs to 'ssh://kai.zhang@gerrit.17zuoye.net:29418/ios_17ParentNew'
解决方法:
git push --no-thin origin HEAD:refs/for/feature
五、代码提交
1、提交之前查看更改的内容
git status
给出提示:
修改所有文件提示
2、提交指定文件夹
git add Classes
git commit -m '1、banana'
git push origin HEAD:refs/for/develop
3、修改了代码之后,恢复到拉下来的状态。
git reset --hard origin/feature
六、本地化开发
1、本地化代码和开发文件在同一文件级别,方便查找。
2、在podfile文件中添加引用,
pod '你的库', :path =>'../文件名称/', :branch => 'develop' (分支信息)
七、常用命令行
pwd :显示当前文件所在整体目录。
open ./ :弹出子目录
open / :弹出磁盘文件
git fetch ssh://kai.zhang@gerrit.17zuoye.net:29418/ios_17ParentNew refs/changes/89/101289/1 && git cherry-pick FETCH_HEAD
八、提交代码服务器出现冲突,无法merge
在git服务器里面,找到右上角的的Download里面找到Cheer pick,复制出来,然后在终端我们库里面调用下面的方法,同步出来冲突点,然后再分别找到这些点删除。
git reset --hard origin/feature
git pull
git fetch ssh://yourName@gerrit.zuoye.net:29418/ios_Parent refs/changes/37/102237/1 && git cherry-pick FETCH_HEAD
OK
方法 说明
vim ~/.gitconfig
设置git提交的方法的简化
pod update MJExtension --verbose --no-repo-update
更新特定的库,其他的库不更新
pod install --verbose —no-repo-update
只安装新增的库,已经安装的库不更新
pod install
重新安装并更新所有的podfile里面的库
网友评论